:root {
    --office-font-family: "Segoe UI Variable", "Segoe UI", -apple-system, BlinkMacSystemFont, sans-serif;

    --office-bg: #f7f8fa;
    --office-surface: #ffffff;
    --office-surface-soft: #fafbfc;
    --office-border: #d9dde2;
    --office-border-strong: #c8cdd3;

    --office-text: #212120;
    --office-text-secondary: rgba(33, 33, 32, .65);
    --office-text-muted: rgba(33, 33, 32, .45);

    --office-primary: #0f6cbd;
    --office-primary-hover: #115ea3;
    --office-danger: #d9363e;

    --office-hover: rgba(33, 33, 32, .04);
    --office-active: rgba(33, 33, 32, .08);

    --office-radius-xs: 4px;
    --office-radius-sm: 6px;
    --office-radius-md: 8px;
    --office-radius-lg: 10px;

    --office-shadow-popover:
        0 6px 16px rgba(0, 0, 0, .08),
        0 3px 6px -4px rgba(0, 0, 0, .12),
        0 9px 28px 8px rgba(0, 0, 0, .05);
    --office-shadow-drawer:
        6px 0 16px rgba(0, 0, 0, .08),
        3px 0 6px -4px rgba(0, 0, 0, .12),
        9px 0 28px 8px rgba(0, 0, 0, .05);

    --office-motion-fast: 100ms;
    --office-motion-mid: 200ms;
    --office-motion-slow: 300ms;

    --office-ease-out: cubic-bezier(.215, .61, .355, 1);
    --office-ease-in-out: cubic-bezier(.645, .045, .355, 1);
    --office-ease-out-quint: cubic-bezier(.23, 1, .32, 1);

    --office-topbar-height: 64px;
    --office-drawer-width: 300px;
}

html,
body {
    min-height: 100%;
}

html.office-overlay-open {
    overflow: hidden;
}

body {
    min-width: 320px;
    min-height: 100vh;
    background: var(--office-bg);
    color: var(--office-text);
    font-family: var(--office-font-family);
    font-size: 14px;
    -webkit-font-smoothing: antialiased;
    text-rendering: optimizeLegibility;
}

button,
input,
select,
textarea {
    font: inherit;
}

button,
a {
    -webkit-tap-highlight-color: transparent;
}

[data-office-wave] {
    position: relative;
    overflow: hidden;
    isolation: isolate;
}

[data-office-wave] > :not(.office-control-wave) {
    position: relative;
    z-index: 1;
}

.office-control-wave {
    position: absolute;
    z-index: 0;
    border-radius: 50%;
    background: currentColor;
    opacity: .10;
    pointer-events: none;
    transform: scale(.15);
    animation: office-control-wave 320ms var(--office-ease-out-quint) forwards;
}

@keyframes office-control-wave {
    0% {
        opacity: .12;
        transform: scale(.15);
    }
    65% {
        opacity: .07;
    }
    100% {
        opacity: 0;
        transform: scale(1);
    }
}

.office-masked-icon {
    width: 18px;
    height: 18px;
    display: inline-block;
    flex: 0 0 auto;
    background: currentColor;
    -webkit-mask: var(--office-mask-image) center / contain no-repeat;
    mask: var(--office-mask-image) center / contain no-repeat;
}

button:focus-visible,
a:focus-visible,
input:focus-visible,
select:focus-visible,
textarea:focus-visible {
    outline: 2px solid rgba(15, 108, 189, .34);
    outline-offset: 2px;
}

.office-app-shell {
    min-height: 100vh;
    background: var(--office-bg);
}

.office-topbar {
    position: sticky;
    top: 0;
    z-index: 220;
    height: var(--office-topbar-height);
    padding: 0 18px;
    border-bottom: 1px solid var(--office-border);
    display: grid;
    grid-template-columns: minmax(0, auto) minmax(0, 1fr) minmax(0, auto);
    align-items: center;
    background: rgba(255, 255, 255, .96);
    backdrop-filter: saturate(140%) blur(14px);
}

.office-topbar-left,
.office-topbar-actions,
.office-project-navigation {
    min-width: 0;
    display: flex;
    align-items: center;
}

.office-topbar-left {
    gap: 7px;
}

.office-project-navigation {
    justify-content: center;
    gap: 6px;
}

.office-topbar-actions {
    justify-content: flex-end;
    gap: 4px;
}

.office-icon-button,
.office-profile-button,
.office-context-back,
.office-context-more {
    width: 36px;
    min-width: 36px;
    height: 36px;
    padding: 0;
    border: 0;
    border-radius: var(--office-radius-md);
    display: inline-flex;
    align-items: center;
    justify-content: center;
    background: transparent;
    color: var(--office-text-secondary);
    text-decoration: none;
    cursor: pointer;
    transition:
        color var(--office-motion-fast) var(--office-ease-out),
        background-color var(--office-motion-fast) var(--office-ease-out),
        transform var(--office-motion-fast) var(--office-ease-out);
}

.office-icon-button:not(:disabled):hover,
.office-profile-button:hover,
.office-context-back:hover,
.office-context-more:hover {
    background: var(--office-hover);
    color: var(--office-text);
}

.office-icon-button:not(:disabled):active,
.office-profile-button:active,
.office-context-back:active,
.office-context-more:active {
    background: var(--office-active);
    transform: translateY(1px);
}

.office-icon-button:disabled,
.office-quick-action:disabled {
    cursor: default;
    opacity: .42;
}

.office-hamburger {
    width: 18px;
    display: grid;
    gap: 4px;
}

.office-hamburger i {
    display: block;
    height: 1.5px;
    border-radius: 99px;
    background: currentColor;
}

.office-topbar-brand {
    width: 36px;
    height: 36px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    text-decoration: none;
}

.office-topbar-brand img {
    width: 28px;
    height: 28px;
    opacity: .82;
}

.office-home-link {
    height: 34px;
    padding: 0 10px;
    border-radius: var(--office-radius-md);
    display: inline-flex;
    align-items: center;
    color: var(--office-text);
    font-size: 13px;
    font-weight: 600;
    text-decoration: none;
    transition: background-color var(--office-motion-fast) var(--office-ease-out);
}

.office-home-link:hover {
    background: var(--office-hover);
}

.office-quick-action {
    min-height: 34px;
    padding: 0 9px;
    border: 0;
    border-radius: var(--office-radius-md);
    display: inline-flex;
    align-items: center;
    gap: 6px;
    background: transparent;
    color: var(--office-text-secondary);
    font-size: 12.5px;
    cursor: pointer;
    transition:
        color var(--office-motion-fast) var(--office-ease-out),
        background-color var(--office-motion-fast) var(--office-ease-out);
}

.office-quick-action:not(:disabled):hover {
    background: var(--office-hover);
    color: var(--office-text);
}

.office-action-glyph {
    min-width: 16px;
    font-size: 17px;
    line-height: 1;
    text-align: center;
}

.office-notification-button {
    font-size: 18px;
}

.office-profile-wrap,
.office-context-menu-wrap {
    position: relative;
}

.office-profile-button {
    margin-left: 3px;
}

.office-user-avatar {
    width: 28px;
    height: 28px;
    border-radius: 50%;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    background: #eef0f2;
    color: #59616a;
    font-size: 10px;
    font-weight: 700;
    letter-spacing: .02em;
}

.office-user-avatar-large {
    width: 38px;
    height: 38px;
    font-size: 12px;
}

.office-popover {
    position: absolute;
    z-index: 360;
    min-width: 210px;
    padding: 4px;
    border: 1px solid rgba(33, 33, 32, .06);
    border-radius: var(--office-radius-lg);
    background: var(--office-surface);
    box-shadow: var(--office-shadow-popover);
    opacity: 0;
    visibility: hidden;
    pointer-events: none;
    transform: translateY(-4px) scaleY(.96);
    transform-origin: 50% 0;
    transition:
        opacity var(--office-motion-fast) linear,
        transform var(--office-motion-mid) var(--office-ease-out-quint),
        visibility 0s linear var(--office-motion-mid);
}

.office-popover.is-open {
    opacity: 1;
    visibility: visible;
    pointer-events: auto;
    transform: translateY(0) scaleY(1);
    transition:
        opacity var(--office-motion-fast) linear,
        transform var(--office-motion-mid) var(--office-ease-out-quint),
        visibility 0s;
}

.office-profile-popover {
    top: calc(100% + 9px);
    right: 0;
    width: 286px;
    padding: 7px;
}

.office-profile-summary {
    padding: 9px 8px 10px;
    display: flex;
    align-items: center;
    gap: 11px;
}

.office-profile-summary > div,
.office-drawer-user > div {
    min-width: 0;
    display: grid;
    gap: 2px;
}

.office-profile-summary strong,
.office-drawer-user strong {
    overflow: hidden;
    color: var(--office-text);
    font-size: 13px;
    font-weight: 650;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.office-profile-summary span,
.office-drawer-user span {
    color: var(--office-text-secondary);
    font-size: 11.5px;
}

.office-profile-summary small {
    overflow: hidden;
    color: var(--office-text-muted);
    font-size: 10.5px;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.office-popover-divider {
    height: 1px;
    margin: 4px 0;
    background: var(--office-border);
}

.office-popover-action,
.office-popover-placeholder {
    width: 100%;
    min-height: 36px;
    padding: 0 10px;
    border: 0;
    border-radius: var(--office-radius-sm);
    display: flex;
    align-items: center;
    background: transparent;
    color: var(--office-text);
    font-size: 12.5px;
    text-align: left;
    text-decoration: none;
    transition:
        background-color var(--office-motion-fast) var(--office-ease-out),
        color var(--office-motion-fast) var(--office-ease-out);
}

.office-popover-action {
    cursor: pointer;
}

.office-popover-action:hover {
    background: var(--office-hover);
}

.office-popover-placeholder {
    color: var(--office-text-muted);
    cursor: default;
}

.office-logout-form {
    margin: 0;
}

.office-drawer {
    position: fixed;
    inset: 0 auto 0 0;
    z-index: 410;
    width: min(var(--office-drawer-width), calc(100vw - 34px));
    min-width: 0;
    padding: 14px 14px 13px;
    display: flex;
    flex-direction: column;
    background: var(--office-surface);
    box-shadow: var(--office-shadow-drawer);
    transform: translate3d(calc(-100% - 24px), 0, 0);
    visibility: hidden;
    transition:
        transform var(--office-motion-mid) var(--office-ease-out-quint),
        visibility 0s linear var(--office-motion-mid);
    will-change: transform;
}

.sidebar-open .office-drawer {
    transform: translate3d(0, 0, 0);
    visibility: visible;
    transition:
        transform var(--office-motion-mid) var(--office-ease-out-quint),
        visibility 0s;
}

.office-drawer-scrim {
    position: fixed;
    inset: 0;
    z-index: 400;
    padding: 0;
    border: 0;
    background: rgba(0, 0, 0, .18);
    opacity: 0;
    visibility: hidden;
    pointer-events: none;
    cursor: default;
    transition:
        opacity var(--office-motion-mid) linear,
        visibility 0s linear var(--office-motion-mid);
}

.sidebar-open .office-drawer-scrim {
    opacity: 1;
    visibility: visible;
    pointer-events: auto;
    transition:
        opacity var(--office-motion-mid) linear,
        visibility 0s;
}

.office-drawer-header {
    min-height: 48px;
    padding: 0 2px 12px 5px;
    border-bottom: 1px solid var(--office-border);
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
}

.office-drawer-brand {
    min-width: 0;
    display: flex;
    align-items: center;
    gap: 10px;
    color: var(--office-text);
    text-decoration: none;
}

.office-drawer-brand img {
    width: 32px;
    height: 32px;
    opacity: .82;
}

.office-drawer-brand > span {
    min-width: 0;
    display: grid;
    gap: 1px;
}

.office-drawer-brand strong {
    overflow: hidden;
    font-size: 13.5px;
    font-weight: 700;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.office-drawer-brand small {
    overflow: hidden;
    color: var(--office-text-muted);
    font-size: 10px;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.office-drawer-nav {
    padding: 13px 1px;
    display: grid;
    gap: 2px;
}

.office-nav-section-label {
    margin: 12px 10px 5px;
    color: var(--office-text-muted);
    font-size: 9.5px;
    font-weight: 700;
    letter-spacing: .065em;
    text-transform: uppercase;
}

.office-nav-item {
    min-height: 38px;
    padding: 0 10px;
    border-radius: var(--office-radius-md);
    display: flex;
    align-items: center;
    color: var(--office-text-secondary);
    font-size: 12.5px;
    font-weight: 550;
    text-decoration: none;
    transition:
        color var(--office-motion-fast) var(--office-ease-out),
        background-color var(--office-motion-fast) var(--office-ease-out);
}

a.office-nav-item:hover {
    background: var(--office-hover);
    color: var(--office-text);
}

a.office-nav-item.active {
    background: #f1f5f9;
    color: var(--office-text);
    font-weight: 650;
}

.office-nav-item.is-disabled {
    color: var(--office-text-muted);
    opacity: .72;
}

.office-drawer-footer {
    margin-top: auto;
    padding: 12px 5px 0;
    border-top: 1px solid var(--office-border);
    display: grid;
    gap: 11px;
}

.office-drawer-user {
    min-width: 0;
    display: flex;
    align-items: center;
    gap: 9px;
}

.office-drawer-meta {
    color: var(--office-text-muted);
    font-size: 9.5px;
}

.office-workspace {
    min-width: 0;
    min-height: calc(100vh - var(--office-topbar-height));
    padding: 30px 34px 48px;
}

.office-page {
    width: min(1760px, 100%);
    margin: 0 auto;
}

.office-heading {
    margin-bottom: 24px;
}

.office-eyebrow,
.office-card-kicker {
    color: var(--office-primary);
    font-size: 10px;
    font-weight: 750;
    letter-spacing: .055em;
    text-transform: uppercase;
}

.office-heading h1 {
    margin: 5px 0 0;
    color: var(--office-text);
    font-size: 27px;
    line-height: 1.2;
    letter-spacing: -.025em;
}

.office-heading p {
    margin: 8px 0 0;
    color: var(--office-text-secondary);
    font-size: 13px;
}

.office-intro-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 18px;
}

.office-card,
.office-roadmap-card {
    padding: 22px 24px;
    transition:
        border-color var(--office-motion-mid) var(--office-ease-out),
        box-shadow var(--office-motion-mid) var(--office-ease-out),
        transform var(--office-motion-mid) var(--office-ease-out);
}

.office-card:hover,
.office-roadmap-card:hover {
    border-color: #cfd5da;
    box-shadow: 0 5px 18px rgba(17, 24, 39, .07);
    transform: translateY(-1px);
}

.office-card h2,
.office-roadmap-card h2 {
    margin: 8px 0 0;
    font-size: 17px;
}

.office-card p,
.office-roadmap-card p {
    margin: 8px 0 0;
    color: var(--office-text-secondary);
    font-size: 12.5px;
    line-height: 1.55;
}

.office-roadmap-card {
    margin-top: 18px;
}

.office-primary-link {
    display: inline-flex;
    margin-top: 12px;
    color: var(--office-primary);
    font-weight: 650;
    text-decoration: none;
}

/* Reusable deep-navigation pattern: Back → context dropdown(s) → more actions. */
.office-context-bar {
    min-height: 52px;
    margin: -8px 0 22px;
    display: flex;
    align-items: center;
    gap: 8px;
}

.office-context-path {
    min-width: 0;
    display: flex;
    align-items: center;
    gap: 5px;
}

.office-context-back {
    color: var(--office-text);
}

.office-context-back-icon {
    width: 21px;
    height: 21px;
}

.office-context-label {
    overflow: hidden;
    color: var(--office-text);
    font-size: 14px;
    font-weight: 650;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.office-context-value {
    min-width: 0;
}

.office-context-bar.is-simple .office-context-label {
    font-size: 14.5px;
    font-weight: 650;
}

.office-context-select {
    min-width: 0;
    min-height: 34px;
    padding: 0 8px;
    border: 0;
    border-radius: var(--office-radius-md);
    display: inline-flex;
    align-items: center;
    gap: 6px;
    background: transparent;
    color: var(--office-text);
    font-size: 14px;
    cursor: pointer;
    transition: background-color var(--office-motion-fast) var(--office-ease-out);
}

.office-context-select:hover,
.office-context-select[aria-expanded="true"] {
    background: var(--office-hover);
}

.office-context-select:active {
    background: var(--office-active);
}

.office-context-select[aria-expanded="true"] .office-context-chevron {
    color: var(--office-text-secondary);
}

.office-context-select > span:first-child,
.office-context-select > strong:first-child {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.office-context-chevron {
    width: 15px;
    height: 15px;
    color: var(--office-text-muted);
    transition:
        color var(--office-motion-fast) var(--office-ease-out),
        transform var(--office-motion-mid) var(--office-ease-out);
}

.office-context-select[aria-expanded="true"] .office-context-chevron {
    transform: rotate(180deg);
}

.office-context-separator {
    color: var(--office-text-muted);
    font-size: 14px;
}

.office-context-more {
    font-size: 20px;
    line-height: 1;
}

.office-context-popover {
    top: calc(100% + 5px);
    left: 0;
    width: max-content;
    min-width: 220px;
    max-width: min(380px, calc(100vw - 32px));
}

.office-context-more-popover {
    left: auto;
    right: 0;
    min-width: 190px;
}

.office-menu-item {
    width: 100%;
    min-height: 36px;
    padding: 0 10px;
    border: 0;
    border-radius: var(--office-radius-sm);
    display: flex;
    align-items: center;
    gap: 9px;
    background: transparent;
    color: var(--office-text);
    font-size: 12.5px;
    text-align: left;
    text-decoration: none;
    cursor: pointer;
    transition:
        background-color var(--office-motion-fast) var(--office-ease-out),
        color var(--office-motion-fast) var(--office-ease-out);
}

.office-menu-item:hover,
.office-menu-item:focus-visible {
    background: var(--office-hover);
    color: var(--office-text);
}

.office-menu-item:active {
    background: var(--office-active);
}

.office-menu-item.is-danger {
    color: var(--office-danger);
}

.office-menu-item.is-danger:hover {
    background: rgba(217, 54, 62, .08);
}

.office-context-actions {
    margin-left: auto;
    display: flex;
    align-items: center;
    gap: 8px;
}

.office-button {
    min-height: 34px;
    padding: 0 14px;
    border: 1px solid var(--office-border-strong);
    border-radius: var(--office-radius-md);
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 7px;
    background: var(--office-surface);
    color: var(--office-text);
    font-size: 12.5px;
    font-weight: 600;
    text-decoration: none;
    cursor: pointer;
    transition:
        border-color var(--office-motion-fast) var(--office-ease-out),
        background-color var(--office-motion-fast) var(--office-ease-out),
        color var(--office-motion-fast) var(--office-ease-out),
        transform var(--office-motion-fast) var(--office-ease-out),
        box-shadow var(--office-motion-fast) var(--office-ease-out);
}

.office-button:hover {
    border-color: #bcc2c8;
    background: #fff;
    box-shadow: 0 1px 2px rgba(17, 24, 39, .04);
}

.office-button:active {
    background: var(--office-hover);
    transform: translateY(1px);
}

.office-button.is-primary {
    border-color: transparent;
    background: var(--office-text);
    color: #fff;
}

.office-button.is-primary:hover {
    background: #353534;
}

.office-button.is-danger {
    border-color: rgba(217, 54, 62, .22);
    color: var(--office-danger);
}

.office-button.is-danger:hover {
    background: rgba(217, 54, 62, .06);
}

.office-table {
    width: 100%;
    border-collapse: separate;
    border-spacing: 0;
    background: var(--office-surface);
}

.office-table tbody tr {
    transition:
        background-color var(--office-motion-fast) var(--office-ease-out),
        box-shadow var(--office-motion-fast) var(--office-ease-out);
}

.office-table tbody tr:hover {
    background: rgba(33, 33, 32, .035);
}

.office-table tbody tr.is-selected {
    background: rgba(15, 108, 189, .055);
    box-shadow: inset 2px 0 0 rgba(15, 108, 189, .48);
}

.office-table tbody tr.is-selected:hover {
    background: rgba(15, 108, 189, .075);
}

#blazor-error-ui {
    display: none;
    position: fixed;
    right: 12px;
    bottom: 12px;
    left: 12px;
    z-index: 9999;
    padding: 12px 16px;
    border: 1px solid #e5c365;
    border-radius: var(--office-radius-md);
    background: #fff4ce;
    box-shadow: var(--office-shadow-popover);
}

#blazor-error-ui .dismiss {
    float: right;
    cursor: pointer;
}

@media (prefers-reduced-motion: reduce) {
    *,
    *::before,
    *::after {
        scroll-behavior: auto;
        animation-duration: .01ms;
        animation-iteration-count: 1;
        transition-duration: .01ms;
    }
}

@media (max-width: 920px) {
    .office-topbar {
        padding: 0 10px;
        grid-template-columns: auto 1fr auto;
    }

    .office-home-link {
        display: none;
    }

    .office-quick-action:not(.office-notification-link) > span:last-child {
        display: none;
    }

    .office-quick-action {
        width: 36px;
        min-width: 36px;
        padding: 0;
        justify-content: center;
    }

    .office-workspace {
        padding: 24px 18px 40px;
    }

    .office-intro-grid {
        grid-template-columns: 1fr;
    }
}

@media (max-width: 560px) {
    :root {
        --office-topbar-height: 58px;
    }

    .office-topbar {
        gap: 4px;
    }

    .office-topbar-brand {
        width: 32px;
        height: 32px;
    }

    .office-topbar-brand img {
        width: 25px;
        height: 25px;
    }

    .office-topbar-actions {
        gap: 1px;
    }

    .office-notification-button {
        display: none;
    }

    .office-workspace {
        padding: 20px 13px 34px;
    }

    .office-heading h1 {
        font-size: 24px;
    }

    .office-context-bar {
        margin-top: -4px;
    }

    .office-context-select {
        max-width: min(48vw, 260px);
    }

    .office-context-popover {
        max-width: calc(100vw - 26px);
    }

    .office-context-bar {
        flex-wrap: wrap;
        row-gap: 7px;
    }

    .office-context-path {
        flex: 1 1 calc(100% - 44px);
        overflow: hidden;
    }

    .office-context-actions {
        width: 100%;
        margin-left: 44px;
        justify-content: flex-end;
        overflow-x: auto;
        scrollbar-width: none;
    }

    .office-context-actions::-webkit-scrollbar {
        display: none;
    }

    .office-profile-popover {
        position: fixed;
        top: calc(var(--office-topbar-height) - 4px);
        right: 8px;
        left: 8px;
        width: auto;
    }
}


.office-login-layout { min-height:100vh; }
.office-login-page {
    min-height:100vh;
    display:grid;
    grid-template-columns:minmax(430px,41%) minmax(0,59%);
    background:#eef1f3;
}
.office-login-panel {
    min-height:100vh;
    display:flex;
    align-items:center;
    justify-content:center;
    background:linear-gradient(145deg,#f7f8f9 0%,#f1f3f5 54%,#eceff1 100%);
}
.office-login-inner { width:min(470px,calc(100% - 64px)); padding:44px 0 32px; }
.office-login-brand { display:flex; align-items:center; gap:15px; }
.office-login-brand img { width:48px; height:48px; object-fit:contain; opacity:.74; filter:grayscale(1); }
.office-login-brand div { min-width:0; display:flex; flex-direction:column; }
.office-login-brand strong { font-size:26px; font-weight:750; color:#252b31; letter-spacing:-.02em; }
.office-login-brand span { margin-top:3px; color:#7e8791; font-size:13px; white-space:nowrap; }
.office-login-copy { margin-top:60px; }
.office-login-copy h1 { margin:0; font-size:27px; line-height:1.12; letter-spacing:-.03em; font-weight:720; color:#202428; }
.office-login-copy p { margin:10px 0 0; color:#65707a; font-size:14px; line-height:1.55; }
.office-login-form { margin-top:40px; }
.office-login-field + .office-login-field { margin-top:22px; }
.office-login-field { display:block; margin-top:0; }
.office-login-field label { display:block; margin-bottom:8px; color:#41484f; font-size:13px; font-weight:650; }
.office-login-input {
    width:100%;
    min-width:0;
    height:50px;
    margin:0;
    padding:0 15px;
    border:1px solid #cbd4dc;
    border-radius:9px;
    outline:0;
    background:rgba(255,255,255,.95);
    color:#24292f;
    font:inherit;
    font-size:14px;
    box-shadow:0 1px 2px rgba(17,24,39,.03), inset 0 1px 0 rgba(255,255,255,.85);
    transition:border-color 160ms ease,box-shadow 160ms ease,background-color 160ms ease;
}
.office-login-input:focus {
    border-color:#0f6cbd;
    background:#fff;
    box-shadow:0 0 0 3px rgba(15,108,189,.10),0 2px 6px rgba(17,24,39,.04);
}
.office-remember { display:inline-flex; align-items:center; gap:9px; margin-top:18px; color:#606a73; font-size:12.5px; cursor:pointer; }
.office-remember input { width:16px; height:16px; margin:0; accent-color:#0f6cbd; }
.office-login-submit {
    width:100%;
    height:48px;
    margin-top:24px;
    border:1px solid #0f6cbd;
    border-radius:8px;
    background:#fff;
    color:#0f6cbd;
    font-size:14px;
    font-weight:700;
    box-shadow:none;
    cursor:pointer;
    transition:background-color 160ms ease,border-color 160ms ease,color 160ms ease,transform 160ms ease,box-shadow 160ms ease;
}
.office-login-submit:hover { background:#f3f8fd; border-color:#0b5fa8; color:#0b5fa8; box-shadow:0 3px 10px rgba(15,108,189,.10); }
.office-login-submit:focus-visible { outline:0; box-shadow:0 0 0 3px rgba(15,108,189,.14); }
.office-login-submit:active { transform:translateY(1px); }
.office-login-error { margin-bottom:18px; padding:11px 13px; border:1px solid #f0bbb5; border-radius:7px; background:#fde8e7; color:#9f2419; font-size:12px; line-height:1.45; }
.office-login-footer { margin-top:52px; display:flex; justify-content:space-between; gap:12px; color:#9098a0; font-size:10.5px; }
.office-login-footer strong { color:#69727b; }
.office-login-visual { position:relative; min-height:100vh; overflow:hidden; background:#dfe3e6; }
.office-login-visual > img { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; object-position:52% 50%; }
.office-login-overlay { position:absolute; inset:0; background:linear-gradient(180deg,rgba(42,52,60,.045),rgba(42,52,60,.18)),linear-gradient(90deg,rgba(78,89,98,.03),transparent 45%); }
@media(max-width:1180px){ .office-login-page{grid-template-columns:minmax(410px,46%) minmax(0,54%);} }
@media(max-width:900px){
    .office-shell{grid-template-columns:1fr}
    .office-sidebar{position:static;height:auto}
    .office-main{padding:24px 18px}
    .office-intro-grid{grid-template-columns:1fr}
    .office-login-page{grid-template-columns:1fr;min-height:100dvh}
    .office-login-panel{
        min-height:100dvh;
        align-items:flex-start;
        padding-top:max(64px,calc(env(safe-area-inset-top) + 44px));
        padding-bottom:max(28px,env(safe-area-inset-bottom));
    }
    .office-login-visual{display:none}
    .office-login-inner{width:min(500px,calc(100% - 52px));padding:0 0 32px}
}
@media(max-width:520px){
    .office-login-panel{padding-top:max(58px,calc(env(safe-area-inset-top) + 38px))}
    .office-login-inner{width:calc(100% - 56px);padding-top:0}
    .office-login-brand img{width:41px;height:41px}
    .office-login-brand strong{font-size:22px}
    .office-login-brand span{font-size:11.5px}
    .office-login-copy{margin-top:42px}
    .office-login-copy h1{font-size:25px}
    .office-login-form{margin-top:32px}
    .office-login-footer{margin-top:38px}
}

/* Dashboard v0.4.1 ------------------------------------------------------- */
.sr-only {
    position: absolute;
    width: 1px;
    height: 1px;
    padding: 0;
    margin: -1px;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
    white-space: nowrap;
    border: 0;
}

.office-dashboard {
    display: grid;
    gap: 18px;
}

.office-dashboard-welcome {
    min-height: 92px;
    padding: 4px 2px 0;
    display: flex;
    align-items: center;
}

.office-dashboard-welcome h1 {
    margin: 5px 0 0;
    color: var(--office-text);
    font-size: clamp(25px, 2.1vw, 31px);
    line-height: 1.16;
    letter-spacing: -.03em;
}

.office-dashboard-date-line {
    margin: 8px 0 0;
    display: flex;
    align-items: center;
    gap: 7px;
    color: var(--office-text-secondary);
    font-size: 12.5px;
}

.office-dashboard-top-grid {
    display: grid;
    grid-template-columns: minmax(0, 2fr) minmax(280px, .85fr);
    gap: 18px;
}

.office-dashboard-panel,
.office-quick-section {
    min-width: 0;
    border: 1px solid var(--office-border);
    border-radius: var(--office-radius-lg);
    background: var(--office-surface);
}

.office-dashboard-panel {
    padding: 20px;
}

.office-panel-heading,
.office-collection-heading,
.office-collection-title-wrap,
.office-collection-primary-actions,
.office-panel-heading-inline {
    display: flex;
    align-items: center;
}

.office-panel-heading,
.office-collection-heading {
    justify-content: space-between;
    gap: 16px;
}

.office-panel-heading > div,
.office-collection-title-wrap > div {
    min-width: 0;
}

.office-panel-heading h2,
.office-collection-heading h2,
.office-quick-section h2 {
    margin: 3px 0 0;
    color: var(--office-text);
    font-size: 17px;
    line-height: 1.25;
    letter-spacing: -.015em;
}

.office-panel-kicker {
    color: var(--office-text-muted);
    font-size: 9.5px;
    font-weight: 750;
    letter-spacing: .06em;
    text-transform: uppercase;
}

.office-panel-meta {
    color: var(--office-text-muted);
    font-size: 10.5px;
}

.office-panel-text-button {
    padding: 0;
    border: 0;
    background: transparent;
    color: var(--office-text-muted);
    font-size: 10.5px;
}

.office-panel-text-button:disabled {
    opacity: .85;
}

.office-recent-grid {
    margin-top: 15px;
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 10px;
}

.office-recent-item {
    min-width: 0;
    min-height: 92px;
    padding: 12px 13px;
    border: 1px solid var(--office-border);
    border-radius: var(--office-radius-md);
    display: grid;
    align-content: center;
    gap: 4px;
    background: var(--office-surface-soft);
    color: var(--office-text);
    text-align: left;
    opacity: 1;
    cursor: default;
    transition:
        background-color var(--office-motion-fast) var(--office-ease-out),
        border-color var(--office-motion-fast) var(--office-ease-out),
        box-shadow var(--office-motion-mid) var(--office-ease-out),
        transform var(--office-motion-mid) var(--office-ease-out);
}

.office-recent-item strong {
    overflow: hidden;
    font-size: 12.5px;
    font-weight: 650;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.office-recent-item small,
.office-recent-type {
    overflow: hidden;
    color: var(--office-text-muted);
    font-size: 10.5px;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.office-recent-type {
    color: var(--office-primary);
    font-size: 9.5px;
    font-weight: 700;
}

.office-time-state {
    min-height: 94px;
    margin-top: 15px;
    padding: 14px;
    border-radius: var(--office-radius-md);
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 14px;
    background: var(--office-surface-soft);
}

.office-time-state > div:first-child {
    display: grid;
    gap: 5px;
}

.office-time-state span,
.office-time-actions span {
    color: var(--office-text-muted);
    font-size: 10.5px;
}

.office-time-state strong {
    font-size: 13px;
}

.office-time-live {
    color: var(--office-text);
    font-size: 25px;
    font-variant-numeric: tabular-nums;
    font-weight: 620;
    letter-spacing: -.025em;
}

.office-time-actions {
    margin-top: 12px;
    display: flex;
    align-items: center;
    gap: 10px;
}

.office-time-actions .office-button:disabled,
.office-collection-primary-actions .office-button:disabled,
.office-archive-row .office-button:disabled,
.office-card-link:disabled {
    opacity: 1;
    cursor: default;
}

.office-quick-section {
    padding: 17px 20px 20px;
}

.office-panel-heading-inline {
    justify-content: space-between;
    gap: 14px;
}

.office-quick-grid {
    margin-top: 13px;
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 9px;
}

.office-quick-tile {
    min-width: 0;
    min-height: 57px;
    padding: 10px 12px;
    border: 1px solid var(--office-border);
    border-radius: var(--office-radius-md);
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 9px;
    background: #fff;
    color: var(--office-text);
    text-align: left;
    opacity: 1;
}

.office-quick-tile strong {
    overflow: hidden;
    font-size: 12px;
    font-weight: 620;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.office-quick-tile small {
    flex: 0 0 auto;
    color: var(--office-text-muted);
    font-size: 9.5px;
}

.office-collection-panel {
    padding: 20px;
}

.office-collection-title-wrap {
    min-width: 0;
    gap: 12px;
}

.office-count-pill {
    flex: 0 0 auto;
    padding: 5px 8px;
    border: 1px solid var(--office-border);
    border-radius: 999px;
    background: var(--office-surface-soft);
    color: var(--office-text-muted);
    font-size: 10px;
}

.office-count-pill strong {
    color: var(--office-text-secondary);
    font-size: 10.5px;
}

.office-collection-toolbar {
    margin: 14px 0 16px;
    display: flex;
    justify-content: flex-end;
    gap: 9px;
}

.office-collection-toolbar.is-search-only {
    justify-content: flex-end;
}

.office-sort-control,
.office-search-control {
    position: relative;
    min-width: 0;
}

.office-sort-control select,
.office-search-control input {
    height: 36px;
    border: 1px solid var(--office-border-strong);
    border-radius: var(--office-radius-md);
    background: #fff;
    color: var(--office-text);
    font-size: 11.5px;
    outline: 0;
    transition:
        border-color var(--office-motion-fast) var(--office-ease-out),
        box-shadow var(--office-motion-fast) var(--office-ease-out),
        background-color var(--office-motion-fast) var(--office-ease-out);
}

.office-sort-control select {
    min-width: 150px;
    padding: 0 32px 0 11px;
    cursor: pointer;
}

.office-search-control input {
    width: min(265px, 34vw);
    min-width: 200px;
    padding: 0 34px 0 12px;
}

.office-search-control input::placeholder {
    color: var(--office-text-muted);
}

.office-sort-control select:hover,
.office-search-control input:hover {
    border-color: #c6cacf;
}

.office-sort-control select:focus,
.office-search-control input:focus {
    border-color: rgba(15, 108, 189, .52);
    box-shadow: 0 0 0 2px rgba(15, 108, 189, .08);
}

.office-search-mark {
    position: absolute;
    top: 50%;
    right: 12px;
    width: 13px;
    height: 13px;
    border: 1.5px solid var(--office-text-secondary);
    border-radius: 50%;
    transform: translateY(-55%);
    pointer-events: none;
}

.office-search-mark::after {
    position: absolute;
    right: -4px;
    bottom: -3px;
    width: 5px;
    height: 1.5px;
    border-radius: 99px;
    background: var(--office-text-secondary);
    content: "";
    transform: rotate(45deg);
    transform-origin: center;
}

.office-project-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(260px, 1fr));
    gap: 12px;
}

.office-project-card,
.office-offer-card {
    min-width: 0;
    border: 1px solid var(--office-border);
    border-radius: var(--office-radius-lg);
    background: #fff;
    transition:
        border-color var(--office-motion-fast) var(--office-ease-out),
        box-shadow var(--office-motion-mid) var(--office-ease-out),
        transform var(--office-motion-mid) var(--office-ease-out),
        background-color var(--office-motion-fast) var(--office-ease-out);
}

.office-project-card:hover,
.office-offer-card:hover {
    border-color: #cfd3d7;
    box-shadow: 0 4px 14px rgba(17, 24, 39, .055);
    transform: translateY(-1px);
}

.office-project-card.is-pinned,
.office-offer-card.is-pinned {
    box-shadow: inset 0 2px 0 rgba(15, 108, 189, .34);
}

.office-project-card-head {
    padding: 15px 15px 11px;
    display: grid;
    grid-template-columns: 42px minmax(0, 1fr) auto;
    align-items: start;
    gap: 10px;
}

.office-project-brand {
    width: 42px;
    height: 42px;
    border: 1px solid var(--office-border);
    border-radius: var(--office-radius-md);
    display: flex;
    align-items: center;
    justify-content: center;
    background: #f8fafc;
    color: var(--office-text-secondary);
    font-size: 9.5px;
    font-weight: 800;
    letter-spacing: .025em;
}

.office-project-identity {
    min-width: 0;
}

.office-project-identity > span,
.office-offer-card-head > div > span {
    display: block;
    overflow: hidden;
    color: var(--office-text-muted);
    font-size: 10px;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.office-project-identity h3,
.office-offer-card h3 {
    margin: 4px 0 0;
    overflow: hidden;
    color: var(--office-text);
    font-size: 13.5px;
    font-weight: 650;
    letter-spacing: -.01em;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.office-pin-button {
    min-height: 27px;
    padding: 0 7px;
    border: 0;
    border-radius: var(--office-radius-sm);
    background: transparent;
    color: var(--office-text-muted);
    font-size: 9px;
    cursor: pointer;
    transition:
        color var(--office-motion-fast) var(--office-ease-out),
        background-color var(--office-motion-fast) var(--office-ease-out);
}

.office-pin-button:hover {
    background: var(--office-hover);
    color: var(--office-text-secondary);
}

.office-pin-button[aria-pressed="true"] {
    background: rgba(15, 108, 189, .065);
    color: var(--office-primary);
}

.office-project-meta-row {
    min-height: 33px;
    margin: 0 15px;
    padding: 8px 0;
    border-top: 1px solid var(--office-border);
    border-bottom: 1px solid var(--office-border);
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 8px;
    color: var(--office-text-muted);
    font-size: 9.5px;
}

.office-status-dot {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    color: var(--office-text-secondary);
}

.office-status-dot::before {
    width: 6px;
    height: 6px;
    border-radius: 50%;
    background: #9ca3af;
    content: "";
}

.office-status-dot.is-active::before {
    background: #31b445;
}

.office-project-metrics {
    padding: 13px 15px 14px;
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 14px;
}

.office-project-metrics > div,
.office-offer-values > div {
    min-width: 0;
    display: grid;
    gap: 3px;
}

.office-project-metrics span,
.office-offer-values span {
    color: var(--office-text-muted);
    font-size: 9.5px;
}

.office-project-metrics strong,
.office-offer-values strong {
    overflow: hidden;
    color: var(--office-text);
    font-size: 12.5px;
    font-weight: 650;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.office-project-metrics small {
    overflow: hidden;
    color: #5d9d32;
    font-size: 9px;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.office-project-card-foot {
    min-height: 42px;
    padding: 8px 15px;
    border-top: 1px solid var(--office-border);
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
}

.office-project-card-foot > span {
    overflow: hidden;
    color: var(--office-text-muted);
    font-size: 9.5px;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.office-card-link {
    padding: 0;
    border: 0;
    background: transparent;
    color: var(--office-primary);
    font-size: 10px;
    font-weight: 650;
}

.office-archive-row {
    margin-top: 16px;
    display: flex;
    justify-content: center;
}

.office-collection-empty {
    padding: 34px 16px;
    border: 1px dashed var(--office-border-strong);
    border-radius: var(--office-radius-md);
    color: var(--office-text-muted);
    font-size: 11px;
    text-align: center;
}

.office-offer-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(240px, 1fr));
    gap: 12px;
}

.office-offer-card-head {
    padding: 15px 15px 12px;
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 10px;
}

.office-offer-values {
    margin: 0 15px;
    padding: 12px 0;
    border-top: 1px solid var(--office-border);
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 14px;
}

.office-request-list {
    border: 1px solid var(--office-border);
    border-radius: var(--office-radius-md);
    overflow: hidden;
    background: #fff;
}

.office-request-item {
    min-height: 58px;
    padding: 10px 12px;
    display: grid;
    grid-template-columns: minmax(0, 1.4fr) auto auto auto;
    align-items: center;
    gap: 14px;
    transition: background-color var(--office-motion-fast) var(--office-ease-out);
}

.office-request-item + .office-request-item {
    border-top: 1px solid var(--office-border);
}

.office-request-item:hover {
    background: rgba(33, 33, 32, .025);
}

.office-request-item > div {
    min-width: 0;
    display: grid;
    gap: 3px;
}

.office-request-item > div span,
.office-request-item small {
    overflow: hidden;
    color: var(--office-text-muted);
    font-size: 9.5px;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.office-request-item strong {
    overflow: hidden;
    font-size: 12px;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.office-request-status {
    padding: 4px 7px;
    border-radius: 999px;
    background: var(--office-surface-soft);
    color: var(--office-text-secondary);
    font-size: 9.5px;
}

.office-dashboard-preview-note {
    margin: 2px 0 0;
    color: var(--office-text-muted);
    font-size: 9.5px;
    text-align: center;
}

@media (max-width: 1080px) {
    .office-dashboard-top-grid {
        grid-template-columns: 1fr;
    }

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

@media (max-width: 760px) {
    .office-dashboard-welcome {
        min-height: 78px;
    }

    .office-recent-grid {
        grid-template-columns: 1fr;
    }

    .office-recent-item {
        min-height: 68px;
    }

    .office-collection-heading {
        align-items: flex-start;
        flex-direction: column;
    }

    .office-collection-primary-actions {
        width: 100%;
    }

    .office-collection-toolbar {
        display: grid;
        grid-template-columns: minmax(0, .85fr) minmax(0, 1.5fr);
    }

    .office-collection-toolbar.is-search-only {
        grid-template-columns: 1fr;
    }

    .office-sort-control,
    .office-search-control,
    .office-sort-control select,
    .office-search-control input {
        width: 100%;
        min-width: 0;
    }

    .office-project-grid,
    .office-offer-grid {
        grid-template-columns: 1fr;
    }

    .office-request-item {
        grid-template-columns: minmax(0, 1fr) auto;
        gap: 7px 10px;
    }

    .office-request-item small {
        grid-column: 1;
    }

    .office-request-item .office-card-link {
        grid-column: 2;
        grid-row: 2;
    }
}

@media (max-width: 520px) {
    .office-dashboard {
        gap: 13px;
    }

    .office-dashboard-panel,
    .office-quick-section,
    .office-collection-panel {
        padding: 15px;
    }

    .office-panel-heading,
    .office-panel-heading-inline {
        align-items: flex-start;
    }

    .office-quick-grid {
        grid-template-columns: 1fr;
    }

    .office-quick-tile {
        min-height: 48px;
    }

    .office-time-state {
        min-height: 82px;
    }

    .office-time-live {
        font-size: 22px;
    }

    .office-time-actions {
        align-items: flex-start;
        flex-direction: column;
    }

    .office-collection-title-wrap {
        width: 100%;
        align-items: flex-start;
        justify-content: space-between;
    }

    .office-collection-toolbar {
        grid-template-columns: 1fr;
    }

    .office-project-card-head {
        grid-template-columns: 38px minmax(0, 1fr) auto;
        padding: 13px 13px 10px;
    }

    .office-project-brand {
        width: 38px;
        height: 38px;
    }

    .office-project-meta-row {
        margin: 0 13px;
    }

    .office-project-metrics,
    .office-project-card-foot,
    .office-offer-card-head {
        padding-right: 13px;
        padding-left: 13px;
    }

    .office-pin-button span {
        display: none;
    }

    .office-pin-button {
        width: 28px;
        min-width: 28px;
        padding: 0;
    }

    .office-pin-button::after {
        content: "·";
        font-size: 20px;
        line-height: 1;
    }

    .office-pin-button[aria-pressed="true"]::after {
        content: "•";
        color: var(--office-primary);
    }
}

/* v0.4.1 project-context routing and navigation foundation */
.office-project-tabs {
    min-width: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 2px;
    overflow-x: auto;
    scrollbar-width: none;
}

.office-project-tabs::-webkit-scrollbar,
.office-local-tabs::-webkit-scrollbar {
    display: none;
}

.office-project-tab {
    height: 34px;
    padding: 0 10px;
    border-radius: var(--office-radius-md);
    display: inline-flex;
    align-items: center;
    flex: 0 0 auto;
    color: var(--office-text-secondary);
    font-size: 12px;
    font-weight: 560;
    text-decoration: none;
    transition:
        color var(--office-motion-fast) var(--office-ease-out),
        background-color var(--office-motion-fast) var(--office-ease-out);
}

.office-project-tab:hover {
    color: var(--office-text);
    background: var(--office-hover);
}

.office-project-tab.active {
    color: var(--office-primary);
    background: rgba(15, 108, 189, .075);
    font-weight: 680;
}

.office-nav-project-label {
    margin-top: 18px;
}

.office-nav-project-name {
    margin: 0 10px 5px;
    overflow: hidden;
    color: var(--office-text);
    font-size: 11.5px;
    font-weight: 700;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.office-nav-item.is-project {
    min-height: 34px;
    padding-left: 18px;
    font-size: 11.5px;
}

.office-popover-action {
    min-width: 0;
    gap: 2px;
    flex-direction: column;
    align-items: flex-start;
    justify-content: center;
}

.office-popover-action strong {
    max-width: 100%;
    overflow: hidden;
    font-size: 12.5px;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.office-popover-action small {
    max-width: 100%;
    overflow: hidden;
    color: var(--office-text-muted);
    font-size: 9.5px;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.office-popover-action.is-current {
    background: rgba(15, 108, 189, .065);
    color: var(--office-primary);
}

.office-popover-action.is-danger {
    color: var(--office-danger);
}

.office-popover-action.is-danger:hover {
    background: rgba(217, 54, 62, .065);
}

.office-page-heading,
.office-project-page-heading {
    margin-bottom: 20px;
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    gap: 18px;
}

.office-page-heading h1,
.office-project-page-heading h1 {
    margin: 5px 0 0;
    color: var(--office-text);
    font-size: 27px;
    line-height: 1.18;
    letter-spacing: -.025em;
}

.office-page-heading p,
.office-project-page-heading p {
    max-width: 760px;
    margin: 8px 0 0;
    color: var(--office-text-secondary);
    font-size: 12.5px;
    line-height: 1.5;
}

.office-project-heading-meta {
    display: flex;
    align-items: center;
    gap: 12px;
    color: var(--office-text-muted);
    font-size: 10.5px;
    white-space: nowrap;
}

.office-local-tabs {
    min-height: 42px;
    margin: -3px 0 18px;
    border-bottom: 1px solid var(--office-border);
    display: flex;
    align-items: flex-end;
    gap: 18px;
    overflow-x: auto;
    scrollbar-width: none;
}

.office-local-tab {
    min-height: 41px;
    margin-bottom: -1px;
    border-bottom: 2px solid transparent;
    display: inline-flex;
    align-items: center;
    flex: 0 0 auto;
    color: var(--office-text-secondary);
    font-size: 12px;
    font-weight: 560;
    text-decoration: none;
    transition:
        color var(--office-motion-fast) var(--office-ease-out),
        border-color var(--office-motion-fast) var(--office-ease-out);
}

.office-local-tab:hover {
    color: var(--office-text);
}

.office-local-tab.active {
    border-bottom-color: var(--office-primary);
    color: var(--office-primary);
    font-weight: 680;
}

.office-project-overview-grid {
    display: grid;
    grid-template-columns: minmax(280px, .8fr) minmax(0, 1.2fr);
    gap: 15px;
}

.office-project-summary-card,
.office-route-placeholder-panel,
.office-project-index-panel {
    padding: 20px;
}

.office-project-summary-card h2 {
    margin: 7px 0 16px;
    font-size: 18px;
    letter-spacing: -.02em;
}

.office-project-summary-list {
    margin: 0;
    display: grid;
    gap: 0;
}

.office-project-summary-list > div {
    min-height: 45px;
    border-top: 1px solid var(--office-border);
    display: grid;
    grid-template-columns: minmax(120px, .7fr) minmax(0, 1.3fr);
    align-items: center;
    gap: 12px;
}

.office-project-summary-list dt {
    color: var(--office-text-muted);
    font-size: 10px;
}

.office-project-summary-list dd {
    margin: 0;
    color: var(--office-text);
    font-size: 11.5px;
    font-weight: 620;
}

.office-route-placeholder-panel {
    min-height: 180px;
    display: flex;
    align-items: center;
}

.office-route-placeholder {
    width: min(720px, 100%);
    display: flex;
    align-items: center;
    gap: 16px;
}

.office-route-placeholder.is-actionable {
    align-items: flex-start;
}

.office-route-placeholder-mark {
    width: 54px;
    min-width: 54px;
    height: 54px;
    border: 1px solid var(--office-border);
    border-radius: var(--office-radius-lg);
    display: inline-flex;
    align-items: center;
    justify-content: center;
    background: var(--office-surface-soft);
    color: var(--office-text-muted);
    font-size: 9px;
    font-weight: 800;
    letter-spacing: .04em;
}

.office-route-placeholder > div {
    min-width: 0;
}

.office-route-placeholder strong {
    display: block;
    font-size: 14px;
}

.office-route-placeholder p {
    margin: 6px 0 0;
    color: var(--office-text-secondary);
    font-size: 11.5px;
    line-height: 1.55;
}

.office-route-placeholder .office-button {
    margin-top: 13px;
}

.office-project-index-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(285px, 1fr));
    gap: 12px;
}

.office-project-index-card {
    min-width: 0;
    padding: 16px;
    border: 1px solid var(--office-border);
    border-radius: var(--office-radius-lg);
    background: #fff;
    transition:
        border-color var(--office-motion-fast) var(--office-ease-out),
        box-shadow var(--office-motion-mid) var(--office-ease-out),
        transform var(--office-motion-mid) var(--office-ease-out);
}

.office-project-index-card:hover {
    border-color: #cfd3d7;
    box-shadow: 0 4px 14px rgba(17, 24, 39, .055);
    transform: translateY(-1px);
}

.office-project-index-card .office-project-identity {
    display: grid;
    grid-template-columns: 44px minmax(0, 1fr);
    align-items: center;
    gap: 11px;
}

.office-project-mark {
    width: 44px;
    height: 44px;
    border: 1px solid var(--office-border);
    border-radius: var(--office-radius-md);
    display: inline-flex;
    align-items: center;
    justify-content: center;
    background: var(--office-surface-soft);
    color: var(--office-text-secondary);
    font-size: 9px;
    font-weight: 800;
}

.office-project-index-card .office-project-identity span {
    color: var(--office-text-muted);
    font-size: 9.5px;
}

.office-project-index-card .office-project-identity h2 {
    margin: 3px 0 0;
    overflow: hidden;
    font-size: 14px;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.office-project-index-meta {
    min-height: 40px;
    margin: 13px 0;
    border-top: 1px solid var(--office-border);
    border-bottom: 1px solid var(--office-border);
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
    color: var(--office-text-muted);
    font-size: 9.5px;
}

.office-card-link {
    text-decoration: none;
    cursor: pointer;
}

.office-card-link:hover {
    color: var(--office-primary-hover);
}

.office-procurement-summary {
    margin-bottom: 16px;
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 10px;
}

.office-procurement-summary > div {
    min-width: 0;
    min-height: 64px;
    padding: 11px 13px;
    border: 1px solid var(--office-border);
    border-radius: var(--office-radius-md);
    display: grid;
    align-content: center;
    gap: 5px;
    background: var(--office-surface-soft);
}

.office-procurement-summary span {
    overflow: hidden;
    color: var(--office-text-muted);
    font-size: 9.5px;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.office-procurement-summary strong {
    overflow: hidden;
    color: var(--office-text);
    font-size: 12px;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.office-procurement-tabs {
    margin-top: 0;
}

.office-procurement-stage {
    min-height: 260px;
}

@media (max-width: 1080px) {
    .office-project-tab {
        padding-inline: 7px;
        font-size: 11px;
    }

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

@media (max-width: 760px) {
    .office-project-navigation {
        display: none;
    }

    .office-page-heading,
    .office-project-page-heading {
        align-items: flex-start;
        flex-direction: column;
    }

    .office-project-heading-meta {
        width: 100%;
        justify-content: space-between;
    }

    .office-project-overview-grid {
        grid-template-columns: 1fr;
    }

    .office-project-summary-list > div {
        grid-template-columns: 1fr;
        align-content: center;
        gap: 3px;
    }
}

@media (max-width: 520px) {
    .office-page-heading h1,
    .office-project-page-heading h1 {
        font-size: 24px;
    }

    .office-local-tabs {
        gap: 15px;
    }

    .office-route-placeholder {
        align-items: flex-start;
    }

    .office-route-placeholder-mark {
        width: 46px;
        min-width: 46px;
        height: 46px;
    }

    .office-procurement-summary {
        grid-template-columns: 1fr;
    }
}

a.office-recent-item {
    text-decoration: none;
    cursor: pointer;
}

a.office-recent-item:hover {
    border-color: #cfd3d7;
    background: #fff;
    box-shadow: 0 4px 14px rgba(17, 24, 39, .05);
    transform: translateY(-1px);
}

/* --------------------------------------------------------------------------
   Benutzer-Popup / Profil & Einstellungen
   -------------------------------------------------------------------------- */

.office-user-menu-wrap {
    position: relative;
    min-width: 0;
}

.office-user-menu-wrap.opens-upwards .office-profile-popover {
    top: auto;
    bottom: calc(100% + 9px);
    left: 0;
    right: auto;
    transform: translateY(4px) scaleY(.96);
    transform-origin: 50% 100%;
}

.office-user-menu-wrap.opens-upwards .office-profile-popover.is-open {
    transform: translateY(0) scaleY(1);
}

.office-drawer-user-button {
    width: 100%;
    min-width: 0;
    min-height: 50px;
    padding: 7px 8px;
    border: 0;
    border-radius: var(--office-radius-md);
    display: grid;
    grid-template-columns: auto minmax(0, 1fr) auto;
    align-items: center;
    gap: 9px;
    background: transparent;
    color: var(--office-text);
    text-align: left;
    cursor: pointer;
    transition:
        background-color var(--office-motion-fast) var(--office-ease-out),
        transform var(--office-motion-fast) var(--office-ease-out);
}

.office-drawer-user-button:hover {
    background: var(--office-hover);
}

.office-drawer-user-button:active {
    background: var(--office-active);
    transform: translateY(1px);
}

.office-drawer-user-copy {
    min-width: 0;
    display: grid;
    gap: 2px;
}

.office-drawer-user-copy strong,
.office-drawer-user-copy small {
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.office-drawer-user-copy strong {
    font-size: 12.5px;
    font-weight: 650;
}

.office-drawer-user-copy small {
    color: var(--office-text-muted);
    font-size: 10.5px;
}

.office-user-menu-chevron {
    color: var(--office-text-muted);
    font-size: 12px;
    transition: transform var(--office-motion-mid) var(--office-ease-out);
}

.office-drawer-user-button[aria-expanded="true"] .office-user-menu-chevron {
    transform: rotate(180deg);
}

/* --------------------------------------------------------------------------
   Einstellungen – gruppierte Office-Struktur
   -------------------------------------------------------------------------- */

.office-settings-page {
    padding-bottom: 20px;
}

.office-settings-heading {
    margin-top: 18px;
    align-items: flex-start;
}

.office-settings-group + .office-settings-group {
    margin-top: 28px;
}

.office-settings-group-heading {
    margin-bottom: 10px;
}

.office-settings-group-heading h2 {
    margin: 0;
    color: var(--office-text);
    font-size: 14px;
    font-weight: 720;
    letter-spacing: -.01em;
}

.office-settings-group-heading p {
    margin: 4px 0 0;
    color: var(--office-text-muted);
    font-size: 10.5px;
    line-height: 1.45;
}

.office-settings-grid,
.office-profile-settings-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 10px;
}

.office-profile-settings-grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
}

.office-settings-card {
    position: relative;
    min-width: 0;
    min-height: 112px;
    padding: 16px 17px;
    border: 1px solid var(--office-border);
    border-radius: var(--office-radius-lg);
    display: block;
    background: var(--office-surface);
    color: var(--office-text);
    text-decoration: none;
    transition:
        border-color var(--office-motion-fast) var(--office-ease-out),
        box-shadow var(--office-motion-mid) var(--office-ease-out),
        transform var(--office-motion-mid) var(--office-ease-out),
        background-color var(--office-motion-fast) var(--office-ease-out),
        opacity var(--office-motion-fast) var(--office-ease-out);
}

a.office-settings-card:hover {
    border-color: #cfd3d7;
    box-shadow: 0 4px 14px rgba(17, 24, 39, .05);
    transform: translateY(-1px);
}

a.office-settings-card:active {
    transform: translateY(0);
    background: var(--office-surface-soft);
}

.office-settings-card-kicker {
    display: block;
    margin-bottom: 7px;
    color: var(--office-primary);
    font-size: 9px;
    font-weight: 760;
    letter-spacing: .055em;
    text-transform: uppercase;
}

.office-settings-card h2,
.office-settings-card h3 {
    margin: 0;
    overflow: hidden;
    color: inherit;
    font-size: 14px;
    font-weight: 700;
    line-height: 1.3;
    text-overflow: ellipsis;
}

.office-settings-card p {
    margin: 7px 0 0;
    color: var(--office-text-secondary);
    font-size: 10.5px;
    line-height: 1.5;
}

.office-settings-card.is-static {
    cursor: default;
}

.office-settings-card.is-locked {
    background: #f7f8f9;
    color: var(--office-text-secondary);
    cursor: not-allowed;
    opacity: .58;
}

.office-settings-card.is-locked .office-settings-card-kicker {
    color: var(--office-text-muted);
}

.office-settings-card.is-locked p {
    color: var(--office-text-muted);
}

.office-settings-lock-label {
    display: inline-flex;
    margin-top: 10px;
    padding: 3px 7px;
    border: 1px solid var(--office-border-strong);
    border-radius: 999px;
    background: rgba(255, 255, 255, .6);
    color: var(--office-text-muted);
    font-size: 8.5px;
    font-weight: 650;
}

.office-access-denied {
    min-height: 220px;
    padding: 28px;
    border: 1px solid var(--office-border);
    border-radius: var(--office-radius-lg);
    display: grid;
    place-items: center;
    background: var(--office-surface);
    color: var(--office-text-secondary);
    text-align: center;
}

.office-access-denied strong {
    display: block;
    margin-bottom: 6px;
    color: var(--office-text);
    font-size: 14px;
}

.office-access-denied p {
    margin: 0;
    font-size: 11px;
}

@media (max-width: 980px) {
    .office-settings-grid,
    .office-profile-settings-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 620px) {
    .office-settings-grid,
    .office-profile-settings-grid {
        grid-template-columns: 1fr;
    }

    .office-settings-card {
        min-height: 98px;
    }

    .office-user-menu-wrap.opens-upwards .office-profile-popover {
        left: 0;
        right: auto;
        width: min(286px, calc(100vw - 42px));
    }
}

/* Sidebar: Benutzerkachel bewusst ohne zweites Popup. Das vollständige Konto-Menü
   existiert nur im Header; in der Sidebar bleibt ausschließlich Abmelden. */
.office-drawer-user-card {
    width: 100%;
    min-width: 0;
    min-height: 50px;
    padding: 7px 8px;
    border-radius: var(--office-radius-md);
    display: grid;
    grid-template-columns: auto minmax(0, 1fr) auto;
    align-items: center;
    gap: 9px;
    background: transparent;
    color: var(--office-text);
}

.office-drawer-user-card:hover {
    background: var(--office-hover);
}

.office-drawer-logout-form {
    margin: 0;
    display: contents;
}

.office-drawer-logout-button {
    width: 32px;
    height: 32px;
    padding: 0;
    border: 0;
    border-radius: var(--office-radius-sm);
    display: inline-flex;
    align-items: center;
    justify-content: center;
    background: transparent;
    color: var(--office-text-muted);
    cursor: pointer;
    transition:
        color var(--office-motion-fast) var(--office-ease-out),
        background-color var(--office-motion-fast) var(--office-ease-out),
        transform var(--office-motion-fast) var(--office-ease-out);
}

.office-drawer-logout-button:hover {
    color: var(--office-danger, #dc3545);
    background: rgba(220, 53, 69, .07);
}

.office-drawer-logout-button:active {
    transform: translateY(1px);
    background: rgba(220, 53, 69, .11);
}

/* ========================================================================== */
/* Office data surfaces                                                       */
/* Shared visual language for lists, reporting tables and AVA work grids.     */
/* ========================================================================== */

:root {
    --office-table-head-bg: #fbfbfc;
    --office-table-row-hover: rgba(33, 33, 32, .035);
    --office-table-row-selected: rgba(15, 108, 189, .065);
    --office-table-row-selected-hover: rgba(15, 108, 189, .095);
    --office-table-divider: #e8e9eb;
    --office-table-head-height: 44px;
    --office-table-row-height: 48px;
    --office-table-row-height-dense: 40px;
    --office-table-cell-x: 16px;
    --office-table-cell-y: 10px;
    --office-table-summary-bg: #fbfbfc;
    --office-skeleton-from: rgba(33, 33, 32, .06);
    --office-skeleton-to: rgba(33, 33, 32, .12);
}

.office-table-frame,
.office-ava-grid-shell {
    min-width: 0;
    overflow: visible;
    border: 1px solid var(--office-border);
    border-radius: var(--office-radius-lg);
    background: var(--office-surface);
}

.office-table-frame.is-scrollable,
.office-ava-grid-shell {
    overflow: hidden;
}

.office-table-toolbar {
    min-height: 52px;
    padding: 8px 12px;
    border-bottom: 1px solid var(--office-border);
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    background: var(--office-surface);
    border-radius: var(--office-radius-lg) var(--office-radius-lg) 0 0;
}

.office-table-toolbar-primary,
.office-table-toolbar-secondary,
.office-table-toolbar-actions {
    min-width: 0;
    display: flex;
    align-items: center;
    gap: 8px;
}

.office-table-toolbar-primary {
    flex: 1 1 auto;
}

.office-table-toolbar-secondary {
    flex: 0 1 auto;
    justify-content: flex-end;
}

.office-table-toolbar-actions {
    padding-left: 4px;
}

.office-table-toolbar input[type="search"],
.office-table-toolbar .office-table-search,
.office-table-toolbar select,
.office-table-sort {
    min-height: 34px;
    border: 1px solid var(--office-border-strong);
    border-radius: var(--office-radius-md);
    background: var(--office-surface);
    color: var(--office-text);
    transition:
        border-color var(--office-motion-fast) var(--office-ease-out),
        box-shadow var(--office-motion-fast) var(--office-ease-out),
        background-color var(--office-motion-fast) var(--office-ease-out);
}

.office-table-toolbar input[type="search"],
.office-table-toolbar .office-table-search {
    width: min(320px, 36vw);
    padding: 0 12px;
}

.office-table-toolbar select,
.office-table-sort {
    padding: 0 34px 0 12px;
}

.office-table-toolbar input[type="search"]:hover,
.office-table-toolbar select:hover,
.office-table-sort:hover {
    border-color: #b9bdc2;
}

.office-table-toolbar input[type="search"]:focus,
.office-table-toolbar select:focus,
.office-table-sort:focus {
    border-color: var(--office-primary);
    box-shadow: 0 0 0 2px rgba(15, 108, 189, .10);
    outline: 0;
}

.office-table-viewport,
.office-ava-grid-viewport {
    min-width: 0;
    max-width: 100%;
}

.office-table-viewport.is-scrollable,
.office-ava-grid-viewport {
    overflow: auto;
    scrollbar-gutter: stable;
    overscroll-behavior: contain;
}

.office-table {
    width: 100%;
    min-width: 100%;
    border-collapse: separate;
    border-spacing: 0;
    background: var(--office-surface);
    color: var(--office-text);
}

.office-table.is-fixed {
    table-layout: fixed;
}

.office-table th,
.office-table td {
    min-height: var(--office-table-row-height);
    padding: var(--office-table-cell-y) var(--office-table-cell-x);
    border-right: 1px solid var(--office-table-divider);
    border-bottom: 1px solid var(--office-table-divider);
    vertical-align: middle;
    text-align: left;
    background: var(--office-surface);
}

.office-table th:last-child,
.office-table td:last-child {
    border-right: 0;
}

.office-table thead th {
    height: var(--office-table-head-height);
    padding-top: 9px;
    padding-bottom: 9px;
    background: var(--office-table-head-bg);
    color: var(--office-text);
    font-size: 13px;
    font-weight: 600;
    white-space: nowrap;
}

.office-table.has-sticky-header thead th {
    position: sticky;
    top: 0;
    z-index: 8;
    box-shadow: 0 1px 0 var(--office-table-divider);
}

.office-table tbody tr:last-child td,
.office-table tfoot tr:last-child td,
.office-table tfoot tr:last-child th {
    border-bottom: 0;
}

.office-table tbody tr {
    transition: background-color var(--office-motion-fast) var(--office-ease-out);
}

.office-table tbody tr > * {
    transition:
        background-color var(--office-motion-fast) var(--office-ease-out),
        box-shadow var(--office-motion-fast) var(--office-ease-out);
}

.office-table tbody tr:hover > * {
    background: var(--office-table-row-hover);
}

.office-table tbody tr.is-selected > *,
.office-table tbody tr[aria-selected="true"] > * {
    background: var(--office-table-row-selected);
}

.office-table tbody tr.is-selected:hover > *,
.office-table tbody tr[aria-selected="true"]:hover > * {
    background: var(--office-table-row-selected-hover);
}

.office-table.is-selectable tbody tr {
    cursor: default;
}

.office-table.is-selectable tbody tr:focus-within > * {
    box-shadow: inset 0 0 0 1px rgba(15, 108, 189, .30);
}

.office-table.is-dense th,
.office-table.is-dense td {
    min-height: var(--office-table-row-height-dense);
    padding-top: 7px;
    padding-bottom: 7px;
}

.office-table .is-numeric,
.office-table th.is-numeric,
.office-table td.is-numeric {
    text-align: right;
    font-variant-numeric: tabular-nums;
}

.office-table .is-center {
    text-align: center;
}

.office-table .is-muted {
    color: var(--office-text-muted);
}

.office-table .is-strong {
    font-weight: 600;
}

.office-table .office-table-cell-title {
    min-width: 0;
    display: flex;
    align-items: center;
    gap: 8px;
}

.office-table .office-table-cell-title > span,
.office-table .office-table-cell-copy {
    min-width: 0;
}

.office-table .office-table-cell-copy {
    display: grid;
    gap: 2px;
}

.office-table .office-table-cell-copy strong,
.office-table .office-table-cell-copy span {
    overflow: hidden;
    white-space: nowrap;
    text-overflow: ellipsis;
}

.office-table .office-table-cell-copy small {
    color: var(--office-text-muted);
}

.office-table-link {
    color: var(--office-primary);
    font-weight: 500;
    text-decoration: none;
    transition: color var(--office-motion-fast) var(--office-ease-out);
}

.office-table-link:hover {
    color: var(--office-primary-hover);
    text-decoration: underline;
    text-underline-offset: 3px;
}

.office-table tfoot th,
.office-table tfoot td,
.office-table .office-table-summary-row > * {
    background: var(--office-table-summary-bg);
    font-weight: 600;
}

.office-table-frame.has-sticky-summary .office-table tfoot th,
.office-table-frame.has-sticky-summary .office-table tfoot td {
    position: sticky;
    bottom: 0;
    z-index: 7;
    box-shadow: 0 -1px 0 var(--office-table-divider);
}

.office-status-badge {
    min-height: 24px;
    width: fit-content;
    max-width: 100%;
    padding: 2px 8px;
    border: 1px solid transparent;
    border-radius: 999px;
    display: inline-flex;
    align-items: center;
    gap: 6px;
    background: #f4f4f5;
    color: var(--office-text-secondary);
    font-size: 12px;
    font-weight: 600;
    line-height: 18px;
    white-space: nowrap;
}

.office-status-badge-dot {
    width: 6px;
    height: 6px;
    border-radius: 50%;
    background: currentColor;
}

.office-status-badge.is-success {
    border-color: rgba(35, 134, 54, .16);
    background: rgba(35, 134, 54, .09);
    color: #237a37;
}

.office-status-badge.is-warning {
    border-color: rgba(167, 102, 0, .16);
    background: rgba(238, 170, 0, .11);
    color: #8a5700;
}

.office-status-badge.is-danger {
    border-color: rgba(217, 54, 62, .16);
    background: rgba(217, 54, 62, .08);
    color: #b4232a;
}

.office-status-badge.is-info {
    border-color: rgba(15, 108, 189, .16);
    background: rgba(15, 108, 189, .08);
    color: var(--office-primary);
}

.office-status-badge.is-muted {
    background: rgba(33, 33, 32, .035);
    color: var(--office-text-muted);
}

.office-row-menu-wrap {
    position: relative;
    display: inline-flex;
}

.office-row-menu-trigger {
    width: 32px;
    min-width: 32px;
    height: 32px;
    padding: 0;
    border: 1px solid transparent;
    border-radius: var(--office-radius-sm);
    display: inline-flex;
    align-items: center;
    justify-content: center;
    background: transparent;
    color: var(--office-text-secondary);
    cursor: pointer;
    transition:
        color var(--office-motion-fast) var(--office-ease-out),
        background-color var(--office-motion-fast) var(--office-ease-out),
        border-color var(--office-motion-fast) var(--office-ease-out);
}

.office-row-menu-trigger .office-svg-icon {
    width: 16px;
    height: 16px;
}

.office-row-menu-trigger:hover,
.office-row-menu-trigger[aria-expanded="true"] {
    border-color: var(--office-border);
    background: var(--office-hover);
    color: var(--office-text);
}

.office-row-menu-popover {
    top: calc(100% + 6px);
    right: 0;
    left: auto;
    min-width: 190px;
    transform-origin: calc(100% - 16px) 0;
}

.office-row-actions {
    display: inline-flex;
    align-items: center;
    justify-content: flex-end;
    gap: 4px;
}

.office-row-primary-action {
    min-height: 32px;
    padding: 0 10px;
    border: 1px solid var(--office-border-strong);
    border-radius: var(--office-radius-sm);
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 6px;
    background: var(--office-surface);
    color: var(--office-text);
    font-weight: 500;
    text-decoration: none;
    cursor: pointer;
    transition:
        border-color var(--office-motion-fast) var(--office-ease-out),
        background-color var(--office-motion-fast) var(--office-ease-out),
        transform var(--office-motion-fast) var(--office-ease-out);
}

.office-row-primary-action:hover {
    border-color: #aeb2b7;
    background: var(--office-hover);
}

.office-row-primary-action:active {
    transform: translateY(1px);
}

.office-segmented {
    padding: 2px;
    border-radius: var(--office-radius-md);
    display: inline-flex;
    align-items: center;
    gap: 2px;
    background: rgba(33, 33, 32, .045);
}

.office-segmented > a,
.office-segmented > button,
.office-segmented > label {
    min-height: 30px;
    padding: 0 10px;
    border: 0;
    border-radius: var(--office-radius-sm);
    display: inline-flex;
    align-items: center;
    justify-content: center;
    background: transparent;
    color: var(--office-text-secondary);
    text-decoration: none;
    cursor: pointer;
    transition:
        color var(--office-motion-fast) var(--office-ease-out),
        background-color var(--office-motion-fast) var(--office-ease-out),
        box-shadow var(--office-motion-fast) var(--office-ease-out);
}

.office-segmented > .is-active,
.office-segmented > [aria-pressed="true"],
.office-segmented > [aria-current="page"] {
    background: var(--office-surface);
    color: var(--office-text);
    box-shadow: 0 1px 3px rgba(0, 0, 0, .08);
}

.office-empty-state {
    min-height: 210px;
    padding: 32px;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 12px;
    text-align: center;
    color: var(--office-text-secondary);
}

.office-empty-state-mark {
    min-width: 52px;
    height: 52px;
    padding: 0 12px;
    border-radius: 16px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    background: rgba(33, 33, 32, .035);
    color: rgba(33, 33, 32, .24);
    font-size: 24px;
    font-weight: 600;
}

.office-empty-state strong {
    color: var(--office-text);
    font-size: 15px;
}

.office-empty-state p {
    max-width: 440px;
    margin: 4px 0 0;
    color: var(--office-text-muted);
}

.office-empty-state-action {
    margin-top: 4px;
}

.office-loading-state {
    padding: 6px 0;
    overflow: hidden;
}

.office-loading-row {
    min-height: var(--office-table-row-height);
    padding: 9px var(--office-table-cell-x);
    border-bottom: 1px solid var(--office-table-divider);
    display: grid;
    grid-template-columns: 2fr 1fr 1fr .7fr;
    align-items: center;
    gap: 18px;
}

.office-loading-row:last-child {
    border-bottom: 0;
}

.office-loading-row span {
    height: 12px;
    border-radius: 999px;
    background: linear-gradient(90deg, var(--office-skeleton-from) 25%, var(--office-skeleton-to) 37%, var(--office-skeleton-from) 63%);
    background-size: 400% 100%;
    animation: office-skeleton-loading 1.35s ease infinite;
}

.office-loading-row span.is-wide {
    width: 86%;
}

.office-loading-row span.is-short {
    width: 60%;
}

@keyframes office-skeleton-loading {
    from { background-position: 100% 50%; }
    to { background-position: 0 50%; }
}

/* Detail panels and dialogs use the same motion and surface language as table popovers. */
.office-detail-layer,
.office-dialog-layer {
    position: fixed;
    inset: 0;
    z-index: 900;
    visibility: hidden;
    pointer-events: none;
}

.office-detail-layer.is-open,
.office-dialog-layer.is-open {
    visibility: visible;
    pointer-events: auto;
}

.office-detail-scrim,
.office-dialog-scrim {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    padding: 0;
    border: 0;
    background: rgba(0, 0, 0, .25);
    opacity: 0;
    transition: opacity var(--office-motion-mid) var(--office-ease-out);
}

.office-detail-layer.is-open .office-detail-scrim,
.office-dialog-layer.is-open .office-dialog-scrim {
    opacity: 1;
}

.office-detail-panel {
    position: absolute;
    top: 0;
    right: 0;
    width: min(560px, calc(100vw - 28px));
    height: 100%;
    border-left: 1px solid var(--office-border);
    display: grid;
    grid-template-rows: auto minmax(0, 1fr) auto;
    background: var(--office-surface);
    box-shadow:
        -6px 0 16px rgba(0, 0, 0, .08),
        -3px 0 6px -4px rgba(0, 0, 0, .12),
        -9px 0 28px 8px rgba(0, 0, 0, .05);
    transform: translate3d(18px, 0, 0);
    opacity: 0;
    transition:
        transform var(--office-motion-mid) var(--office-ease-out-quint),
        opacity var(--office-motion-mid) var(--office-ease-out);
}

.office-detail-layer.is-open .office-detail-panel {
    transform: translate3d(0, 0, 0);
    opacity: 1;
}

.office-detail-panel-header,
.office-dialog-header {
    min-height: 68px;
    padding: 14px 18px 14px 20px;
    border-bottom: 1px solid var(--office-border);
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
}

.office-detail-panel-header h2,
.office-dialog-header h2 {
    margin: 0;
    font-size: 18px;
    line-height: 1.35;
}

.office-detail-panel-body {
    min-height: 0;
    overflow: auto;
    padding: 20px;
}

.office-detail-panel-footer,
.office-dialog-footer {
    padding: 12px 18px;
    border-top: 1px solid var(--office-border);
    display: flex;
    align-items: center;
    justify-content: flex-end;
    gap: 8px;
    background: var(--office-surface);
}

.office-dialog-layer {
    display: grid;
    place-items: center;
    padding: 16px;
}

.office-dialog {
    position: relative;
    width: min(620px, calc(100vw - 32px));
    max-height: min(760px, calc(100vh - 32px));
    border: 1px solid var(--office-border);
    border-radius: var(--office-radius-lg);
    display: grid;
    grid-template-rows: auto minmax(0, 1fr) auto;
    background: var(--office-surface);
    box-shadow: var(--office-shadow-popover);
    transform: scale(.96) translate3d(0, 6px, 0);
    opacity: 0;
    transition:
        transform var(--office-motion-mid) var(--office-ease-out-quint),
        opacity var(--office-motion-mid) var(--office-ease-out);
}

.office-dialog-layer.is-open .office-dialog {
    transform: scale(1) translate3d(0, 0, 0);
    opacity: 1;
}

.office-dialog-body {
    min-height: 0;
    overflow: auto;
    padding: 20px;
}

/* AVA / LV work grid. It intentionally uses CSS grid instead of a semantic HTML table.
   The body can later be virtualized without replacing the surrounding interaction model. */
.office-ava-grid-shell {
    min-height: 440px;
    display: grid;
    grid-template-rows: auto minmax(0, 1fr) auto;
}

.office-ava-grid-viewport {
    min-height: 0;
    max-height: min(68vh, 760px);
    background: var(--office-surface);
}

.office-ava-grid {
    min-width: 980px;
    display: grid;
    grid-auto-rows: minmax(var(--office-table-row-height-dense), auto);
}

.office-ava-grid-row {
    display: grid;
    grid-template-columns: var(--office-ava-grid-columns);
    min-width: 0;
}

.office-ava-grid-row > * {
    min-width: 0;
    padding: 8px 12px;
    border-right: 1px solid var(--office-table-divider);
    border-bottom: 1px solid var(--office-table-divider);
    display: flex;
    align-items: center;
    background: var(--office-surface);
    overflow: hidden;
}

.office-ava-grid-row > *:last-child {
    border-right: 0;
}

.office-ava-grid-row.is-header {
    position: sticky;
    top: 0;
    z-index: 12;
}

.office-ava-grid-row.is-header > * {
    min-height: var(--office-table-head-height);
    background: var(--office-table-head-bg);
    font-size: 13px;
    font-weight: 600;
    white-space: nowrap;
    box-shadow: 0 1px 0 var(--office-table-divider);
}

.office-ava-grid-row.is-title > * {
    background: #fcfcfd;
    font-weight: 600;
}

.office-ava-grid-row.is-selected > *,
.office-ava-grid-row[aria-selected="true"] > * {
    background: var(--office-table-row-selected);
}

.office-ava-grid-row:not(.is-header):hover > * {
    background: var(--office-table-row-hover);
}

.office-ava-grid-row.is-selected:hover > *,
.office-ava-grid-row[aria-selected="true"]:hover > * {
    background: var(--office-table-row-selected-hover);
}

.office-ava-grid-cell-indent-1 {
    padding-left: 28px;
}

.office-ava-grid-cell-indent-2 {
    padding-left: 48px;
}

.office-ava-grid-cell-numeric {
    justify-content: flex-end;
    text-align: right;
    font-variant-numeric: tabular-nums;
}

.office-ava-grid-cell-ellipsis {
    overflow: hidden;
    white-space: nowrap;
    text-overflow: ellipsis;
}

.office-ava-grid-footer {
    min-height: 46px;
    padding: 8px 12px;
    border-top: 1px solid var(--office-border);
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    background: var(--office-table-summary-bg);
}

@media (max-width: 840px) {
    .office-table-toolbar {
        align-items: stretch;
        flex-direction: column;
    }

    .office-table-toolbar-primary,
    .office-table-toolbar-secondary {
        width: 100%;
        flex-wrap: wrap;
    }

    .office-table-toolbar-secondary {
        justify-content: flex-start;
    }

    .office-table-toolbar input[type="search"],
    .office-table-toolbar .office-table-search {
        width: min(100%, 420px);
        flex: 1 1 220px;
    }

    .office-table th,
    .office-table td {
        padding-left: 12px;
        padding-right: 12px;
    }

    .office-detail-panel {
        width: min(92vw, 560px);
    }
}

@media (max-width: 560px) {
    .office-table-toolbar {
        padding: 8px;
    }

    .office-table-toolbar-primary,
    .office-table-toolbar-secondary,
    .office-table-toolbar-actions {
        gap: 6px;
    }

    .office-table-toolbar-actions {
        width: 100%;
        padding-left: 0;
    }

    .office-table-toolbar-actions > .office-button,
    .office-table-toolbar-actions > button:not(.office-icon-button) {
        flex: 1 1 auto;
    }

    .office-table th,
    .office-table td {
        padding: 8px 10px;
    }

    .office-detail-panel {
        width: 100%;
        max-width: none;
    }

    .office-dialog-layer {
        padding: 8px;
    }

    .office-dialog {
        width: calc(100vw - 16px);
        max-height: calc(100vh - 16px);
    }

    .office-loading-row {
        grid-template-columns: 2fr 1fr;
    }

    .office-loading-row span:nth-child(n+3) {
        display: none;
    }
}

@media (prefers-reduced-motion: reduce) {
    .office-loading-row span {
        animation: none;
    }

    .office-detail-scrim,
    .office-dialog-scrim,
    .office-detail-panel,
    .office-dialog {
        transition: none;
    }
}


/* ========================================================================== */
/* v0.4.1 homogeneity + responsive refinement                                 */
/* One interaction language for every Office table family.                    */
/* ========================================================================== */

.office-table-column-header {
    width: 100%;
    min-width: 0;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 8px;
}

.office-table-column-header.is-numeric {
    justify-content: flex-end;
}

.office-table-column-label {
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.office-table-column-tools {
    flex: 0 0 auto;
    display: inline-flex;
    align-items: center;
    gap: 1px;
}

.office-table-column-tool {
    width: 26px;
    min-width: 26px;
    height: 26px;
    padding: 0;
    border: 0;
    border-radius: var(--office-radius-sm);
    display: inline-flex;
    align-items: center;
    justify-content: center;
    background: transparent;
    color: var(--office-text-muted);
    opacity: .56;
    cursor: pointer;
    transition:
        opacity var(--office-motion-fast) var(--office-ease-out),
        color var(--office-motion-fast) var(--office-ease-out),
        background-color var(--office-motion-fast) var(--office-ease-out),
        transform var(--office-motion-fast) var(--office-ease-out);
}

.office-table-column-tool:hover,
.office-table-column-tool:focus-visible,
.office-table-column-tool.is-active,
.office-table-column-tool[aria-expanded="true"] {
    opacity: 1;
    color: var(--office-text);
    background: var(--office-hover);
}

.office-table-column-tool:active {
    background: var(--office-active);
    transform: translateY(1px);
}

.office-table-column-tool.is-active,
.office-table-filter-trigger.is-active {
    color: var(--office-primary);
    background: rgba(15, 108, 189, .075);
}

.office-filter-glyph {
    width: 14px;
    height: 14px;
}

.office-sort-glyph {
    width: 14px;
    height: 14px;
    opacity: .72;
    transition:
        opacity var(--office-motion-fast) var(--office-ease-out),
        color var(--office-motion-fast) var(--office-ease-out),
        transform var(--office-motion-fast) var(--office-ease-out);
}

.office-table-sort-trigger[data-sort-direction="asc"] .office-sort-glyph,
.office-table-sort-trigger[data-sort-direction="desc"] .office-sort-glyph {
    opacity: 1;
    color: var(--office-primary);
}

.office-table-sort-trigger:active .office-sort-glyph {
    transform: translateY(1px);
}

.office-column-filter-wrap {
    display: inline-flex;
}

.office-column-filter-popover,
.office-row-menu-popover[data-office-floating-popover] {
    position: fixed;
    top: 0;
    right: auto;
    left: 0;
    z-index: 980;
}

.office-column-filter-popover {
    width: 224px;
    min-width: 224px;
    max-width: calc(100vw - 16px);
    padding: 6px;
    transform-origin: 50% 0;
}

.office-column-filter-popover[data-office-floating-direction="up"],
.office-row-menu-popover[data-office-floating-direction="up"] {
    transform-origin: 50% 100%;
}

.office-column-filter-options {
    display: grid;
    gap: 2px;
}

.office-column-filter-option {
    min-height: 34px;
    padding: 0 8px;
    border-radius: var(--office-radius-sm);
    display: flex;
    align-items: center;
    gap: 8px;
    color: var(--office-text);
    font-size: 12px;
    font-weight: 500;
    cursor: pointer;
    transition: background-color var(--office-motion-fast) var(--office-ease-out);
}

.office-column-filter-option:hover {
    background: var(--office-hover);
}

.office-column-filter-option input {
    width: 16px;
    height: 16px;
    margin: 0;
    accent-color: var(--office-primary);
}

.office-column-filter-footer {
    min-height: 42px;
    margin-top: 5px;
    padding: 6px 2px 0;
    border-top: 1px solid var(--office-border);
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 8px;
}

.office-column-filter-reset,
.office-column-filter-apply {
    min-height: 30px;
    padding: 0 9px;
    border: 0;
    border-radius: var(--office-radius-sm);
    background: transparent;
    font-size: 11.5px;
    cursor: pointer;
}

.office-column-filter-reset {
    color: var(--office-text-muted);
}

.office-column-filter-reset:hover {
    color: var(--office-text);
    background: var(--office-hover);
}

.office-column-filter-apply {
    background: var(--office-text);
    color: #fff;
    font-weight: 650;
}

.office-column-filter-apply:hover {
    background: #353534;
}

/* All normal tables use the same typography/spacing. Variants may only add
   semantics, density or scrolling – not invent a new visual language. */
.office-table-frame .office-table thead th {
    color: var(--office-text);
    font-size: 12.5px;
    font-weight: 650;
    letter-spacing: 0;
}

.office-table-frame .office-table tbody td,
.office-table-frame .office-table tbody th {
    font-size: 12.5px;
    line-height: 1.38;
}

.office-table-frame .office-table tfoot th,
.office-table-frame .office-table tfoot td {
    min-height: 44px;
    font-size: 12.5px;
}

.office-table-frame .office-row-actions {
    min-height: 32px;
}

.office-table-wide-preview .office-table {
    min-width: 1080px;
}

.office-project-cost-invoices .office-table {
    min-width: 1180px;
}

/* The page can grow much wider than Project because Office contains dense
   financial and AVA work surfaces. */
@media (min-width: 1440px) {
    .office-workspace {
        padding-right: clamp(30px, 2.4vw, 46px);
        padding-left: clamp(30px, 2.4vw, 46px);
    }
}

@media (max-width: 1180px) {
    .office-workspace {
        padding: 26px 22px 42px;
    }

    .office-page-heading,
    .office-project-page-heading {
        gap: 14px;
    }

    .office-project-overview-grid {
        grid-template-columns: minmax(250px, .8fr) minmax(0, 1.2fr);
    }
}

@media (max-width: 920px) {
    .office-workspace {
        padding: 22px 18px 38px;
    }

    .office-context-bar {
        margin-bottom: 18px;
    }

    .office-local-tabs {
        gap: 16px;
        scroll-snap-type: x proximity;
    }

    .office-local-tab {
        scroll-snap-align: start;
    }

    .office-table-toolbar {
        padding: 8px 10px;
    }

    .office-table-toolbar-primary,
    .office-table-toolbar-secondary,
    .office-table-toolbar-actions {
        min-height: 34px;
    }
}

@media (max-width: 760px) {
    .office-workspace {
        padding: 18px 12px 34px;
    }

    .office-page-heading,
    .office-project-page-heading {
        margin-bottom: 16px;
    }

    .office-local-tabs {
        margin-right: -12px;
        margin-left: -12px;
        padding: 0 12px;
    }

    .office-context-bar {
        min-height: 46px;
        margin-bottom: 14px;
    }

    .office-context-select,
    .office-context-label {
        font-size: 13px;
    }

    /* Normal Office tables remain semantic tables, but on phones/tablets they
       scroll horizontally instead of squeezing columns into unreadable widths. */
    .office-table-frame .office-table-viewport {
        overflow-x: auto;
        overflow-y: visible;
        -webkit-overflow-scrolling: touch;
        scrollbar-gutter: stable;
        overscroll-behavior-inline: contain;
    }

    .office-table-frame .office-table {
        min-width: 760px;
    }

    .office-table-frame.is-scrollable .office-table-viewport {
        overflow: auto;
    }

    .office-table-frame,
    .office-ava-grid-shell {
        border-radius: var(--office-radius-md);
    }

    .office-table-column-tool {
        width: 30px;
        min-width: 30px;
        height: 30px;
    }

    .office-table-toolbar {
        min-height: 0;
        align-items: stretch;
    }

    .office-table-toolbar-primary,
    .office-table-toolbar-secondary,
    .office-table-toolbar-actions {
        width: 100%;
    }

    .office-table-toolbar-secondary {
        justify-content: flex-start;
    }

    .office-table-toolbar input[type="search"],
    .office-table-toolbar .office-table-search,
    .office-table-toolbar select,
    .office-table-sort {
        min-height: 38px;
    }

    .office-table-toolbar input[type="search"],
    .office-table-toolbar .office-table-search {
        width: 100%;
        max-width: none;
    }

    .office-ava-grid-shell {
        margin-right: -12px;
        margin-left: -12px;
        border-right: 0;
        border-left: 0;
        border-radius: 0;
    }

    .office-ava-grid-viewport {
        max-height: min(64vh, 680px);
        -webkit-overflow-scrolling: touch;
    }

    .office-ava-grid-footer {
        padding-right: 12px;
        padding-left: 12px;
    }
}

@media (max-width: 560px) {
    .office-workspace {
        padding: 15px 10px 30px;
    }

    .office-heading,
    .office-page-heading,
    .office-project-page-heading {
        margin-bottom: 14px;
    }

    .office-heading h1,
    .office-page-heading h1,
    .office-project-page-heading h1 {
        font-size: 23px;
    }

    .office-context-bar {
        margin: 0 0 12px;
        gap: 5px;
    }

    .office-context-path {
        gap: 2px;
    }

    .office-context-back,
    .office-context-more {
        width: 34px;
        min-width: 34px;
        height: 34px;
    }

    .office-context-select {
        min-height: 32px;
        padding-inline: 6px;
        gap: 4px;
    }

    .office-context-actions {
        margin-left: 39px;
    }

    .office-local-tabs {
        min-height: 40px;
        margin-right: -10px;
        margin-left: -10px;
        padding: 0 10px;
        gap: 14px;
    }

    .office-local-tab {
        min-height: 39px;
        font-size: 11.5px;
    }

    .office-table-frame {
        margin-right: -10px;
        margin-left: -10px;
        border-right: 0;
        border-left: 0;
        border-radius: 0;
    }

    .office-table-frame .office-table {
        min-width: 720px;
    }

    .office-table-frame .office-table thead th,
    .office-table-frame .office-table tbody td,
    .office-table-frame .office-table tbody th,
    .office-table-frame .office-table tfoot th,
    .office-table-frame .office-table tfoot td {
        font-size: 12px;
    }

    .office-table-toolbar {
        padding: 8px 10px;
        border-radius: 0;
    }

    .office-table-toolbar-primary,
    .office-table-toolbar-secondary {
        display: flex;
        flex-wrap: wrap;
    }

    .office-table-toolbar-actions {
        display: grid;
        grid-template-columns: repeat(auto-fit, minmax(132px, 1fr));
    }

    .office-table-toolbar-actions > .office-button,
    .office-table-toolbar-actions > button:not(.office-icon-button) {
        width: 100%;
    }

    .office-segmented {
        max-width: 100%;
        overflow-x: auto;
        scrollbar-width: none;
    }

    .office-segmented::-webkit-scrollbar {
        display: none;
    }

    .office-column-filter-popover {
        width: min(260px, calc(100vw - 16px));
    }

    .office-row-primary-action {
        min-height: 34px;
    }

    .office-ava-grid-shell {
        margin-right: -10px;
        margin-left: -10px;
    }

    .office-ava-grid {
        min-width: 920px;
    }

    .office-detail-panel-header,
    .office-dialog-header {
        min-height: 60px;
        padding: 12px 12px 12px 14px;
    }

    .office-detail-panel-body,
    .office-dialog-body {
        padding: 14px;
    }

    .office-detail-panel-footer,
    .office-dialog-footer {
        padding: 10px 12px;
    }

    .office-dialog-footer .office-button,
    .office-detail-panel-footer .office-button {
        min-height: 38px;
    }
}

/* ========================================================================== */
/* UI correction package 1C – shell, sidebar and context navigation           */
/* ========================================================================== */

:root {
    --office-font-family: "Inter", "Segoe UI Variable", "Segoe UI", -apple-system, BlinkMacSystemFont, sans-serif;
    --office-topbar-height: 62px;
    --office-drawer-width: 322px;
}

.office-svg-icon {
    width: 18px;
    height: 18px;
    display: inline-block;
    flex: 0 0 auto;
    background: currentColor;
    -webkit-mask: var(--office-icon) center / contain no-repeat;
    mask: var(--office-icon) center / contain no-repeat;
}

/* Header: brand first, then sidebar and Home. */
.office-topbar {
    padding: 0 20px;
    grid-template-columns: minmax(0, auto) minmax(0, 1fr) minmax(0, auto);
    border-bottom-color: rgba(33, 33, 32, .085);
    background: rgba(255, 255, 255, .985);
}

.office-topbar-left {
    gap: 4px;
}

.office-topbar-brand {
    width: 42px;
    height: 42px;
    margin-right: 4px;
}

.office-topbar-brand img {
    width: 32px;
    height: 32px;
    opacity: .96;
}

.office-sidebar-toggle,
.office-home-button {
    width: 38px;
    min-width: 38px;
    height: 38px;
}

.office-sidebar-toggle .office-svg-icon,
.office-home-button .office-svg-icon {
    width: 20px;
    height: 20px;
}

.office-topbar-actions {
    gap: 2px;
}

.office-quick-action {
    min-height: 38px;
    padding: 0 10px;
    gap: 7px;
    color: rgba(33, 33, 32, .62);
    font-size: 12.5px;
}

.office-quick-action .office-svg-icon {
    width: 18px;
    height: 18px;
}

.office-quick-action:disabled {
    opacity: .42;
}

.office-profile-button {
    width: 38px;
    min-width: 38px;
    height: 38px;
    margin-left: 5px;
}

.office-user-avatar {
    width: 30px;
    height: 30px;
    border-radius: 8px;
    background: #f0f2f4;
    color: rgba(33, 33, 32, .74);
    font-size: 10px;
    font-weight: 700;
}

.office-user-avatar-large {
    width: 42px;
    height: 42px;
    border-radius: 10px;
    font-size: 12px;
}

.office-user-avatar-sidebar {
    width: 40px;
    height: 40px;
    border-radius: 10px;
    font-size: 11px;
}

/* User popup: one clear action row per destination. */
.office-profile-popover {
    top: calc(100% + 10px);
    width: 306px;
    padding: 8px;
    border-radius: 12px;
}

.office-profile-summary {
    min-height: 66px;
    padding: 9px 10px 11px;
}

.office-profile-summary strong {
    font-size: 14px;
}

.office-profile-summary span {
    font-size: 11.5px;
}

.office-profile-summary small {
    font-size: 11px;
}

.office-menu-row,
.office-popover-action.office-menu-row {
    min-height: 44px;
    padding: 0 11px;
    border-radius: 8px;
    display: grid;
    grid-template-columns: 21px minmax(0, 1fr);
    gap: 10px;
    align-items: center;
    color: var(--office-text);
    font-size: 13px;
    font-weight: 520;
    line-height: 1;
}

.office-menu-row .office-svg-icon {
    width: 18px;
    height: 18px;
    color: rgba(33, 33, 32, .66);
}

.office-menu-row:hover .office-svg-icon {
    color: var(--office-text);
}

.office-menu-row.is-danger,
.office-menu-row.is-danger .office-svg-icon {
    color: var(--office-danger);
}

.office-popover-divider {
    margin: 5px 3px;
}


.office-menu-divider {
    display: block;
    height: 1px;
    margin: 5px 4px;
    background: var(--office-border);
}


/* Drawer: stronger grouping and a proper account card in the footer. */
.office-drawer {
    padding: 17px 18px 14px;
}

.office-drawer-header {
    min-height: 64px;
    padding: 0 1px 15px;
    align-items: center;
}

.office-drawer-brand {
    gap: 12px;
}

.office-drawer-brand img {
    width: 38px;
    height: 38px;
    opacity: .98;
}

.office-drawer-brand strong {
    font-size: 17px;
    font-weight: 700;
    letter-spacing: -.015em;
}

.office-drawer-brand small {
    max-width: 195px;
    font-size: 11.5px;
    line-height: 1.25;
}

.office-drawer-close {
    width: 38px;
    min-width: 38px;
    height: 38px;
}

.office-drawer-close .office-svg-icon {
    width: 22px;
    height: 22px;
}

.office-drawer-nav {
    min-height: 0;
    padding: 15px 0 18px;
    overflow-y: auto;
    overscroll-behavior: contain;
    display: block;
    scrollbar-width: thin;
}

.office-nav-group {
    margin: 0 0 8px;
}

.office-nav-group + .office-nav-group {
    margin-top: 4px;
}

.office-nav-group-toggle {
    width: 100%;
    min-height: 34px;
    padding: 0 8px;
    border: 0;
    border-radius: 8px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    background: transparent;
    color: rgba(33, 33, 32, .58);
    font-size: 10.5px;
    font-weight: 750;
    letter-spacing: .055em;
    text-transform: uppercase;
    cursor: pointer;
    transition: background-color var(--office-motion-fast) var(--office-ease-out), color var(--office-motion-fast) var(--office-ease-out);
}

.office-nav-group-toggle:hover {
    background: var(--office-hover);
    color: rgba(33, 33, 32, .8);
}

.office-nav-group-chevron {
    width: 14px;
    height: 14px;
    transition: transform var(--office-motion-mid) var(--office-ease-out-quint);
}

.office-nav-group:not(.is-open) .office-nav-group-chevron {
    transform: rotate(-90deg);
}

.office-nav-group-body {
    display: grid;
    gap: 3px;
    max-height: 500px;
    overflow: hidden;
    opacity: 1;
    transition: max-height var(--office-motion-mid) var(--office-ease-in-out), opacity var(--office-motion-fast) linear, margin var(--office-motion-mid) var(--office-ease-in-out);
}

.office-nav-group:not(.is-open) .office-nav-group-body {
    max-height: 0;
    margin: 0;
    opacity: 0;
    pointer-events: none;
}

.office-nav-item {
    min-height: 44px;
    padding: 0 10px;
    border-radius: 10px;
    display: grid;
    grid-template-columns: 24px minmax(0, 1fr);
    gap: 10px;
    color: rgba(33, 33, 32, .72);
    font-size: 13.5px;
    font-weight: 530;
}

.office-nav-icon {
    width: 24px;
    height: 24px;
    display: grid;
    place-items: center;
    color: rgba(33, 33, 32, .62);
}

.office-nav-icon .office-svg-icon {
    width: 18px;
    height: 18px;
}

.office-nav-icon.is-placeholder {
    opacity: 0;
}

.office-nav-item:hover .office-nav-icon,
.office-nav-item.active .office-nav-icon {
    color: currentColor;
}

/* Active nav gets a quiet surface instead of a loud accent block. */
a.office-nav-item.active {
    background: #f0f4f8;
    color: #151617;
    font-weight: 680;
}

.office-nav-project-group {
    margin-top: 14px;
    padding-top: 13px;
    border-top: 1px solid var(--office-border);
}

.office-nav-project-name {
    margin: 1px 10px 7px 42px;
    color: var(--office-text);
    font-size: 12px;
    font-weight: 680;
}

.office-nav-item.is-project {
    min-height: 40px;
    padding-left: 10px;
    font-size: 12.5px;
}

.office-drawer-footer {
    padding: 13px 0 0;
    border-top: 1px solid var(--office-border);
}

.office-drawer-user-card {
    min-height: 66px;
    padding: 8px 9px;
    border: 1px solid var(--office-border);
    border-radius: 12px;
    background: var(--office-surface-soft);
    gap: 10px;
}

.office-drawer-user-card:hover {
    background: #f7f8f9;
}

.office-drawer-user-copy strong {
    font-size: 13px;
}

.office-drawer-user-copy small {
    font-size: 11px;
}

.office-drawer-logout-button {
    width: 36px;
    height: 36px;
    border-radius: 9px;
}

.office-drawer-logout-button .office-svg-icon {
    width: 18px;
    height: 18px;
}

.office-drawer-meta {
    padding: 9px 6px 0;
    color: rgba(33, 33, 32, .42);
    font-size: 10px;
}

/* Context navigation – Phase0-like proportions, but Office-specific styling. */
.office-context-bar {
    min-height: 58px;
    margin: -4px -4px 20px;
    padding: 4px 4px 10px;
    border-bottom: 1px solid rgba(33, 33, 32, .09);
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 14px;
}

.office-context-main {
    min-width: 0;
    display: flex;
    align-items: center;
    gap: 10px;
}

.office-context-path {
    gap: 4px;
}

.office-context-back,
.office-context-more {
    width: 40px;
    min-width: 40px;
    height: 40px;
    border-radius: 8px;
    color: rgba(33, 33, 32, .88);
}

.office-context-back-icon {
    width: 21px;
    height: 21px;
}

.office-context-more .office-svg-icon {
    width: 18px;
    height: 18px;
}

.office-context-select {
    min-height: 40px;
    padding: 0 9px 0 11px;
    border: 1px solid transparent;
    border-radius: 8px;
    gap: 8px;
    background: transparent;
    color: var(--office-text);
    font-size: 15px;
    font-weight: 500;
}

.office-context-select.is-secondary {
    font-weight: 660;
}

.office-context-select:hover,
.office-context-select[aria-expanded="true"] {
    border-color: rgba(33, 33, 32, .035);
    background: rgba(33, 33, 32, .045);
}

.office-context-value {
    line-height: 1.2;
}

.office-context-chevron {
    width: 14px;
    height: 14px;
    color: rgba(33, 33, 32, .64);
}

.office-context-select[aria-expanded="true"] .office-context-chevron {
    transform: rotate(180deg);
}

.office-context-separator {
    padding: 0 2px;
    color: rgba(33, 33, 32, .5);
    font-size: 16px;
}

.office-context-label {
    min-height: 40px;
    display: inline-flex;
    align-items: center;
    color: var(--office-text);
    font-size: 15px;
    font-weight: 620;
}

.office-context-popover {
    top: calc(100% + 8px);
    min-width: 285px;
    padding: 7px;
    border-radius: 12px;
}

.office-context-popover .office-popover-action {
    min-height: 46px;
    padding: 0 12px;
    border-radius: 8px;
    display: flex;
    flex-direction: row;
    align-items: center;
    gap: 9px;
    font-size: 13.5px;
    font-weight: 500;
}

.office-context-popover .office-popover-action.is-current {
    background: #eef4fa;
    color: var(--office-primary);
    font-weight: 680;
}

.office-context-more-popover {
    min-width: 235px;
}

.office-context-actions {
    margin-left: auto;
}

/* Project module navigation in the header stays calm and aligned. */
.office-project-tabs {
    gap: 2px;
}

.office-project-tab {
    min-height: 36px;
    padding: 0 10px;
    border-radius: 8px;
    font-size: 12.5px;
    font-weight: 520;
}

.office-project-tab.active {
    background: #eef4fa;
    color: var(--office-primary);
    font-weight: 680;
}

@media (max-width: 1120px) {
    .office-quick-action:not(.office-notification-link) > span:last-child {
        display: none;
    }

    .office-quick-action {
        width: 38px;
        min-width: 38px;
        padding: 0;
        justify-content: center;
    }
}

@media (max-width: 760px) {
    :root {
        --office-topbar-height: 58px;
    }

    .office-topbar {
        padding: 0 10px;
    }

    .office-topbar-brand {
        width: 38px;
        height: 38px;
        margin-right: 1px;
    }

    .office-topbar-brand img {
        width: 29px;
        height: 29px;
    }

    .office-project-navigation {
        overflow-x: auto;
        scrollbar-width: none;
    }

    .office-project-navigation::-webkit-scrollbar {
        display: none;
    }

    .office-drawer {
        width: min(322px, calc(100vw - 22px));
    }

    .office-context-bar {
        align-items: flex-start;
        flex-wrap: wrap;
    }

    .office-context-main {
        width: 100%;
        gap: 5px;
    }

    .office-context-path {
        min-width: 0;
        overflow-x: auto;
        scrollbar-width: none;
    }

    .office-context-path::-webkit-scrollbar {
        display: none;
    }

    .office-context-select {
        max-width: 230px;
    }

    .office-context-actions {
        width: 100%;
        margin-left: 45px;
    }
}

@media (max-width: 520px) {
    .office-context-back,
    .office-context-more {
        width: 36px;
        min-width: 36px;
        height: 36px;
    }

    .office-context-select,
    .office-context-label {
        min-height: 36px;
        font-size: 13.5px;
    }

    .office-context-popover {
        min-width: min(300px, calc(100vw - 24px));
    }
}

/* ========================================================================== */
/* UI correction packages 1A/1B – dashboard/card consistency                 */
/* ========================================================================== */

.office-dashboard-welcome .office-eyebrow {
    color: var(--office-primary);
    font-size: 11px;
    font-weight: 650;
    letter-spacing: 0;
    text-transform: none;
}

.office-dashboard-date-line {
    font-variant-numeric: tabular-nums;
}

.office-dashboard-top-grid-compact {
    grid-template-columns: minmax(0, 1.9fr) minmax(280px, .72fr);
    align-items: stretch;
}

.office-dashboard-top-grid-compact .office-quick-section,
.office-dashboard-top-grid-compact .office-time-panel {
    min-height: 0;
}

.office-dashboard-panel,
.office-quick-section {
    border-radius: 12px;
}

.office-panel-heading h2,
.office-collection-heading h2 {
    font-size: 17px;
    letter-spacing: -.015em;
}

.office-quick-grid {
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 8px;
}

.office-quick-tile {
    min-height: 58px;
    padding: 9px 11px;
    border: 1px solid var(--office-border);
    border-radius: 10px;
    display: grid;
    grid-template-columns: 28px minmax(0, 1fr) 18px;
    align-items: center;
    gap: 8px;
    background: var(--office-surface-soft);
    color: var(--office-text);
    text-decoration: none;
    transition: background-color var(--office-motion-fast) var(--office-ease-out), border-color var(--office-motion-fast) var(--office-ease-out), transform var(--office-motion-fast) var(--office-ease-out);
}

.office-quick-tile:hover {
    border-color: #d4d7da;
    background: #fff;
    transform: translateY(-1px);
}

.office-quick-icon {
    width: 28px;
    height: 28px;
    border-radius: 7px;
    display: grid;
    place-items: center;
    background: rgba(33, 33, 32, .045);
    color: rgba(33, 33, 32, .72);
}

.office-quick-icon .office-svg-icon {
    width: 16px;
    height: 16px;
}

.office-quick-tile strong {
    min-width: 0;
    font-size: 12.5px;
    font-weight: 620;
}

.office-quick-arrow {
    display: grid;
    place-items: center;
    color: rgba(33, 33, 32, .48);
}

.office-quick-arrow .office-svg-icon {
    width: 13px;
    height: 13px;
}

.office-time-panel .office-panel-heading {
    margin-bottom: 8px;
}

.office-time-state {
    min-height: 70px;
    padding: 12px 14px;
}

.office-time-live {
    font-size: 24px;
}

.office-time-actions {
    margin-top: 8px;
}

.office-section-collapse-button {
    width: 30px;
    min-width: 30px;
    height: 30px;
    padding: 0;
    border: 0;
    border-radius: 7px;
    display: inline-grid;
    place-items: center;
    background: transparent;
    color: rgba(33, 33, 32, .6);
    cursor: pointer;
    transition: background-color var(--office-motion-fast) var(--office-ease-out), transform var(--office-motion-mid) var(--office-ease-out-quint);
}

.office-section-collapse-button:hover {
    background: var(--office-hover);
}

.office-section-collapse-button .office-svg-icon {
    width: 13px;
    height: 13px;
    transition: transform var(--office-motion-mid) var(--office-ease-out-quint);
}

[data-office-collapsible-section].is-collapsed .office-section-collapse-button .office-svg-icon {
    transform: rotate(-90deg);
}

.office-collapsible-body {
    max-height: 2200px;
    opacity: 1;
    overflow: visible;
    transition: max-height var(--office-motion-mid) var(--office-ease-in-out), opacity var(--office-motion-fast) linear;
}

[data-office-collapsible-section].is-collapsed .office-collapsible-body {
    max-height: 0;
    overflow: hidden;
    opacity: 0;
    pointer-events: none;
}

.office-primary-collection {
    margin-top: 12px;
}

.office-collection-title-wrap {
    align-items: center;
    gap: 4px;
}

.office-section-collapse-button.is-leading {
    margin-left: -7px;
}

.office-collection-primary-actions,
.office-collection-heading {
    align-items: center;
}

.office-create-button,
.office-icon-text-button {
    gap: 7px;
}

.office-create-button .office-svg-icon,
.office-icon-text-button .office-svg-icon {
    width: 15px;
    height: 15px;
}

.office-collection-toolbar {
    justify-content: flex-end;
    gap: 8px;
}

.office-sort-menu-wrap {
    position: relative;
}

.office-sort-button,
.office-search-control {
    min-height: 40px;
    border-radius: 9px;
}

.office-sort-button {
    min-width: 170px;
    padding: 0 11px 0 13px;
    border: 1px solid var(--office-border);
    display: inline-flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    background: #fff;
    color: var(--office-text);
    cursor: pointer;
}

.office-sort-button:hover,
.office-sort-button[aria-expanded="true"] {
    border-color: #cfd2d5;
}

.office-sort-button .office-svg-icon {
    width: 13px;
    height: 13px;
    color: rgba(33, 33, 32, .54);
    transition: transform var(--office-motion-mid) var(--office-ease-out-quint);
}

.office-sort-button[aria-expanded="true"] .office-svg-icon {
    transform: rotate(180deg);
}

.office-sort-popover {
    top: calc(100% + 7px);
    right: 0;
    min-width: 210px;
    padding: 6px;
    border-radius: 11px;
}

.office-sort-option {
    width: 100%;
    min-height: 40px;
    padding: 0 11px;
    border: 0;
    border-radius: 7px;
    display: flex;
    align-items: center;
    background: transparent;
    color: var(--office-text);
    font-size: 13px;
    text-align: left;
    cursor: pointer;
}

.office-sort-option:hover {
    background: var(--office-hover);
}

.office-sort-option.is-current {
    background: #f1f3f5;
    font-weight: 660;
}

.office-search-control {
    position: relative;
    min-width: 265px;
}

.office-search-control input {
    min-height: 40px;
    padding-right: 38px;
    border-radius: 9px;
}

.office-search-icon {
    position: absolute;
    top: 50%;
    right: 12px;
    transform: translateY(-50%);
    display: grid;
    place-items: center;
    color: rgba(33, 33, 32, .64);
    pointer-events: none;
}

.office-search-icon .office-svg-icon {
    width: 16px;
    height: 16px;
}

.office-project-grid {
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 10px;
}

.office-project-card,
.office-offer-card {
    border-color: #e1e3e6;
    background: #f9fafb;
    box-shadow: none;
}

.office-project-card:hover,
.office-offer-card:hover {
    border-color: #cfd3d7;
    background: #fff;
    box-shadow: 0 4px 14px rgba(17, 24, 39, .045);
    transform: translateY(-1px);
}

.office-project-card[data-pinned="true"],
.office-offer-card[data-pinned="true"] {
    border-color: #e1e3e6;
    box-shadow: none;
}

.office-project-card-head {
    grid-template-columns: 56px minmax(0, 1fr) auto;
    align-items: start;
    gap: 10px;
}

.office-project-brand {
    width: 56px;
    min-width: 56px;
    height: 56px;
    border: 1px solid #dde0e3;
    border-radius: 11px;
    display: grid;
    place-items: center;
    background: #fff;
    color: rgba(33, 33, 32, .66);
    font-size: 11px;
    font-weight: 720;
}

.office-project-identity > span,
.office-offer-card-head span {
    color: var(--office-text-muted);
    font-size: 10.5px;
}

.office-project-identity h3,
.office-offer-card-head h3 {
    margin-top: 4px;
    font-size: 14px;
    line-height: 1.28;
}

.office-project-card-actions {
    display: flex;
    align-items: center;
    gap: 2px;
}

.office-pin-button,
.office-card-more-button {
    width: 32px;
    min-width: 32px;
    height: 32px;
    padding: 0;
    border: 0;
    border-radius: 7px;
    display: grid;
    place-items: center;
    background: transparent;
    color: rgba(33, 33, 32, .44);
    cursor: pointer;
}

.office-pin-button:hover,
.office-card-more-button:hover {
    background: var(--office-hover);
    color: rgba(33, 33, 32, .8);
}

.office-pin-button .office-pin-icon,
.office-card-more-button .office-svg-icon {
    width: 15px;
    height: 15px;
}

.office-pin-button .is-filled {
    display: none;
}

.office-pin-button[aria-pressed="true"] .is-outline {
    display: none;
}

.office-pin-button[aria-pressed="true"] .is-filled {
    display: inline-block;
}

.office-pin-button[aria-pressed="true"] {
    color: var(--office-primary);
}

.office-project-more-wrap {
    position: relative;
}

.office-card-more-popover {
    top: calc(100% + 6px);
    right: 0;
    min-width: 210px;
    padding: 6px;
    border-radius: 11px;
}

.office-project-metrics {
    margin-top: 13px;
    padding-top: 12px;
    border-top: 1px solid rgba(33, 33, 32, .065);
}

.office-project-card-foot {
    justify-content: flex-end;
    margin-top: 11px;
    padding-top: 10px;
}

.office-project-open-button,
.office-card-open-button {
    min-height: 34px;
    padding-inline: 12px;
    font-size: 11.5px;
}

.office-offer-card-head {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 8px;
}

.office-recent-panel {
    margin-top: 12px;
}

.office-recent-item {
    background: #f9fafb;
}

.office-recent-item:hover {
    background: #fff;
    box-shadow: 0 5px 17px rgba(17, 24, 39, .075);
    transform: translateY(-2px);
}

.office-archive-row {
    padding-top: 12px;
}

@media (max-width: 1200px) {
    .office-dashboard-top-grid-compact {
        grid-template-columns: 1fr;
    }

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

@media (max-width: 820px) {
    .office-quick-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .office-collection-toolbar {
        display: grid;
        grid-template-columns: 1fr;
    }

    .office-sort-button,
    .office-search-control {
        width: 100%;
        min-width: 0;
    }
}

@media (max-width: 560px) {
    .office-project-grid,
    .office-quick-grid {
        grid-template-columns: 1fr;
    }

    .office-project-card-head {
        grid-template-columns: 50px minmax(0, 1fr) auto;
    }

    .office-project-brand {
        width: 50px;
        min-width: 50px;
        height: 50px;
    }
}

/* ========================================================================== */
/* UI correction package 1D – final visual polish before next browser review  */
/* ========================================================================== */

/* Header actions are real navigation targets now and should never look disabled. */
.office-quick-action {
    text-decoration: none;
}

.office-quick-action:hover {
    background: var(--office-hover);
    color: var(--office-text);
}

.office-quick-action:active {
    background: var(--office-active);
    transform: translateY(1px);
}

/* Keep the central project navigation calm: text navigation with a precise underline. */
.office-project-tabs {
    height: var(--office-topbar-height);
    align-items: stretch;
    gap: 4px;
}

.office-project-tab {
    position: relative;
    min-height: var(--office-topbar-height);
    padding: 0 11px;
    border-radius: 0;
    display: inline-flex;
    align-items: center;
    background: transparent;
    color: rgba(33, 33, 32, .61);
    font-size: 13px;
    font-weight: 520;
    text-decoration: none;
    transition:
        color var(--office-motion-fast) var(--office-ease-out),
        background-color var(--office-motion-fast) var(--office-ease-out);
}

.office-project-tab::after {
    position: absolute;
    right: 10px;
    bottom: 0;
    left: 10px;
    height: 2px;
    border-radius: 2px 2px 0 0;
    background: transparent;
    content: "";
    transform: scaleX(.55);
    transition:
        background-color var(--office-motion-fast) var(--office-ease-out),
        transform var(--office-motion-mid) var(--office-ease-out-quint);
}

.office-project-tab:hover {
    background: rgba(33, 33, 32, .025);
    color: rgba(33, 33, 32, .88);
}

.office-project-tab.active {
    background: transparent;
    color: var(--office-text);
    font-weight: 650;
}

.office-project-tab.active::after {
    background: var(--office-primary);
    transform: scaleX(1);
}

/* Context navigation: slightly smaller and tighter, matching the Phase0 proportions. */
.office-context-bar {
    min-height: 54px;
    margin: -2px 0 22px;
    padding: 0 0 9px;
    border-bottom-color: rgba(33, 33, 32, .105);
}

.office-context-main {
    gap: 8px;
}

.office-context-path {
    gap: 2px;
}

.office-context-back,
.office-context-more {
    width: 36px;
    min-width: 36px;
    height: 36px;
    border-radius: 8px;
}

.office-context-back-icon {
    width: 18px;
    height: 18px;
}

.office-context-more .office-svg-icon {
    width: 17px;
    height: 17px;
}

.office-context-select,
.office-context-label {
    min-height: 36px;
    font-size: 14px;
}

.office-context-select {
    padding: 0 8px 0 10px;
    gap: 7px;
}

.office-context-select.is-secondary {
    font-weight: 620;
}

.office-context-chevron {
    width: 13px;
    height: 13px;
}

.office-context-separator {
    padding: 0 3px;
    color: rgba(33, 33, 32, .38);
    font-size: 14px;
}

.office-context-popover {
    top: calc(100% + 7px);
    min-width: 306px;
    padding: 8px;
    border: 1px solid rgba(33, 33, 32, .075);
    border-radius: 11px;
    box-shadow: var(--office-shadow-popover);
}

.office-context-popover .office-popover-action {
    min-height: 43px;
    padding: 0 11px;
    border-radius: 7px;
    font-size: 13px;
}

.office-context-more-popover {
    min-width: 246px;
}

/* All small popovers should share the same spacious rhythm. */
.office-sort-popover,
.office-card-more-popover {
    padding: 8px;
    border: 1px solid rgba(33, 33, 32, .075);
    border-radius: 11px;
    box-shadow: var(--office-shadow-popover);
}

.office-sort-option {
    min-height: 42px;
    padding: 0 11px;
    border-radius: 7px;
}

.office-card-more-popover {
    min-width: 226px;
}

.office-card-more-popover .office-menu-row {
    min-height: 42px;
}

/* Project cards: stronger visual identifier, consistent on Dashboard and /projects. */
.office-project-card,
.office-offer-card {
    overflow: visible;
    border-color: #dfe2e5;
    background: #f7f8fa;
}

.office-project-card:hover,
.office-offer-card:hover {
    border-color: #c9ced3;
    background: #ffffff;
    box-shadow:
        0 1px 2px rgba(17, 24, 39, .025),
        0 7px 18px rgba(17, 24, 39, .065);
    transform: translateY(-2px);
}

.office-project-card-head {
    grid-template-columns: 60px minmax(0, 1fr) auto;
    gap: 12px;
}

.office-project-brand {
    width: 60px;
    min-width: 60px;
    height: 60px;
    border-color: #d7dbe0;
    border-radius: 12px;
    background: #fff;
    color: rgba(33, 33, 32, .71);
    font-size: 11px;
    letter-spacing: .02em;
    box-shadow: 0 1px 2px rgba(17, 24, 39, .025);
}

.office-project-identity > span,
.office-offer-card-head span {
    font-size: 11px;
}

.office-project-identity h3,
.office-offer-card-head h3 {
    margin-top: 5px;
    font-size: 14.5px;
    line-height: 1.3;
    letter-spacing: -.012em;
}

.office-project-card-actions {
    gap: 1px;
}

.office-pin-button,
.office-card-more-button {
    width: 34px;
    min-width: 34px;
    height: 34px;
    border-radius: 8px;
}

.office-pin-button .office-pin-icon,
.office-card-more-button .office-svg-icon {
    width: 16px;
    height: 16px;
}

.office-project-metrics {
    margin-top: 14px;
    padding-top: 13px;
}

.office-project-card-foot {
    margin-top: 12px;
    padding-top: 11px;
}

.office-project-open-button,
.office-card-open-button {
    min-height: 36px;
    padding-inline: 14px;
    border-color: #d7dbe0;
    background: #fff;
    font-size: 12px;
    font-weight: 600;
}

.office-project-open-button:hover,
.office-card-open-button:hover {
    border-color: #bfc5cb;
    background: #fff;
}

.office-project-index-panel {
    margin-top: 4px;
}

.office-page-heading-compact {
    margin-bottom: 16px;
}

/* Offers use the same action grammar, but remain visually simpler than projects. */
.office-offer-card-head {
    align-items: start;
}

.office-offer-values {
    margin-top: 13px;
}

/* Recent items deliberately have a stronger hover: they are fast resume targets. */
.office-recent-item {
    position: relative;
    padding-right: 38px;
    cursor: pointer;
    text-decoration: none;
}

.office-recent-chevron {
    position: absolute;
    top: 50%;
    right: 13px;
    width: 22px;
    height: 22px;
    border-radius: 7px;
    display: grid;
    place-items: center;
    color: rgba(33, 33, 32, .38);
    transform: translateY(-50%);
    transition:
        color var(--office-motion-fast) var(--office-ease-out),
        background-color var(--office-motion-fast) var(--office-ease-out),
        transform var(--office-motion-mid) var(--office-ease-out-quint);
}

.office-recent-chevron .office-svg-icon {
    width: 12px;
    height: 12px;
}

.office-recent-item:hover .office-recent-chevron {
    background: rgba(33, 33, 32, .05);
    color: var(--office-text);
    transform: translate(2px, -50%);
}

/* Section headers and controls share one baseline on the Dashboard. */
.office-panel-heading,
.office-collection-heading {
    min-height: 34px;
}

.office-section-collapse-button.is-leading {
    margin-left: -4px;
}

.office-collection-toolbar {
    margin-top: 13px;
    margin-bottom: 15px;
}

.office-sort-button,
.office-search-control,
.office-search-control input {
    min-height: 38px;
}

.office-sort-button {
    min-width: 178px;
}

.office-search-control {
    min-width: 280px;
}

/* The projects index deliberately reuses the same card/toolbar grammar as Dashboard. */
.office-project-index-panel .office-collection-toolbar {
    margin-top: 0;
}

/* Module landing pages: no artificial sales/honorar/organisation kickers. */
.office-module-index .office-page-heading > div > h1:first-child {
    margin-top: 0;
}

@media (max-width: 1120px) {
    .office-project-tab {
        padding-inline: 8px;
        font-size: 12.5px;
    }
}

@media (max-width: 760px) {
    .office-project-tabs {
        height: var(--office-topbar-height);
    }

    .office-project-tab {
        min-height: var(--office-topbar-height);
        white-space: nowrap;
    }

    .office-context-bar {
        margin-bottom: 18px;
    }

    .office-project-card-head {
        grid-template-columns: 54px minmax(0, 1fr) auto;
    }

    .office-project-brand {
        width: 54px;
        min-width: 54px;
        height: 54px;
    }
}

@media (max-width: 560px) {
    .office-project-card-head {
        grid-template-columns: 50px minmax(0, 1fr) auto;
        gap: 9px;
    }

    .office-project-brand {
        width: 50px;
        min-width: 50px;
        height: 50px;
        border-radius: 10px;
    }

    .office-context-select {
        max-width: 205px;
    }
}

/* ========================================================================== */
/* Suite r002 / Office 0.4.3 – visual consolidation                           */
/* ========================================================================== */

:root {
    --office-font-family: "Inter", "Segoe UI Variable", "Segoe UI", -apple-system, BlinkMacSystemFont, sans-serif;
    --office-topbar-height: 68px;
    --office-primary-button: #262626;
    --office-primary-button-hover: #303030;
    --office-primary-button-active: #202020;
}

/* Same fix as Project: FocusOnNavigate may focus h1, but must not paint a blue box. */
:focus:not(:focus-visible) {
    outline: none;
}

h1[tabindex="-1"]:focus,
h1:focus {
    outline: none;
}

/* Reduced typography scale: 12 / 14 / 16 / 30 with only deliberate exceptions. */
body {
    font-size: 14px;
}

.office-page-heading h1,
.office-project-page-heading h1 {
    font-size: 30px;
    line-height: 1.15;
}

.office-panel-heading h2,
.office-collection-heading h2,
.office-dashboard-panel h2 {
    font-size: 16px;
    line-height: 1.3;
    font-weight: 600;
}

.office-eyebrow,
.office-panel-kicker,
.office-project-client,
.office-project-identity > span,
.office-offer-card-head span,
.office-project-metrics span,
.office-project-metrics small,
.office-table-cell-copy small {
    font-size: 12px;
}

.office-button,
.office-sort-button,
.office-search-control input,
.office-local-tab,
.office-project-tab,
.office-nav-item,
.office-popover-action,
.office-menu-row,
.office-row-primary-action {
    font-size: 14px;
}

/* Primary actions are intentionally dark gray, never pure black. */
.office-button.is-primary,
.office-column-filter-apply {
    border-color: var(--office-primary-button);
    background: var(--office-primary-button);
    color: #fff;
}

.office-button.is-primary:hover,
.office-column-filter-apply:hover {
    border-color: var(--office-primary-button-hover);
    background: var(--office-primary-button-hover);
}

.office-button.is-primary:active,
.office-column-filter-apply:active {
    border-color: var(--office-primary-button-active);
    background: var(--office-primary-button-active);
}

.office-create-button {
    padding-left: 13px;
    padding-right: 18px;
    gap: 10px;
}

.office-create-button .office-svg-icon {
    width: 17px;
    height: 17px;
    color: rgba(255, 255, 255, .78);
}

/* Header: logo toggles the drawer; Home retains a label only when there is room. */
.office-topbar {
    height: var(--office-topbar-height);
    padding: 0 20px;
}

.office-topbar-left {
    gap: 8px;
}

.office-topbar-brand,
.office-drawer-brand-toggle {
    position: relative;
    width: 42px;
    min-width: 42px;
    height: 42px;
    padding: 0;
    border: 0;
    border-radius: 9px;
    display: inline-grid;
    place-items: center;
    background: transparent;
    color: rgba(33, 33, 32, .68);
    cursor: pointer;
}

.office-topbar-brand {
    margin: 0;
}

.office-topbar-brand img,
.office-drawer-brand-toggle img {
    width: 30px;
    height: 30px;
    opacity: .96;
    transition: opacity 170ms var(--office-ease-out);
}

.office-brand-toggle-overlay {
    position: absolute;
    inset: 0;
    display: grid;
    place-items: center;
    color: rgba(33, 33, 32, .76);
    opacity: 0;
    pointer-events: none;
    transition: opacity 170ms var(--office-ease-out);
}

.office-brand-toggle-overlay .office-svg-icon {
    width: 20px;
    height: 20px;
}

.office-brand-toggle:hover img,
.office-brand-toggle:focus-visible img {
    opacity: .24;
}

.office-brand-toggle:hover .office-brand-toggle-overlay,
.office-brand-toggle:focus-visible .office-brand-toggle-overlay {
    opacity: 1;
}

.office-home-button {
    width: auto;
    min-width: 42px;
    height: 40px;
    padding: 0 10px;
    border-radius: 9px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    color: rgba(33, 33, 32, .72);
    text-decoration: none;
    transition: color var(--office-motion-fast) var(--office-ease-out), background-color var(--office-motion-fast) var(--office-ease-out);
}

.office-home-button:hover {
    background: var(--office-hover);
    color: var(--office-text);
}

.office-home-button .office-svg-icon {
    width: 20px;
    height: 20px;
}

.office-home-label {
    font-size: 14px;
    font-weight: 500;
    white-space: nowrap;
}

.office-topbar-actions {
    gap: 3px;
}

.office-quick-action {
    min-height: 40px;
    padding: 0 10px;
    border-radius: 9px;
    gap: 7px;
    font-size: 14px;
}

.office-quick-action .office-svg-icon {
    width: 18px;
    height: 18px;
}

.office-profile-button {
    width: 46px;
    min-width: 46px;
    height: 46px;
    margin-left: 5px;
    border-radius: 10px;
}

.office-profile-button .office-user-avatar {
    width: 38px;
    height: 38px;
    border-radius: 10px;
    font-size: 12px;
}

/* Project context needs the header space: compact icon-only utilities while a project is open. */
.office-topbar:has(.office-project-tabs) .office-home-label,
.office-topbar:has(.office-project-tabs) .office-quick-action-label {
    display: none;
}

.office-topbar:has(.office-project-tabs) .office-home-button,
.office-topbar:has(.office-project-tabs) .office-quick-action {
    width: 40px;
    min-width: 40px;
    padding: 0;
    justify-content: center;
}

@media (max-width: 1180px) {
    .office-home-label,
    .office-quick-action-label {
        display: none;
    }

    .office-home-button,
    .office-quick-action {
        width: 40px;
        min-width: 40px;
        padding: 0;
        justify-content: center;
    }
}

/* Main project navigation: active = quiet button surface. Blue underline is reserved for subnavigation. */
.office-project-tabs {
    height: var(--office-topbar-height);
    align-items: center;
    gap: 4px;
}

.office-project-tab {
    min-height: 40px;
    height: 40px;
    padding: 0 12px;
    border-radius: 9px;
    display: inline-flex;
    align-items: center;
    color: rgba(33, 33, 32, .65);
    font-size: 14px;
    font-weight: 500;
}

.office-project-tab::after {
    display: none;
}

.office-project-tab:hover {
    background: var(--office-hover);
    color: var(--office-text);
}

.office-project-tab.active {
    background: #f1f2f3;
    color: var(--office-text);
    font-weight: 600;
    box-shadow: 0 1px 4px rgba(17, 24, 39, .05);
}

/* Drawer header uses the exact same logo box coordinates as the top bar – no visual jump. */
.office-drawer {
    padding: 0 18px 14px;
}

.office-drawer-header {
    height: var(--office-topbar-height);
    min-height: var(--office-topbar-height);
    padding: 0 2px;
    align-items: center;
}

.office-drawer-brand {
    width: 100%;
    display: flex;
    align-items: center;
    gap: 12px;
}

.office-drawer-brand-copy {
    min-width: 0;
    min-height: 42px;
    display: flex;
    align-items: center;
}

.office-drawer-brand-copy strong {
    display: block;
    font-size: 16px;
    line-height: 1.2;
    font-weight: 600;
    letter-spacing: -.012em;
}

/* Sidebar placeholders remain intentional until the user supplies the semantic SVGs. */
.office-nav-icon.is-placeholder {
    opacity: 0;
}

/* Context bar: Phase0-like proportions and a framed, quiet More action. */
.office-context-bar {
    min-height: 62px;
    margin: -2px 0 24px;
    padding: 0 0 10px;
    border-bottom: 1px solid rgba(33, 33, 32, .12);
}

.office-context-main {
    gap: 10px;
}

.office-context-path {
    gap: 6px;
    align-items: center;
}

.office-context-back {
    width: 42px;
    min-width: 42px;
    height: 42px;
    border-radius: 9px;
    display: inline-grid;
    place-items: center;
}

.office-context-back-icon {
    width: 22px;
    height: 22px;
}

.office-context-select,
.office-context-label {
    min-height: 42px;
    font-size: 16px;
    line-height: 1.2;
}

.office-context-select {
    padding: 0 10px 0 12px;
    gap: 11px;
    font-weight: 500;
}

.office-context-select.is-secondary,
.office-context-select.is-secondary .office-context-value {
    font-weight: 600;
}

.office-context-chevron {
    width: 14px;
    height: 14px;
    margin-left: 1px;
    color: rgba(33, 33, 32, .58);
}

.office-context-separator {
    padding: 0 1px;
    font-size: 17px;
}

.office-context-more {
    width: 38px;
    min-width: 38px;
    height: 38px;
    margin-left: 2px;
    border: 1px solid #d2d5d8;
    border-radius: 8px;
    background: #fff;
    color: rgba(33, 33, 32, .58);
}

.office-context-more:hover,
.office-context-more[aria-expanded="true"] {
    border-color: #bfc4c9;
    background: #f7f8f9;
    color: rgba(33, 33, 32, .78);
}

.office-context-more .office-svg-icon {
    width: 14px;
    height: 14px;
}

.office-context-popover .office-popover-action,
.office-menu-row,
.office-popover-action.office-menu-row {
    font-weight: 400;
}

.office-context-popover .office-popover-action.is-current {
    font-weight: 600;
}

.office-menu-row-no-icon {
    grid-template-columns: minmax(0, 1fr);
}

/* Top dashboard row: time tracking is compact and matches the quick access panel height. */
.office-dashboard-top-grid-compact {
    grid-template-columns: minmax(0, 1fr) minmax(390px, .42fr);
    align-items: stretch;
}

.office-dashboard-top-grid-compact .office-quick-section,
.office-dashboard-top-grid-compact .office-time-panel {
    min-height: 0;
    height: 100%;
}

.office-time-panel .office-collapsible-body {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    align-items: end;
    gap: 12px;
}

.office-time-state {
    min-height: 66px;
    padding: 12px 14px;
}

.office-time-live {
    font-size: 24px;
}

.office-time-actions {
    margin: 0;
    align-self: end;
}

.office-time-actions .office-button {
    min-height: 42px;
}

/* Collection headings and search controls share a single alignment system. */
.office-collection-title-wrap {
    align-items: center;
}

.office-section-collapse-button.is-leading {
    margin-left: -2px;
    align-self: center;
}

.office-section-collapse-button.is-leading .office-svg-icon {
    width: 14px;
    height: 14px;
}

.office-collection-toolbar {
    width: min(100%, 760px);
    margin: 13px 0 15px auto;
    display: grid;
    grid-template-columns: max-content minmax(320px, 1fr);
    gap: 10px;
    align-items: center;
}

.office-collection-toolbar.is-search-only {
    grid-template-columns: minmax(0, 1fr);
}

.office-sort-button,
.office-search-control,
.office-search-control input {
    min-height: 40px;
    font-size: 14px;
}

.office-sort-button {
    min-width: 180px;
}

.office-search-control {
    width: 100%;
    min-width: 0;
    position: relative;
}

.office-search-control input {
    width: 100%;
    padding-right: 44px;
}

.office-search-control input::placeholder {
    font-size: 14px;
}

.office-search-icon {
    position: absolute;
    top: 50%;
    right: 13px;
    width: 20px;
    height: 20px;
    display: grid;
    place-items: center;
    color: rgba(33, 33, 32, .58);
    pointer-events: none;
    transform: translateY(-50%);
}

.office-search-icon .office-svg-icon {
    width: 18px;
    height: 18px;
}

/* Project cards: quieter hover, better proportions, two-line project name, no repeated open button. */
.office-project-card {
    cursor: pointer;
    overflow: visible;
}

.office-project-card:hover,
.office-offer-card:hover {
    border-color: #bfc5cb;
    background: #f4f6f8;
    box-shadow: none;
    transform: none;
}

.office-project-card:focus-visible {
    outline: 2px solid rgba(33, 33, 32, .32);
    outline-offset: 2px;
}

.office-project-card-head {
    padding: 16px 16px 14px;
    grid-template-columns: 64px minmax(0, 1fr);
    align-items: start;
    gap: 14px;
}

.office-project-brand {
    width: 64px;
    min-width: 64px;
    height: 64px;
    border-radius: 12px;
    font-size: 12px;
    background: #fff;
}

.office-project-identity {
    min-width: 0;
    display: grid;
    align-content: start;
}

.office-project-card-actions {
    min-height: 34px;
    margin: -2px 0 2px;
    display: flex;
    justify-content: flex-end;
    gap: 5px;
}

.office-project-client {
    display: block;
    margin-top: 1px;
    color: var(--office-text-muted);
    font-size: 12px;
    line-height: 1.25;
}

.office-project-identity h3 {
    margin: 5px 0 0;
    overflow: hidden;
    display: -webkit-box;
    min-height: 40px;
    color: var(--office-text);
    font-size: 16px;
    font-weight: 600;
    line-height: 1.25;
    letter-spacing: -.012em;
    white-space: normal;
    text-overflow: ellipsis;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 2;
}

.office-pin-button,
.office-card-more-button {
    width: 34px;
    min-width: 34px;
    height: 34px;
    border-radius: 8px;
}

.office-card-more-button {
    border: 1px solid #d2d5d8;
    background: #fff;
    color: rgba(33, 33, 32, .54);
}

.office-card-more-button:hover,
.office-card-more-button[aria-expanded="true"] {
    border-color: #bfc4c9;
    background: #f7f8f9;
    color: rgba(33, 33, 32, .76);
}

.office-card-more-button .office-svg-icon {
    width: 14px;
    height: 14px;
}

.office-project-metrics {
    margin-top: 0;
    padding: 15px 16px 16px;
    border-top: 1px solid rgba(33, 33, 32, .075);
}

.office-project-metrics strong {
    font-size: 16px;
    font-weight: 600;
}

.office-project-metrics span,
.office-project-metrics small {
    font-size: 12px;
}

.office-project-card-foot:has(.office-project-open-button),
.office-project-open-button {
    display: none;
}

/* Recent + requests save vertical space: 60 / 40 on desktop, stacked on smaller widths. */
.office-dashboard-secondary-grid {
    display: grid;
    grid-template-columns: minmax(0, 3fr) minmax(0, 2fr);
    gap: 14px;
    align-items: stretch;
}

.office-dashboard-secondary-grid > .office-dashboard-panel {
    margin-top: 0;
    min-width: 0;
    height: 100%;
}

.office-dashboard-secondary-grid .office-collection-toolbar {
    width: 100%;
}

.office-dashboard-secondary-grid .office-request-item {
    grid-template-columns: minmax(0, 1fr) auto auto;
}

/* Row-level More is the same framed control as the neighbouring Open action. */
.office-row-menu-trigger {
    width: 34px;
    min-width: 34px;
    height: 34px;
    border: 1px solid var(--office-border-strong);
    border-radius: var(--office-radius-sm);
    background: var(--office-surface);
    color: rgba(33, 33, 32, .58);
}

.office-row-menu-trigger .office-svg-icon {
    width: 14px;
    height: 14px;
}

.office-row-menu-trigger:hover,
.office-row-menu-trigger[aria-expanded="true"] {
    border-color: #aeb2b7;
    background: var(--office-hover);
    color: rgba(33, 33, 32, .78);
}

/* Smaller but more legible sort/filter tools. */
.office-table-column-tool {
    width: 23px;
    min-width: 23px;
    height: 23px;
    color: rgba(33, 33, 32, .72);
    opacity: .9;
}

.office-filter-glyph,
.office-sort-glyph {
    width: 12px;
    height: 12px;
}

.office-table-column-tool:hover,
.office-table-column-tool:focus-visible,
.office-table-column-tool.is-active,
.office-table-column-tool[aria-expanded="true"] {
    opacity: 1;
    color: rgba(33, 33, 32, .88);
}

/* Keep subnavigation as the only blue-underlined navigation level. */
.office-local-tabs {
    font-size: 14px;
}

.office-local-tab {
    font-weight: 500;
}

.office-local-tab.active {
    font-weight: 600;
}

@media (max-width: 1250px) {
    .office-dashboard-top-grid-compact {
        grid-template-columns: minmax(0, 1fr) minmax(350px, .5fr);
    }
}

@media (max-width: 980px) {
    .office-dashboard-top-grid-compact,
    .office-dashboard-secondary-grid {
        grid-template-columns: 1fr;
    }

    .office-time-panel .office-collapsible-body {
        grid-template-columns: minmax(0, 1fr) auto;
    }
}

@media (max-width: 760px) {
    .office-topbar {
        padding-inline: 12px;
    }

    .office-collection-toolbar {
        width: 100%;
        grid-template-columns: 1fr;
    }

    .office-sort-button,
    .office-search-control {
        width: 100%;
    }

    .office-context-select,
    .office-context-label {
        font-size: 15px;
    }
}

@media (max-width: 560px) {
    .office-project-card-head {
        grid-template-columns: 54px minmax(0, 1fr);
        gap: 11px;
    }

    .office-project-brand {
        width: 54px;
        min-width: 54px;
        height: 54px;
    }

    .office-time-panel .office-collapsible-body {
        grid-template-columns: 1fr;
    }
}

/* Typography cleanup for remaining secondary UI elements. */
.office-nav-group-toggle,
.office-profile-summary span,
.office-profile-summary small,
.office-drawer-user-copy small,
.office-drawer-meta,
.office-recent-type,
.office-recent-item small,
.office-request-item > div span,
.office-request-item small,
.office-request-status,
.office-offer-card-head span,
.office-offer-values span,
.office-status-badge {
    font-size: 12px;
}

.office-drawer-user-copy strong,
.office-profile-summary strong,
.office-recent-item strong,
.office-request-item strong {
    font-size: 14px;
}

.office-offer-values strong {
    font-size: 16px;
    font-weight: 600;
}

.office-dashboard-secondary-grid .office-request-item {
    grid-template-columns: minmax(0, 1fr) auto auto auto;
    gap: 10px;
}

[data-office-wave] > .office-brand-toggle-overlay {
    position: absolute;
    inset: 0;
    z-index: 2;
}

/* r002 final polish: compact context popovers and consistent input affordances. */
.office-context-popover {
    min-width: 260px;
    max-width: min(360px, calc(100vw - 24px));
    padding: 5px;
}

.office-context-popover .office-popover-action,
.office-project-switch-action {
    min-height: 38px;
    padding: 0 9px;
    align-items: flex-start;
    justify-content: center;
    text-align: left;
    font-size: 14px;
    line-height: 1.25;
}

.office-project-switch-action {
    width: 100%;
    display: flex;
    flex-direction: row;
    justify-content: flex-start;
}

.office-context-more-popover {
    min-width: 218px;
}

/* Every table/work-list search uses the same real SVG search icon. */
.office-table-search {
    padding-right: 44px;
    background-color: var(--office-surface);
    background-image: url('/icons/office/actions/search.svg');
    background-repeat: no-repeat;
    background-position: right 13px center;
    background-size: 18px 18px;
}

/* Native work-list selects use the same double-chevron SVG as the Dashboard sort control. */
.office-table-sort {
    -webkit-appearance: none;
    appearance: none;
    padding-right: 42px;
    background-color: var(--office-surface);
    background-image: url('/icons/office/navigation/chevron-down.svg');
    background-repeat: no-repeat;
    background-position: right 13px center;
    background-size: 16px 16px;
}

/* Added icon buttons use the same alignment as all other text+icon actions. */
.office-button.office-icon-text-button,
.office-button.office-create-button {
    display: inline-flex;
    align-items: center;
    justify-content: center;
}

.office-button.office-icon-text-button > .office-svg-icon,
.office-button.office-create-button > .office-svg-icon {
    flex: 0 0 auto;
}

.office-button.office-create-button > .office-svg-icon {
    width: 16px;
    height: 16px;
}

/* ========================================================================== */
/* Suite r003 / Office 0.4.4 – mobile consistency and navigation polish       */
/* ========================================================================== */

/* Primary dark actions use the same dark-grey token and keep readable text. */
.office-button.is-primary,
a.office-button.is-primary,
button.office-button.is-primary {
    background: #262626;
    border-color: #262626;
    color: #fff;
}

.office-button.is-primary:hover,
a.office-button.is-primary:hover,
button.office-button.is-primary:hover {
    background: #333;
    border-color: #333;
    color: #fff;
}

.office-button.is-primary:active,
a.office-button.is-primary:active,
button.office-button.is-primary:active {
    background: #202020;
    border-color: #202020;
}

.office-button.is-primary > span:not(.office-svg-icon),
.office-button.is-primary .office-svg-icon {
    color: #fff;
}

.office-button.is-primary .office-svg-icon {
    opacity: .78;
}

/* Every collapsible dashboard panel follows one header grammar: title left, toggle right. */
.office-collapsible-heading,
.office-collection-heading.office-collapsible-heading {
    width: 100%;
    min-height: 38px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
}

.office-collapsible-heading .office-section-collapse-button {
    margin-left: auto;
    flex: 0 0 auto;
}

.office-collection-title-wrap {
    min-width: 0;
    display: flex;
    align-items: center;
}

.office-collection-actions-row {
    width: 100%;
    margin: 6px 0 10px;
    display: flex;
    justify-content: flex-end;
    align-items: center;
}

/* Sort and search are a matched control pair. */
.office-sort-button,
.office-search-control input {
    min-height: 42px;
    border: 1px solid #d5d9de;
    border-radius: 10px;
    background-color: #fff;
    box-shadow: none;
    color: var(--office-text);
}

.office-sort-button:hover,
.office-search-control input:hover {
    border-color: #c5cbd1;
}

.office-sort-button:focus-visible,
.office-search-control input:focus-visible {
    border-color: #aeb6be;
    outline: 2px solid rgba(33, 33, 32, .09);
    outline-offset: 1px;
}

/* Project card header: identity starts immediately; actions stay top-right. */
.office-project-card-head {
    position: relative;
    padding-right: 98px;
    align-items: start;
}

.office-project-card-head > .office-project-card-actions {
    position: absolute;
    top: 14px;
    right: 14px;
    margin: 0;
}

.office-project-identity {
    padding-top: 2px;
}

.office-project-client {
    margin-top: 0;
}

.office-project-identity h3 {
    margin-top: 4px;
}

/* Old mobile pin-dot fallback must never appear when real SVG pin icons are present. */
.office-pin-button::after,
.office-pin-button[aria-pressed="true"]::after {
    content: none;
    display: none;
}

/* Context popovers are viewport-positioned, preventing mobile clipping. */
.office-context-popover[data-office-floating-popover] {
    position: fixed;
    top: 0;
    right: auto;
    left: 0;
    z-index: 980;
}

.office-context-main {
    gap: 6px;
}

.office-context-path {
    gap: 4px;
}

/* Product name must preserve its branded casing in settings as well. */
.office-settings-heading .office-eyebrow {
    letter-spacing: 0;
    text-transform: none;
}

/* Sidebar uses the dynamic viewport and keeps its footer above iOS browser chrome. */
.office-drawer {
    height: 100dvh;
    max-height: 100dvh;
    padding-bottom: max(14px, env(safe-area-inset-bottom));
    overflow: hidden;
}

.office-drawer-nav {
    flex: 1 1 auto;
    min-height: 0;
    overflow-y: auto;
    -webkit-overflow-scrolling: touch;
}

.office-drawer-footer {
    flex: 0 0 auto;
}

/* Mobile project entry navigation is only shown where the desktop main tabs are absent. */
.office-mobile-project-nav {
    display: none;
}

@media (max-width: 760px) {
    :root {
        --office-topbar-height: 64px;
    }

    .office-topbar {
        min-height: var(--office-topbar-height);
        padding-inline: 12px;
    }

    /* Slightly larger mobile header glyphs, still on one optical grid. */
    .office-topbar-brand,
    .office-home-button,
    .office-quick-action {
        width: 42px;
        min-width: 42px;
        height: 42px;
    }

    .office-topbar-brand img {
        width: 31px;
        height: 31px;
    }

    .office-home-button .office-svg-icon,
    .office-quick-action .office-svg-icon {
        width: 21px;
        height: 21px;
    }

    .office-profile-button {
        width: 48px;
        min-width: 48px;
        height: 48px;
        margin-left: 3px;
    }

    .office-profile-button .office-user-avatar {
        width: 40px;
        height: 40px;
        font-size: 12px;
    }

    /* Account popup is anchored to the right edge instead of stretching from the left. */
    .office-user-menu-wrap .office-profile-popover {
        position: fixed;
        top: calc(var(--office-topbar-height) + 8px);
        right: 10px;
        left: auto;
        width: min(320px, calc(100vw - 20px));
        max-width: calc(100vw - 20px);
        transform-origin: 100% 0;
    }

    .office-context-bar {
        margin-bottom: 18px;
    }

    .office-context-main {
        gap: 4px;
    }

    .office-context-path {
        gap: 3px;
        overflow: visible;
    }

    .office-context-back {
        width: 36px;
        min-width: 36px;
        height: 36px;
    }

    .office-context-back-icon {
        width: 21px;
        height: 21px;
    }

    .office-context-select,
    .office-context-label {
        min-height: 38px;
        font-size: 15px;
    }

    .office-context-select {
        padding-inline: 7px;
        gap: 7px;
    }

    .office-context-chevron {
        width: 13px;
        height: 13px;
    }

    .office-context-more {
        width: 32px;
        min-width: 32px;
        height: 32px;
        margin-left: 1px;
        border-radius: 7px;
    }

    .office-context-more .office-svg-icon {
        width: 11px;
        height: 11px;
    }

    .office-context-popover {
        min-width: min(250px, calc(100vw - 16px));
        max-width: calc(100vw - 16px);
    }

    /* On small screens every dashboard section keeps title left and collapse affordance right. */
    .office-panel-heading,
    .office-collection-heading,
    .office-collapsible-heading {
        flex-direction: row;
        align-items: center;
        justify-content: space-between;
        text-align: left;
    }

    .office-panel-heading > div,
    .office-collection-title-wrap {
        width: auto;
        min-width: 0;
        text-align: left;
    }

    .office-collection-heading h2,
    .office-panel-heading h2 {
        margin: 0;
        text-align: left;
    }

    .office-section-collapse-button,
    .office-section-collapse-button.is-leading {
        order: 2;
        margin: 0 0 0 auto;
        align-self: center;
    }

    .office-collection-actions-row {
        margin: 5px 0 12px;
        justify-content: flex-end;
    }

    .office-collection-actions-row .office-create-button {
        width: auto;
        max-width: 100%;
    }

    .office-collection-toolbar {
        width: 100%;
        margin: 8px 0 14px;
        grid-template-columns: 1fr;
        gap: 9px;
    }

    .office-sort-button,
    .office-search-control,
    .office-search-control input {
        width: 100%;
        min-height: 44px;
        font-size: 14px;
    }

    .office-sort-button,
    .office-search-control input {
        border-color: #d3d8dd;
        border-radius: 10px;
    }

    /* Time tracking keeps a readable action on mobile. */
    .office-time-panel .office-collapsible-body {
        grid-template-columns: 1fr;
        gap: 10px;
    }

    .office-time-state {
        min-height: 72px;
        padding: 12px 14px;
    }

    .office-time-live {
        font-size: 23px;
    }

    .office-time-actions {
        width: 100%;
        margin: 0;
    }

    .office-time-actions .office-create-button {
        width: fit-content;
        min-width: 150px;
        min-height: 42px;
        color: #fff;
    }

    .office-time-actions .office-create-button > span:not(.office-svg-icon) {
        color: #fff;
        opacity: 1;
    }

    /* Project cards keep client/title near the top while actions remain top-right. */
    .office-project-card-head {
        grid-template-columns: 54px minmax(0, 1fr);
        gap: 11px;
        min-height: 102px;
        padding: 14px 88px 14px 14px;
    }

    .office-project-brand {
        width: 54px;
        min-width: 54px;
        height: 54px;
    }

    .office-project-card-head > .office-project-card-actions {
        top: 13px;
        right: 13px;
    }

    .office-project-client {
        margin-top: 1px;
        font-size: 12px;
    }

    .office-project-identity h3 {
        min-height: 0;
        margin-top: 4px;
        font-size: 15px;
        line-height: 1.25;
    }

    .office-project-metrics {
        padding: 13px 14px 14px;
    }

    .office-project-metrics strong {
        font-size: 16px;
    }

    /* Project overview cannot remain a two-column desktop grid on an iPhone. */
    .office-project-overview-grid {
        grid-template-columns: minmax(0, 1fr);
    }

    .office-project-overview-grid > * {
        min-width: 0;
    }

    /* Mobile module entry menu on project overview. */
    .office-mobile-project-nav {
        margin: 0 0 14px;
        padding: 0 1px 6px;
        display: flex;
        gap: 7px;
        overflow-x: auto;
        scrollbar-width: none;
        -webkit-overflow-scrolling: touch;
    }

    .office-mobile-project-nav::-webkit-scrollbar {
        display: none;
    }

    .office-mobile-project-nav-link {
        min-height: 36px;
        padding: 0 11px;
        border: 1px solid var(--office-border);
        border-radius: 9px;
        display: inline-flex;
        align-items: center;
        flex: 0 0 auto;
        background: #fff;
        color: var(--office-text-secondary);
        font-size: 13px;
        font-weight: 500;
        text-decoration: none;
    }

    .office-mobile-project-nav-link.active {
        background: #f0f4f8;
        color: var(--office-text);
        font-weight: 600;
    }

    .office-drawer {
        width: min(var(--office-drawer-width), calc(100vw - 42px));
        height: 100dvh;
        max-height: 100dvh;
        padding-bottom: max(16px, env(safe-area-inset-bottom));
    }

    .office-drawer-footer {
        padding-bottom: max(2px, env(safe-area-inset-bottom));
    }
}

@media (max-width: 560px) {
    .office-dashboard-welcome h1 {
        font-size: 26px;
    }

    .office-dashboard-date-line {
        font-size: 13px;
    }

    .office-project-page-heading h1 {
        font-size: 27px;
    }
}

@media (max-width: 760px) {
    .office-pin-button,
    .office-card-more-button {
        width: 34px;
        min-width: 34px;
        height: 34px;
    }

    .office-pin-button .office-pin-icon {
        display: inline-block;
    }

    .office-pin-button .is-filled {
        display: none;
    }

    .office-pin-button[aria-pressed="true"] .is-outline {
        display: none;
    }

    .office-pin-button[aria-pressed="true"] .is-filled {
        display: inline-block;
    }
}

/* Context More remains deliberately compact even when generic context menus are wider. */
.office-context-more-popover,
.office-context-popover.office-context-more-popover {
    min-width: 188px;
    max-width: min(230px, calc(100vw - 16px));
    padding: 4px;
}

.office-context-more-popover .office-popover-action {
    min-height: 36px;
    padding-inline: 8px;
}

@media (max-width: 760px) {
    .office-context-more {
        width: 30px;
        min-width: 30px;
        height: 30px;
    }
}

/* ========================================================================== */
/* Suite r003 final polish – navigation, dashboard cards, tables and AVA       */
/* ========================================================================== */

/* Project context: tighter back affordance, compact chevrons/more, calmer popovers. */
.office-context-main {
    gap: 2px;
}

.office-context-path {
    gap: 3px;
}

.office-context-back {
    width: 34px;
    min-width: 34px;
    height: 34px;
    margin-right: 1px;
    border-radius: 8px;
}

.office-context-back-icon {
    width: 20px;
    height: 20px;
}

.office-context-select,
.office-context-label {
    min-height: 38px;
    font-size: 15px;
}

.office-context-select {
    gap: 9px;
    padding: 0 8px;
}

.office-context-chevron {
    width: 13px;
    height: 13px;
    margin-left: 2px;
}

.office-context-more {
    width: 30px;
    min-width: 30px;
    height: 30px;
    margin-left: 2px;
    border: 1px solid #d5d9de;
    border-radius: 7px;
    background: #fff;
}

.office-context-more .office-svg-icon {
    width: 10px;
    height: 10px;
    opacity: .72;
}

.office-context-popover {
    min-width: 220px;
    max-width: min(320px, calc(100vw - 20px));
    padding: 4px;
    border-radius: 9px;
}

.office-context-popover .office-popover-action,
.office-context-popover .office-project-switch-action,
.office-context-more-popover .office-popover-action {
    width: 100%;
    min-height: 36px;
    padding: 0 9px;
    display: flex;
    align-items: center;
    justify-content: flex-start;
    gap: 9px;
    text-align: left;
    font-size: 14px;
    font-weight: 400;
    line-height: 1.25;
}

.office-context-popover .office-popover-action.is-current,
.office-project-switch-action.is-current {
    font-weight: 400;
    background: #f2f4f6;
}

.office-context-more-popover,
.office-context-popover.office-context-more-popover {
    min-width: 176px;
    max-width: min(220px, calc(100vw - 20px));
    padding: 4px;
}

/* Dashboard quick/recent switch. */
.office-dashboard-panel-tabs {
    min-width: 0;
    display: inline-flex;
    align-items: center;
    gap: 3px;
    padding: 3px;
    border: 1px solid var(--office-border);
    border-radius: 10px;
    background: #f6f7f8;
}

.office-dashboard-panel-tab {
    min-height: 31px;
    padding: 0 10px;
    border: 0;
    border-radius: 7px;
    background: transparent;
    color: var(--office-text-secondary);
    font: inherit;
    font-size: 14px;
    font-weight: 500;
    cursor: pointer;
}

.office-dashboard-panel-tab:hover {
    background: rgba(33,33,32,.055);
    color: var(--office-text);
}

.office-dashboard-panel-tab.is-active {
    background: #fff;
    color: var(--office-text);
    box-shadow: 0 1px 2px rgba(17,24,39,.08);
}

.office-recent-grid.is-embedded {
    margin-top: 0;
}

/* Time card remains compact; the live clock is dark grey, not black. */
.office-time-live {
    color: #3b3f44;
    font-weight: 600;
}

/* Collection toolbars: search | sort | create, always in this order. */
.office-collection-toolbar.is-three-part {
    width: 100%;
    margin: 10px 0 15px;
    display: grid;
    grid-template-columns: minmax(260px, 1fr) 180px max-content;
    gap: 10px;
    align-items: center;
}

.office-collection-toolbar.is-three-part .office-search-control,
.office-collection-toolbar.is-three-part .office-sort-menu-wrap,
.office-collection-toolbar.is-three-part .office-create-button {
    min-width: 0;
    margin: 0;
}

.office-collection-toolbar.is-three-part .office-sort-button {
    width: 100%;
    min-width: 0;
}

.office-collection-toolbar.is-three-part .office-create-button {
    min-height: 42px;
    white-space: nowrap;
}

/* Project card variant B: identity first, actions on a stable footer row. */
.office-project-card-head,
.office-project-index-panel .office-project-card-head {
    position: static;
    min-height: 96px;
    padding: 15px 15px 12px;
    grid-template-columns: 62px minmax(0, 1fr);
    gap: 13px;
    align-items: start;
}

.office-project-card-head > .office-project-card-actions {
    position: static;
}

.office-project-brand {
    width: 62px;
    min-width: 62px;
    height: 62px;
}

.office-project-identity {
    padding-top: 0;
}

.office-project-client {
    margin: 1px 0 0;
    font-size: 12px;
    line-height: 1.25;
}

.office-project-identity h3 {
    min-height: 0;
    margin: 4px 0 0;
    font-size: 16px;
    line-height: 1.25;
}

.office-project-actions-row {
    min-height: 48px;
    padding: 8px 12px;
    border-top: 1px solid rgba(33,33,32,.075);
    display: grid;
    grid-template-columns: minmax(0, 1fr) 34px 34px;
    gap: 7px;
    align-items: center;
}

.office-project-open-action {
    min-height: 34px;
    justify-self: start;
    padding-inline: 12px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border: 1px solid #d3d7db;
    border-radius: 8px;
    background: #fff;
    color: var(--office-text);
    font-size: 13px;
    font-weight: 500;
    text-decoration: none;
}

.office-project-open-action:hover {
    border-color: #bfc5cb;
    background: #f7f8f9;
}

.office-pin-button,
.office-card-more-button {
    width: 34px;
    min-width: 34px;
    height: 34px;
    border: 1px solid #d3d7db;
    border-radius: 8px;
    display: inline-grid;
    place-items: center;
    background: #fff;
    color: #555b61;
}

.office-pin-button:hover,
.office-card-more-button:hover,
.office-card-more-button[aria-expanded="true"] {
    border-color: #bcc2c8;
    background: #f7f8f9;
}

.office-pin-button[aria-pressed="true"] {
    border-color: #b8c7d7;
    background: #f1f6fb;
    color: var(--office-primary);
}

.office-pin-button .office-svg-icon {
    width: 15px;
    height: 15px;
}

.office-card-more-button .office-svg-icon {
    width: 10px;
    height: 10px;
    opacity: .72;
}

.office-project-metrics strong {
    font-size: 17px;
}

/* Requests are full width; archive action belongs to the end of the page. */
.office-requests-full {
    width: 100%;
}

.office-dashboard-archive-footer {
    margin: 30px 0 max(28px, env(safe-area-inset-bottom));
    padding-top: 4px;
    display: flex;
    justify-content: flex-start;
}

/* Tables: one border/radius model for every semantic table and AVA grid. */
.office-table-frame,
.office-ava-grid-shell {
    border: 1px solid #dfe2e5;
    border-radius: 10px;
    background: #fff;
}

.office-table-frame {
    overflow: hidden;
}

.office-table-frame .office-table-toolbar,
.office-ava-grid-shell .office-table-toolbar {
    border-radius: 9px 9px 0 0;
}

.office-table-viewport,
.office-ava-grid-viewport {
    background: #fff;
}

.office-table tbody tr:last-child > td,
.office-table tbody tr:last-child > th {
    border-bottom: 0;
}

.office-table tfoot tr:last-child > td,
.office-table tfoot tr:last-child > th {
    border-bottom: 0;
}

.office-table-viewport {
    border-radius: 0 0 9px 9px;
}

/* Search fields in work tables use a real, explicitly positioned SVG icon. */
.office-table-search-control {
    position: relative;
    min-width: 0;
    display: inline-flex;
    align-items: center;
}

.office-table-search-control .office-table-search {
    width: min(330px, 38vw);
    padding-right: 40px;
    background-image: none;
}

.office-table-search-icon {
    position: absolute;
    top: 50%;
    right: 12px;
    width: 18px;
    height: 18px;
    display: grid;
    place-items: center;
    color: #5b6167;
    pointer-events: none;
    transform: translateY(-50%);
}

.office-table-search-icon .office-svg-icon {
    width: 16px;
    height: 16px;
}

/* Real chevron overlay for native cost-planning select. */
.office-table-sort-wrap {
    position: relative;
    display: inline-flex;
    align-items: center;
}

.office-table-sort-wrap .office-table-sort {
    min-width: 185px;
    padding-right: 40px;
    background-image: none;
    -webkit-appearance: none;
    appearance: none;
}

.office-table-sort-chevron {
    position: absolute;
    right: 12px;
    width: 15px;
    height: 15px;
    color: #555b61;
    pointer-events: none;
}

/* Column chooser is a proper compact popover. */
.office-columns-menu-wrap {
    position: relative;
}

.office-columns-button {
    gap: 8px;
}

.office-button-chevron {
    width: 13px;
    height: 13px;
    margin-left: 1px;
}

.office-columns-popover {
    min-width: 210px;
    padding: 5px;
}

.office-columns-popover label {
    min-height: 34px;
    padding: 0 8px;
    border-radius: 7px;
    display: flex;
    align-items: center;
    gap: 8px;
    color: var(--office-text);
    font-size: 13px;
    cursor: pointer;
}

.office-columns-popover label:hover {
    background: #f5f6f7;
}

/* Clickable procurement-unit rows behave like rows, not oversized cards. */
.office-table tr[data-office-open-href] {
    cursor: pointer;
}

.office-table tr[data-office-open-href]:hover > td {
    background: #f7f8f9;
}

.office-table tr[data-office-open-href]:focus-visible {
    outline: 2px solid rgba(15,108,189,.22);
    outline-offset: -2px;
}

/* AVA toolbar: title stays left, actions stay in a stable right-hand cluster. */
.office-ava-toolbar .office-table-toolbar-title {
    white-space: nowrap;
}

.office-ava-toolbar .office-table-toolbar-primary {
    min-width: 160px;
}

.office-ava-toolbar .office-table-toolbar-secondary {
    margin-left: auto;
}

.office-ava-toolbar .office-table-toolbar-actions {
    min-width: 0;
    justify-content: flex-end;
}

.office-ava-search-control .office-table-search {
    width: min(280px, 30vw);
}

.office-ava-toolbar .office-button .office-svg-icon {
    width: 15px;
    height: 15px;
}

/* Procurement KPIs should not look smaller than the table below. */
.office-procurement-summary strong {
    font-size: 18px;
    font-weight: 600;
}

/* Row action More buttons follow the same framed, compact grammar. */
.office-row-menu-trigger {
    width: 32px;
    min-width: 32px;
    height: 32px;
    border: 1px solid #d3d7db;
    border-radius: 8px;
    background: #fff;
}

.office-row-menu-trigger .office-svg-icon {
    width: 10px;
    height: 10px;
    opacity: .72;
}

.office-row-menu-trigger:hover,
.office-row-menu-trigger[aria-expanded="true"] {
    border-color: #bcc2c8;
    background: #f7f8f9;
}

@media (max-width: 1100px) {
    .office-ava-history-action > span:not(.office-svg-icon) {
        display: none;
    }

    .office-ava-history-action {
        width: 36px;
        min-width: 36px;
        padding-inline: 0;
    }
}

@media (max-width: 760px) {
    .office-context-main {
        gap: 1px;
    }

    .office-context-path {
        gap: 2px;
    }

    .office-context-back {
        width: 31px;
        min-width: 31px;
        height: 31px;
        margin-right: 0;
    }

    .office-context-back-icon {
        width: 19px;
        height: 19px;
    }

    .office-context-select {
        padding-inline: 5px;
        gap: 6px;
    }

    .office-context-more {
        width: 28px;
        min-width: 28px;
        height: 28px;
    }

    .office-context-more .office-svg-icon {
        width: 9px;
        height: 9px;
    }

    .office-collection-toolbar.is-three-part {
        grid-template-columns: minmax(0, 1fr) max-content;
        gap: 8px;
    }

    .office-collection-toolbar.is-three-part .office-search-control {
        grid-column: 1 / -1;
    }

    .office-collection-toolbar.is-three-part .office-sort-menu-wrap {
        grid-column: 1;
    }

    .office-collection-toolbar.is-three-part .office-create-button {
        grid-column: 2;
        align-self: stretch;
    }

    .office-project-card-head,
    .office-project-index-panel .office-project-card-head {
        min-height: 88px;
        padding: 13px 13px 10px;
        grid-template-columns: 54px minmax(0, 1fr);
        gap: 11px;
    }

    .office-project-brand {
        width: 54px;
        min-width: 54px;
        height: 54px;
    }

    .office-project-actions-row {
        padding: 8px 10px;
        grid-template-columns: minmax(0, 1fr) 32px 32px;
        gap: 6px;
    }

    .office-pin-button,
    .office-card-more-button,
    .office-row-menu-trigger {
        width: 32px;
        min-width: 32px;
        height: 32px;
    }

    .office-project-open-action {
        min-height: 32px;
    }

    .office-table-toolbar {
        gap: 8px;
    }

    .office-table-search-control,
    .office-table-search-control .office-table-search {
        width: 100%;
        max-width: none;
    }

    .office-ava-toolbar {
        align-items: stretch;
    }

    .office-ava-toolbar .office-table-toolbar-primary,
    .office-ava-toolbar .office-table-toolbar-secondary,
    .office-ava-toolbar .office-table-toolbar-actions {
        width: 100%;
    }

    .office-ava-toolbar .office-table-toolbar-actions {
        flex-wrap: wrap;
        justify-content: flex-start;
    }

    .office-ava-search-control,
    .office-ava-search-control .office-table-search {
        width: 100%;
        max-width: none;
    }

    .office-dashboard-panel-tabs {
        max-width: calc(100vw - 120px);
        overflow-x: auto;
        scrollbar-width: none;
    }

    .office-dashboard-panel-tabs::-webkit-scrollbar {
        display: none;
    }
}

/* Keep the separator above a table footer; only the true final row loses its bottom rule. */
.office-table:has(tfoot) tbody tr:last-child > td,
.office-table:has(tfoot) tbody tr:last-child > th {
    border-bottom: 1px solid var(--office-table-divider);
}

/* ========================================================================== */
/* Suite r004 / Office 0.4.5 – interaction polish + first productive features */
/* ========================================================================== */

:root {
    --office-primary-button: #303030;
    --office-primary-button-hover: #3b3b3b;
    --office-primary-button-active: #292929;
    --office-motion-fast: 140ms;
    --office-motion-mid: 200ms;
}

/* Phase0-like motion without lift/jump: surfaces only change color/border/shadow. */
.office-button,
.office-quick-action,
.office-home-button,
.office-project-tab,
.office-local-tab,
.office-project-card,
.office-offer-card,
.office-request-item,
.office-quick-tile,
.office-recent-item,
.office-context-select,
.office-context-more,
.office-card-more-button,
.office-pin-button,
.office-popover-action {
    transition-duration: var(--office-motion-fast);
    transition-timing-function: var(--office-ease-out);
}

.office-project-card:hover,
.office-offer-card:hover,
.office-request-item:hover,
.office-recent-item:hover {
    transform: none;
    box-shadow: none;
}

/* Dashboard top row is fixed: quick/recent tabs and time tracking never collapse. */
.office-quick-section .office-panel-heading,
.office-time-panel .office-panel-heading {
    align-items: center;
}

.office-quick-section .office-collapsible-body,
.office-time-panel .office-collapsible-body {
    display: block;
    max-height: none;
    opacity: 1;
    visibility: visible;
    overflow: visible;
}

.office-recent-grid.is-embedded {
    gap: 8px;
}

.office-recent-item {
    min-height: 68px;
    padding: 10px 42px 10px 14px;
    display: grid;
    grid-template-columns: 1fr;
    grid-template-rows: auto auto;
    align-content: center;
    gap: 3px;
}

.office-recent-item .office-recent-type {
    font-size: 12px;
    line-height: 1.2;
}

.office-recent-item strong {
    font-size: 14px;
    line-height: 1.25;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.office-time-panel .office-collapsible-body {
    padding-top: 2px;
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 12px;
    align-items: center;
}

.office-time-state {
    min-height: 64px;
    margin: 0;
    align-items: center;
}

.office-time-live {
    color: #555b61;
}

.office-time-actions {
    margin: 0;
    align-self: center;
}

.office-time-actions .office-button {
    min-width: 132px;
    min-height: 40px;
    justify-content: center;
}

/* Dashboard section headings share the same top/left inset. */
.office-collection-heading,
.office-time-panel .office-panel-heading,
.office-quick-section .office-panel-heading {
    padding-top: 14px;
    padding-left: 16px;
    padding-right: 16px;
}

/* Project identity is vertically balanced in the upper card region. */
.office-project-card-head,
.office-project-index-panel .office-project-card-head {
    align-items: center;
}

.office-project-identity {
    align-self: center;
    display: flex;
    min-height: 58px;
    flex-direction: column;
    justify-content: center;
}

.office-project-client {
    margin: 0;
}

.office-project-identity h3 {
    margin-top: 5px;
}

.office-project-actions-row,
.office-offer-actions-row {
    grid-template-columns: minmax(0, 1fr) 34px 34px;
}

.office-pin-button,
.office-card-more-button {
    border-color: #d2d6da;
    background: #fff;
}

.office-pin-button[aria-pressed="false"] {
    color: #666d73;
    border-color: #d2d6da;
    background: #fff;
}

.office-pin-button[aria-pressed="true"] {
    color: var(--office-primary);
    border-color: #b9c9d9;
    background: #f2f7fb;
}

.office-card-more-button .office-svg-icon,
.office-context-more .office-svg-icon,
.office-row-menu-trigger .office-svg-icon {
    width: 8px;
    height: 14px;
    opacity: .66;
}

/* Offers use the same card structure as projects. */
.office-offer-card-head {
    min-height: 88px;
    padding: 14px 14px 10px;
    display: flex;
    align-items: center;
}

.office-offer-card-head > div {
    min-width: 0;
}

.office-offer-card-head h3 {
    margin-top: 5px;
}

.office-offer-actions-row {
    border-top: 1px solid rgba(33,33,32,.075);
}

/* Request rows are real click targets and receive a compact More action. */
.office-request-item {
    grid-template-columns: minmax(0, 1fr) auto auto auto 34px;
    cursor: pointer;
}

.office-request-item .office-project-more-wrap {
    align-self: center;
}

/* Archive is a final secondary action, centered and visually attached to the last panel. */
.office-dashboard-archive-footer {
    margin: 14px 0 max(24px, env(safe-area-inset-bottom));
    padding-top: 0;
    justify-content: center;
}

/* Context header: compact rhythm, stronger project title, smaller More pill. */
.office-context-main {
    align-items: center;
}

.office-context-path {
    align-items: center;
    gap: 5px;
}

.office-context-back {
    margin-right: 2px;
}

.office-context-select {
    gap: 8px;
}

.office-context-value {
    font-weight: 600;
}

.office-context-chevron {
    width: 14px;
    height: 14px;
}

.office-context-more {
    width: 30px;
    min-width: 30px;
    height: 30px;
    border: 1px solid #d2d6da;
    background: #fff;
}

.office-context-popover {
    min-width: 300px;
    padding: 6px;
}

.office-context-more-popover {
    min-width: 220px;
    width: max-content;
    max-width: min(280px, calc(100vw - 20px));
}

.office-context-dropdown-summary {
    padding: 10px 10px 8px;
    display: grid;
    gap: 3px;
}

.office-context-dropdown-summary strong {
    font-size: 15px;
    font-weight: 650;
    color: var(--office-text);
}

.office-context-dropdown-summary span {
    font-size: 12px;
    color: var(--office-text-muted);
}

.office-context-dropdown-summary.is-compact {
    padding-bottom: 10px;
}

.office-context-menu-search {
    position: relative;
    display: block;
    margin: 5px 6px;
}

.office-context-menu-search input {
    width: 100%;
    height: 36px;
    padding: 0 36px 0 11px;
    border: 1px solid var(--office-border-strong);
    border-radius: 8px;
    background: var(--office-surface);
    color: var(--office-text);
    outline: none;
}

.office-context-menu-search input:focus {
    border-color: #aab1b8;
}

.office-context-menu-search > .office-svg-icon {
    position: absolute;
    top: 50%;
    right: 11px;
    width: 15px;
    height: 15px;
    color: var(--office-text-secondary);
    transform: translateY(-50%);
    pointer-events: none;
}

.office-context-menu-list {
    display: grid;
    gap: 2px;
}

.office-context-menu-list .office-popover-action {
    min-height: 38px;
    padding: 0 10px;
    justify-content: flex-start;
    text-align: left;
    font-weight: 450;
}

.office-context-menu-list .office-popover-action.is-current {
    font-weight: 550;
}

/* Mobile project navigation is persistent on every project page and sits immediately
   below the context header divider. Desktop keeps the topbar navigation. */
.office-mobile-project-nav {
    display: none;
}

/* AVA toolbars: title left; controls stay in a stable order and location. */
.office-ava-toolbar {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr);
    align-items: center;
    gap: 16px;
}

.office-ava-toolbar .office-table-toolbar-secondary {
    min-width: 0;
    margin: 0;
    justify-content: flex-end;
}

.office-ava-toolbar-controls {
    width: 100%;
    display: flex;
    align-items: center;
    justify-content: flex-end;
    gap: 8px;
}

.office-ava-toolbar-controls .office-ava-search-control {
    margin-left: 4px;
}

.office-ava-export {
    margin-left: 0;
}

.office-procurement-summary strong {
    font-size: 19px;
}

/* User management + profile forms. */
.office-admin-users-grid,
.office-profile-editor-grid {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
    gap: 16px;
}

.office-user-create-card,
.office-user-list-card,
.office-profile-editor-card {
    padding: 20px;
}

.office-settings-section-heading h2 {
    margin: 3px 0 4px;
    font-size: 18px;
}

.office-settings-section-heading p {
    margin: 0;
    color: var(--office-text-secondary);
}

.office-form-grid {
    margin-top: 18px;
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 14px;
}

.office-form-grid.is-single-column {
    grid-template-columns: 1fr;
}

.office-field {
    min-width: 0;
    display: grid;
    gap: 6px;
    color: var(--office-text-secondary);
    font-size: 12px;
    font-weight: 550;
}

.office-field.is-wide,
.office-check-field.is-wide {
    grid-column: 1 / -1;
}

.office-field input,
.office-field select {
    width: 100%;
    height: 40px;
    padding: 0 11px;
    border: 1px solid var(--office-border-strong);
    border-radius: 8px;
    background: var(--office-surface);
    color: var(--office-text);
    font-size: 14px;
    font-weight: 400;
}

.office-check-field {
    display: flex;
    align-items: center;
    gap: 8px;
    color: var(--office-text-secondary);
}

.office-form-actions {
    margin-top: 18px;
    display: flex;
    justify-content: flex-end;
}

.office-form-message {
    margin-top: 14px;
    padding: 10px 12px;
    border-radius: 8px;
    font-size: 13px;
}

.office-form-message.is-success {
    background: #eef8f1;
    color: #2d6a3d;
}

.office-form-message.is-error {
    background: #fff0f0;
    color: #a6282f;
}

.office-user-list {
    margin-top: 14px;
    display: grid;
}

.office-user-list-row {
    min-height: 62px;
    padding: 8px 2px;
    border-bottom: 1px solid var(--office-border);
    display: grid;
    grid-template-columns: 40px minmax(0, 1fr) auto auto;
    gap: 10px;
    align-items: center;
}

.office-user-list-row:last-child {
    border-bottom: 0;
}

.office-user-list-avatar {
    width: 38px;
    height: 38px;
    border-radius: 9px;
    display: grid;
    place-items: center;
    background: var(--office-surface-soft);
    color: var(--office-text-secondary);
    font-size: 11px;
    font-weight: 700;
}

.office-user-list-main {
    min-width: 0;
    display: grid;
    gap: 2px;
}

.office-user-list-main small {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    color: var(--office-text-muted);
}

.office-user-list-role {
    color: var(--office-text-secondary);
    font-size: 12px;
}

.office-theme-toggle {
    width: 100%;
    border: 0;
    background: transparent;
    text-align: left;
    cursor: pointer;
}

.office-popover-divider.is-soft {
    margin-block: 3px;
    opacity: .65;
}

/* Dark mode uses the same hierarchy and spacing, only surfaces/ink change. */
html[data-office-theme="dark"] {
    color-scheme: dark;
    --office-bg: #18191b;
    --office-surface: #222326;
    --office-surface-soft: #292a2d;
    --office-border: #35373a;
    --office-border-strong: #45484c;
    --office-text: #f2f2f1;
    --office-text-secondary: rgba(242,242,241,.68);
    --office-text-muted: rgba(242,242,241,.48);
    --office-hover: rgba(255,255,255,.055);
    --office-active: rgba(255,255,255,.09);
    --office-primary-button: #494b4e;
    --office-primary-button-hover: #585b5f;
    --office-primary-button-active: #404245;
}

html[data-office-theme="dark"] .office-topbar,
html[data-office-theme="dark"] .office-drawer,
html[data-office-theme="dark"] .office-popover,
html[data-office-theme="dark"] .office-dashboard-panel,
html[data-office-theme="dark"] .office-project-card,
html[data-office-theme="dark"] .office-offer-card,
html[data-office-theme="dark"] .office-table-frame,
html[data-office-theme="dark"] .office-ava-grid-shell,
html[data-office-theme="dark"] .office-context-more,
html[data-office-theme="dark"] .office-pin-button,
html[data-office-theme="dark"] .office-card-more-button,
html[data-office-theme="dark"] .office-row-menu-trigger {
    background-color: var(--office-surface);
    border-color: var(--office-border);
}

html[data-office-theme="dark"] .office-topbar {
    background: rgba(34,35,38,.96);
}

html[data-office-theme="dark"] .office-project-card:hover,
html[data-office-theme="dark"] .office-offer-card:hover,
html[data-office-theme="dark"] .office-request-item:hover,
html[data-office-theme="dark"] .office-quick-tile:hover,
html[data-office-theme="dark"] .office-recent-item:hover {
    background: #27282b;
}

html[data-office-theme="dark"] .office-user-avatar,
html[data-office-theme="dark"] .office-quick-icon,
html[data-office-theme="dark"] .office-project-brand,
html[data-office-theme="dark"] .office-time-state {
    background: var(--office-surface-soft);
}

@media (max-width: 900px) {
    .office-admin-users-grid,
    .office-profile-editor-grid {
        grid-template-columns: 1fr;
    }
}

@media (max-width: 760px) {
    .office-mobile-project-nav {
        width: calc(100% + 0px);
        margin: -1px 0 16px;
        padding: 10px 0 11px;
        border-bottom: 1px solid var(--office-border);
        display: flex;
        gap: 8px;
        overflow-x: auto;
        scrollbar-width: none;
        overscroll-behavior-inline: contain;
    }

    .office-mobile-project-nav::-webkit-scrollbar { display: none; }

    .office-mobile-project-nav-link {
        min-height: 36px;
        padding: 0 12px;
        border: 1px solid var(--office-border-strong);
        border-radius: 8px;
        display: inline-flex;
        flex: 0 0 auto;
        align-items: center;
        justify-content: center;
        background: var(--office-surface);
        color: var(--office-text-secondary);
        font-size: 13px;
        font-weight: 500;
        text-decoration: none;
    }

    .office-mobile-project-nav-link.active {
        background: #f0f4f8;
        color: var(--office-text);
        font-weight: 600;
    }

    html[data-office-theme="dark"] .office-mobile-project-nav-link.active {
        background: #323439;
    }

    .office-context-bar.is-contextual {
        min-height: 58px;
        padding-block: 8px;
        display: flex;
        align-items: center;
    }

    .office-context-main,
    .office-context-path {
        min-height: 42px;
        align-items: center;
    }

    .office-context-back {
        width: 36px;
        min-width: 36px;
        height: 36px;
    }

    .office-context-back-icon {
        width: 21px;
        height: 21px;
    }

    .office-context-select {
        min-height: 40px;
        padding-inline: 7px;
        font-size: 16px;
    }

    .office-context-chevron {
        width: 16px;
        height: 16px;
    }

    .office-context-more {
        width: 32px;
        min-width: 32px;
        height: 32px;
    }

    .office-context-more .office-svg-icon {
        width: 8px;
        height: 14px;
    }

    .office-time-panel .office-collapsible-body {
        grid-template-columns: 1fr;
        gap: 10px;
    }

    .office-time-actions .office-button {
        width: auto;
        min-width: 142px;
    }

    .office-request-item {
        grid-template-columns: minmax(0, 1fr) auto 34px;
        gap: 8px;
    }

    .office-request-item > small,
    .office-request-item > .office-request-status {
        display: none;
    }

    .office-request-item .office-card-open-button {
        min-width: 78px;
    }

    .office-ava-toolbar {
        grid-template-columns: 1fr;
        gap: 10px;
    }

    .office-ava-toolbar-controls {
        justify-content: flex-start;
        flex-wrap: wrap;
    }

    .office-ava-toolbar-controls .office-ava-search-control {
        order: 4;
        flex: 1 1 220px;
        margin-left: 0;
    }

    .office-ava-export { order: 5; }

    .office-form-grid {
        grid-template-columns: 1fr;
    }

    .office-field.is-wide,
    .office-check-field.is-wide {
        grid-column: auto;
    }

    .office-user-list-row {
        grid-template-columns: 40px minmax(0, 1fr) auto;
    }

    .office-user-list-role {
        display: none;
    }
}


/* ========================================================================== */
/* r005 – dashboard spacing, button tone and productive user administration   */
/* ========================================================================== */

:root {
    --office-primary-button: #545454;
    --office-primary-button-hover: #606060;
    --office-primary-button-active: #484848;
}

html[data-office-theme="dark"] {
    --office-primary-button: #545454;
    --office-primary-button-hover: #626262;
    --office-primary-button-active: #484848;
}

/* Dashboard: predictable inner alignment – same visual top/left inset. */
.office-quick-section,
.office-time-panel,
.office-collection-panel {
    padding: 18px 20px 20px;
}

.office-quick-section .office-panel-heading,
.office-time-panel .office-panel-heading,
.office-collection-panel .office-collection-heading {
    min-height: 30px;
    margin: 0;
    padding: 0;
    align-items: flex-start;
}

.office-collection-panel .office-collection-heading h2,
.office-time-panel .office-panel-heading h2 {
    margin: 0;
    line-height: 30px;
}

.office-collection-panel .office-section-collapse-button {
    margin: -2px 0 0 auto;
}

.office-quick-section .office-collapsible-body {
    padding-top: 12px;
}

.office-quick-section .office-quick-grid {
    margin-top: 0;
}

.office-dashboard-panel-tabs {
    align-self: flex-start;
}

/* Time card: same action height as create buttons, calmer clock and neutral idle state. */
.office-time-panel .office-collapsible-body {
    padding-top: 12px;
    grid-template-columns: minmax(0, 1fr) auto;
    align-items: center;
}

.office-time-state {
    min-height: 62px;
    padding: 10px 13px;
}

.office-time-state > div:first-child {
    gap: 3px;
}

.office-time-status {
    color: var(--office-text-secondary);
    font-size: 20px;
    font-weight: 500;
    line-height: 1;
}

.office-time-live {
    color: #545454;
    font-size: 19px;
    font-weight: 600;
}

.office-time-actions .office-create-button,
.office-collection-toolbar.is-three-part .office-create-button {
    min-width: 150px;
    height: 42px;
    min-height: 42px;
    padding-inline: 16px;
}

/* Recent items stay compact and two-line only. */
.office-recent-item {
    min-height: 62px;
    padding-block: 9px;
}

/* Project cards: identity sits visually centered within the head region. */
.office-project-card-head,
.office-project-index-panel .office-project-card-head {
    min-height: 98px;
    align-items: center;
}

.office-project-brand,
.office-project-identity {
    align-self: center;
}

.office-project-client {
    margin-top: 0;
}

/* Project page archive action is outside the project panel, centered and closer to content. */
.office-projects-page-archive-footer {
    margin: 16px 0 max(24px, env(safe-area-inset-bottom));
    padding: 0;
    justify-content: center;
}

/* User management – list first, creation on its own page. */
.office-user-management-card,
.office-user-create-page-card,
.office-profile-data-card,
.office-profile-account-card,
.office-profile-security-card {
    padding: 20px;
}

.office-user-management-heading,
.office-user-management-toolbar,
.office-password-section-heading,
.office-profile-overview-grid {
    display: flex;
    align-items: center;
}

.office-user-management-heading,
.office-password-section-heading {
    justify-content: space-between;
    gap: 18px;
}

.office-user-management-heading h2,
.office-password-section-heading h3,
.office-profile-account-main h2,
.office-profile-security-card h2 {
    margin: 3px 0 4px;
}

.office-user-management-heading p,
.office-password-section-heading p,
.office-profile-account-main p,
.office-profile-security-card p {
    margin: 0;
    color: var(--office-text-secondary);
}

.office-user-management-toolbar {
    margin: 18px 0 12px;
    justify-content: flex-end;
    gap: 10px;
}

.office-user-search-control {
    width: min(360px, 100%);
}

.office-user-count {
    min-width: 32px;
    height: 32px;
    padding-inline: 8px;
    border-radius: 999px;
    display: inline-grid;
    place-items: center;
    background: #eef7ec;
    color: #3b7a32;
    font-size: 13px;
    font-weight: 650;
}

.office-user-table-name {
    display: grid;
    gap: 2px;
}

.office-user-table-name small {
    color: var(--office-text-muted);
}

.office-table-actions-column {
    width: 1%;
    text-align: right;
    white-space: nowrap;
}

.office-form-grid-three {
    grid-template-columns: repeat(3, minmax(0, 1fr));
}

.office-field-span-two {
    grid-column: span 2;
}

.office-field small {
    color: var(--office-text-muted);
    font-weight: 400;
}

.office-create-user-active {
    align-self: end;
    min-height: 40px;
}

.office-password-section {
    margin-top: 22px;
    padding-top: 20px;
    border-top: 1px solid var(--office-border);
}

.office-password-section-actions {
    display: flex;
    gap: 8px;
    flex-wrap: wrap;
    justify-content: flex-end;
}

.office-password-input-wrap {
    position: relative;
}

.office-password-input-wrap input {
    padding-right: 96px;
}

.office-password-inline-button {
    position: absolute;
    top: 50%;
    right: 6px;
    height: 30px;
    padding: 0 9px;
    border: 0;
    border-radius: 6px;
    background: var(--office-surface-soft);
    color: var(--office-text-secondary);
    font: inherit;
    font-size: 12px;
    cursor: pointer;
    transform: translateY(-50%);
}

.office-form-actions-with-message {
    align-items: center;
    gap: 10px;
}

.office-form-actions-with-message .office-form-message {
    margin: 0 auto 0 0;
    max-width: min(640px, 100%);
}

/* Profile uses Project's information hierarchy, not Project's visual language. */
.office-profile-overview-grid {
    align-items: stretch;
    gap: 16px;
}

.office-profile-overview-grid > * {
    flex: 1 1 0;
}

.office-profile-account-card {
    display: grid;
    grid-template-columns: 58px minmax(0, 1fr);
    gap: 14px;
    align-items: start;
}

.office-profile-account-avatar {
    width: 58px;
    height: 58px;
    border-radius: 12px;
    display: grid;
    place-items: center;
    background: var(--office-surface-soft);
    color: var(--office-text-secondary);
    font-size: 16px;
    font-weight: 700;
}

.office-profile-account-badges {
    margin-top: 10px;
    display: flex;
    gap: 7px;
    flex-wrap: wrap;
}

.office-profile-security-card {
    display: flex;
    flex-direction: column;
}

.office-profile-password-grid {
    margin-top: 14px;
}

.office-profile-data-card {
    margin-top: 16px;
}

@media (max-width: 900px) {
    .office-profile-overview-grid {
        flex-direction: column;
    }

    .office-form-grid-three {
        grid-template-columns: 1fr 1fr;
    }

    .office-field-span-two {
        grid-column: 1 / -1;
    }
}

@media (max-width: 760px) {
    .office-quick-section,
    .office-time-panel,
    .office-collection-panel {
        padding: 16px;
    }

    .office-time-panel .office-collapsible-body {
        grid-template-columns: 1fr;
    }

    .office-time-actions .office-create-button {
        min-width: 150px;
        width: 150px;
    }

    .office-form-grid-three {
        grid-template-columns: 1fr;
    }

    .office-field-span-two {
        grid-column: auto;
    }

    .office-user-management-heading,
    .office-password-section-heading {
        align-items: stretch;
        flex-direction: column;
    }

    .office-user-management-heading .office-create-button {
        align-self: flex-start;
    }

    .office-user-management-toolbar {
        justify-content: stretch;
    }

    .office-user-search-control {
        width: 100%;
    }

    .office-form-actions-with-message {
        align-items: stretch;
        flex-wrap: wrap;
    }

    .office-form-actions-with-message .office-form-message {
        width: 100%;
        max-width: none;
        flex-basis: 100%;
    }
}

/* ========================================================================== */
/* Suite r006 / Office 0.4.7 – productive time tracking and final UI tokens   */
/* ========================================================================== */
:root {
    --office-primary-button: #545454;
    --office-primary-button-hover: #606060;
    --office-primary-button-active: #484848;
}

.office-button.is-primary,
a.office-button.is-primary,
button.office-button.is-primary,
.office-column-filter-apply {
    background: var(--office-primary-button);
    border-color: var(--office-primary-button);
}

.office-button.is-primary:hover,
a.office-button.is-primary:hover,
button.office-button.is-primary:hover,
.office-column-filter-apply:hover {
    background: var(--office-primary-button-hover);
    border-color: var(--office-primary-button-hover);
}

.office-button.is-primary:active,
a.office-button.is-primary:active,
button.office-button.is-primary:active {
    background: var(--office-primary-button-active);
    border-color: var(--office-primary-button-active);
}

.office-time-live {
    color: #545454;
    font-size: 21px;
    font-weight: 600;
}

.office-time-status {
    color: #a6a6a6;
    font-size: 18px;
    font-weight: 500;
    line-height: 1;
}

.office-time-actions .office-create-button,
.office-collection-toolbar .office-create-button {
    min-height: 42px;
    font-size: 14px;
    font-weight: 600;
}

/* Drawer leaves the transformed compositing layer after opening for crisper text/SVGs. */
.sidebar-open .office-drawer {
    transform: none;
    will-change: auto;
}

.office-drawer {
    --office-drawer-width: 294px;
}

.office-drawer-nav {
    padding-top: 12px;
}

.office-nav-group-toggle {
    min-height: 31px;
    font-size: 10px;
}

.office-nav-item,
.office-nav-item.is-project {
    min-height: 38px;
    grid-template-columns: 21px minmax(0, 1fr);
    gap: 9px;
    font-size: 12.5px;
}

.office-nav-icon {
    width: 21px;
    height: 21px;
}

.office-nav-icon .office-svg-icon {
    width: 17px;
    height: 17px;
}

/* Productive time tracking. */
.office-time-main-tabs {
    margin-bottom: 18px;
}

button.office-local-tab {
    border: 0;
    background: transparent;
    cursor: pointer;
}

button.office-local-tab.active {
    color: var(--office-primary);
    border-bottom-color: var(--office-primary);
    font-weight: 600;
}

.office-time-summary-grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 14px;
    margin-bottom: 16px;
}

.office-time-summary-card {
    padding: 18px;
    display: grid;
    gap: 5px;
}

.office-time-summary-card > span,
.office-time-summary-card > small {
    color: var(--office-text-muted);
    font-size: 12px;
}

.office-time-summary-card > strong {
    font-size: 22px;
    color: #545454;
    font-weight: 650;
}

.office-time-recent-panel,
.office-time-list-panel,
.office-time-settings-card {
    padding: 18px;
}

.office-time-list-toolbar,
.office-time-settings-create {
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    gap: 14px;
    margin-bottom: 14px;
}

.office-time-settings-create .office-field {
    flex: 1 1 360px;
    max-width: 620px;
}

.office-inline-empty {
    padding: 24px;
    color: var(--office-text-muted);
    text-align: center;
}

.office-time-entry-dialog {
    width: min(1100px, calc(100vw - 48px));
}

.office-time-trip-dialog {
    width: min(880px, calc(100vw - 48px));
}

.office-time-entry-body {
    display: grid;
    gap: 18px;
}

.office-time-travel-details {
    border: 1px solid var(--office-border);
    border-radius: 10px;
    background: var(--office-surface-soft);
}

.office-time-travel-details summary {
    min-height: 42px;
    padding: 0 14px;
    display: flex;
    align-items: center;
    gap: 7px;
    cursor: pointer;
    font-weight: 600;
}

.office-time-travel-details summary span {
    color: var(--office-text-muted);
    font-size: 12px;
    font-weight: 400;
}

.office-time-travel-details[open] summary {
    border-bottom: 1px solid var(--office-border);
}

.office-time-travel-details > .office-form-grid {
    padding: 14px;
}

.office-field-span-three {
    grid-column: 1 / -1;
}

.office-create-user-checks {
    display: flex;
    align-items: center;
    gap: 22px;
    min-height: 40px;
}

.office-user-role-cell {
    display: flex;
    align-items: center;
    gap: 8px;
    flex-wrap: wrap;
}

@media (max-width: 980px) {
    .office-time-summary-grid {
        grid-template-columns: 1fr 1fr;
    }
}

@media (max-width: 760px) {
    .office-time-summary-grid {
        grid-template-columns: 1fr;
    }

    .office-time-list-toolbar,
    .office-time-settings-create {
        align-items: stretch;
        flex-direction: column;
    }

    .office-time-entry-dialog,
    .office-time-trip-dialog {
        width: calc(100vw - 20px);
    }

    .office-create-user-checks {
        align-items: flex-start;
        flex-direction: column;
        gap: 8px;
    }
}

/* Keep Schnellzugriffe and Zuletzt verwendet height-stable. */
.office-quick-tile,
.office-recent-item {
    min-height: 58px;
}

.office-recent-item strong {
    font-size: 13px;
    line-height: 1.2;
}

.office-recent-type {
    font-size: 11.5px;
    line-height: 1.15;
}

.office-profile-signature-block {
    margin-top: 18px;
    padding-top: 18px;
    border-top: 1px solid var(--office-border);
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 18px;
}

.office-profile-signature-block h3,
.office-profile-signature-block p {
    margin: 3px 0 0;
}

.office-profile-signature-block p {
    color: var(--office-text-muted);
    font-size: 12px;
}

.office-profile-signature-controls {
    display: flex;
    align-items: center;
    gap: 14px;
}

.office-profile-signature-preview {
    max-width: 160px;
    max-height: 64px;
    object-fit: contain;
}

.office-project-travel-card {
    padding: 18px;
}

.office-time-page-actions,
.office-report-actions {
    display: flex;
    align-items: center;
    gap: 8px;
}

.office-activity-report-document {
    padding: 28px;
    border: 1px solid var(--office-border);
    border-radius: 12px;
    background: #fff;
}

.office-activity-report-header,
.office-activity-report-footer {
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    gap: 20px;
}

.office-activity-report-header {
    margin-bottom: 20px;
}

.office-activity-report-header h2,
.office-activity-report-header p {
    margin: 3px 0 0;
}

.office-activity-report-period,
.office-activity-report-footer > div {
    display: grid;
    gap: 3px;
}

.office-activity-report-period span,
.office-activity-report-footer span {
    color: var(--office-text-muted);
    font-size: 12px;
}

.office-activity-report-footer {
    margin-top: 28px;
    padding-top: 18px;
    border-top: 1px solid var(--office-border);
}

.office-activity-report-footer img {
    max-width: 180px;
    max-height: 72px;
    object-fit: contain;
}

@media print {
    .office-topbar,
    .office-drawer,
    .office-print-hide,
    .office-context-bar {
        display: none;
    }

    body,
    .office-main,
    .office-page {
        background: #fff;
        margin: 0;
        padding: 0;
    }

    .office-activity-report-document {
        border: 0;
        border-radius: 0;
        padding: 0;
    }
}

/* r007 profile refinements */
.office-password-toolbar {
    margin-top: 14px;
    display: flex;
    justify-content: flex-end;
    gap: 8px;
    flex-wrap: wrap;
}

.office-profile-address-heading {
    margin-top: 4px;
    padding-top: 6px;
}

@media (max-width: 760px) {
    .office-password-toolbar {
        justify-content: stretch;
    }

    .office-password-toolbar .office-button {
        flex: 1 1 auto;
    }
}

/* r007 productive master data / time tracking refinements */
.office-time-overview-actions{display:flex;justify-content:flex-end;gap:10px;margin:0 0 14px}
.office-time-list-actions{display:flex;align-items:center;gap:10px;margin-left:auto}
.office-client-picker-row{display:grid;grid-template-columns:minmax(240px,1fr) minmax(280px,1.2fr) auto;gap:10px;align-items:center}
.office-client-picker-row select,.office-client-picker-row .office-search-control{min-width:0}
.office-company-quick-dialog{max-width:820px}
.office-project-address-heading{padding-top:6px;border-top:1px solid var(--office-border);margin-top:6px}
.office-readonly-field{min-height:40px;display:flex;align-items:center;padding:0 12px;border:1px solid var(--office-border);border-radius:var(--office-radius-md);background:var(--office-surface-soft);color:var(--office-text-secondary)}
.office-profile-vehicles-block{margin-top:24px;padding-top:22px;border-top:1px solid var(--office-border)}
.office-profile-vehicle-list{display:grid;gap:10px}
.office-profile-vehicle-row{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:10px 12px;border:1px solid var(--office-border);border-radius:var(--office-radius-md);background:var(--office-surface-soft)}
.office-profile-vehicle-row>div{display:grid;gap:2px}.office-profile-vehicle-row small{color:var(--office-text-muted)}
.office-profile-vehicle-new{display:grid;grid-template-columns:1.2fr .8fr auto;gap:10px;align-items:end}
.office-project-summary-head{display:flex;align-items:flex-start;justify-content:space-between;gap:20px}
.office-project-logo{width:96px;height:58px;object-fit:contain;object-position:right center}
.office-company-logo-block{margin-top:24px;padding-top:22px;border-top:1px solid var(--office-border)}
.office-document-sheet{background:#fff;color:#212120;border:1px solid #dedede;border-radius:10px;padding:36px;max-width:1100px;margin:0 auto}
.office-document-brand-header{display:flex;align-items:flex-start;justify-content:space-between;gap:30px;margin-bottom:28px}.office-document-brand-header h2{font-size:24px;margin:0 0 4px}.office-document-brand-header p{margin:0;color:#555}.office-document-brand-header img{max-width:170px;max-height:72px;object-fit:contain}
.office-document-meta-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px 28px;margin:0 0 24px}.office-document-meta-grid div{display:grid;grid-template-columns:130px 1fr;gap:10px}.office-document-meta-grid dt{font-weight:600}.office-document-meta-grid dd{margin:0}
.office-document-signature-row{display:grid;grid-template-columns:1fr 1fr;gap:80px;margin-top:56px}.office-document-signature-row>div{border-top:1px solid #444;padding-top:6px;color:#555;font-size:12px}
.office-document-signature{min-width:280px;border-top:1px solid #444;padding-top:6px;display:grid;gap:6px}.office-document-signature img{max-width:220px;max-height:70px;object-fit:contain;margin-top:-70px}.office-document-signature span{font-size:12px;color:#555}
.office-document-company-footer{margin-top:48px;padding-top:12px;border-top:1px solid #eee;font-size:11px;color:#666}
.office-travel-approval-line{margin-top:18px;padding:12px;border:1px solid #dedede;background:#fafafa;font-size:13px}
.office-form-hint{margin:12px 0 0;color:var(--office-text-muted);font-size:13px}

@media (max-width: 820px){
 .office-client-picker-row{grid-template-columns:1fr}.office-profile-vehicle-new{grid-template-columns:1fr}.office-time-overview-actions,.office-time-list-actions{width:100%;justify-content:flex-start;flex-wrap:wrap}.office-document-sheet{padding:22px 18px}.office-document-meta-grid{grid-template-columns:1fr}.office-document-signature-row{grid-template-columns:1fr;gap:54px}}

@media print{
 .office-document-sheet{border:0;border-radius:0;box-shadow:none;max-width:none;padding:0}.office-document-brand-header img{max-width:150px}.office-document-company-footer{position:fixed;bottom:0;left:0;right:0}}

/* r007 time-entry picker refinements */
.office-time-type-field {
    grid-column: 1 / -1;
}

.office-time-type-picker {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 8px;
}

.office-time-type-option {
    min-height: 40px;
    padding: 0 14px;
    border: 1px solid var(--office-border);
    border-radius: 10px;
    background: var(--office-surface);
    color: var(--office-text);
    font: inherit;
    font-weight: 550;
    cursor: pointer;
    transition: background-color 150ms ease, border-color 150ms ease, color 150ms ease;
}

.office-time-type-option:hover {
    background: var(--office-surface-soft);
    border-color: var(--office-border-strong);
}

.office-time-type-option.is-active {
    background: rgba(15, 108, 189, .08);
    border-color: color-mix(in srgb, var(--office-primary) 36%, var(--office-border));
    color: var(--office-primary);
    font-weight: 650;
}

.office-duration-picker {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 8px;
}

.office-duration-picker label {
    min-width: 0;
}

.office-time-list-toolbar-actions-only {
    justify-content: flex-end;
}

.office-report-selection-toolbar {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    margin-top: 12px;
    flex-wrap: wrap;
}

.office-report-selection-actions {
    display: flex;
    align-items: center;
    gap: 8px;
    flex-wrap: wrap;
}

.office-report-selection-summary {
    color: var(--office-text-muted);
    font-size: 13px;
}

.office-report-check-column {
    width: 42px;
    text-align: center;
}

@media (max-width: 760px) {
    .office-time-type-picker {
        grid-template-columns: 1fr 1fr;
    }
}

/* r007 final project search / sidebar footer / project contacts export */
.office-drawer-meta{display:flex;align-items:baseline;gap:5px;flex-wrap:wrap}
.office-drawer-meta strong{color:var(--office-text);font-weight:700}
.office-drawer-meta span{color:var(--office-text-muted);font-weight:400}
.office-project-contacts-panel{padding:22px}
.office-project-contacts-toolbar{display:flex;align-items:flex-start;justify-content:space-between;gap:18px;margin-bottom:18px}
.office-project-contacts-toolbar h2{margin:3px 0 3px;font-size:18px}
.office-project-contacts-toolbar p{margin:0;color:var(--office-text-muted)}
.office-project-contacts-panel .office-table td strong,.office-project-contacts-panel .office-table td small{display:block}
.office-project-contacts-panel .office-table td small{margin-top:3px;color:var(--office-text-muted)}
.office-project-contact-print-table{width:100%;border-collapse:collapse;font-size:12px}
.office-project-contact-print-table th,.office-project-contact-print-table td{padding:8px 7px;border:1px solid #d9d9d9;text-align:left;vertical-align:top}
.office-project-contact-print-table th{background:#f3f4f5;font-weight:700}
.office-project-contact-print-table small{color:#666}
@media(max-width:760px){.office-project-contacts-toolbar{align-items:stretch;flex-direction:column}.office-project-contacts-toolbar .office-button{align-self:flex-start}}
@media print{.office-project-contact-document{font-size:11px}.office-project-contact-print-table{font-size:10px}.office-project-contact-print-table th,.office-project-contact-print-table td{padding:5px 4px}}

/* ========================================================================== */
/* Suite r008 / Office 0.4.9 – productive project/contact/report refinements  */
/* ========================================================================== */

/* One primary action grammar everywhere – dashboard, time, projects, invoices. */
.office-button.office-create-button,
a.office-button.office-create-button,
button.office-button.office-create-button,
.office-time-actions .office-create-button,
.office-time-overview-actions .office-create-button,
.office-collection-toolbar .office-create-button {
    min-height: 42px;
    padding: 0 16px 0 11px;
    gap: 5px;
    justify-content: flex-start;
    font-size: 14px;
    line-height: 1;
    font-weight: 600;
}

.office-button.office-create-button > .office-svg-icon,
.office-time-actions .office-create-button > .office-svg-icon,
.office-time-overview-actions .office-create-button > .office-svg-icon {
    width: 18px;
    height: 18px;
    margin: 0;
    opacity: .78;
}

.office-button.is-disabled,
.office-button[aria-disabled="true"] {
    pointer-events: none;
    opacity: .45;
}

/* Searchable Office comboboxes – used for Auftraggeber, time type and project. */
.office-inline-combobox,
.office-client-combobox {
    position: relative;
    width: 100%;
}

.office-combobox-trigger {
    width: 100%;
    min-height: 42px;
    padding: 0 12px;
    border: 1px solid var(--office-border);
    border-radius: var(--office-radius-md);
    background: var(--office-surface);
    color: var(--office-text);
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 8px;
    font: inherit;
    font-size: 14px;
    text-align: left;
    cursor: pointer;
    transition: background-color 140ms ease, border-color 140ms ease, box-shadow 140ms ease;
}

.office-combobox-trigger:hover,
.office-combobox-trigger[aria-expanded="true"] {
    border-color: var(--office-border-strong);
    background: var(--office-surface-soft);
}

.office-combobox-trigger:focus-visible {
    outline: 2px solid color-mix(in srgb, var(--office-primary) 32%, transparent);
    outline-offset: 1px;
}

.office-combobox-trigger > span:first-of-type:not(.office-svg-icon) {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.office-combobox-chevron {
    width: 15px;
    height: 15px;
    flex: 0 0 auto;
    opacity: .62;
    transition: transform 180ms ease;
}

.office-combobox-trigger[aria-expanded="true"] .office-combobox-chevron {
    transform: rotate(180deg);
}

.office-combobox-popover {
    position: absolute;
    z-index: 180;
    top: calc(100% + 6px);
    left: 0;
    right: 0;
    min-width: min(430px, 92vw);
    padding: 8px;
    border: 1px solid var(--office-border);
    border-radius: 12px;
    background: var(--office-surface);
    box-shadow: 0 16px 38px rgba(18, 22, 27, .16), 0 3px 10px rgba(18, 22, 27, .08);
    animation: office-r008-popover-in 190ms var(--office-ease-out, ease-out);
    transform-origin: top center;
}

@keyframes office-r008-popover-in {
    from { opacity: 0; transform: translateY(-4px) scale(.99); }
    to { opacity: 1; transform: translateY(0) scale(1); }
}

.office-combobox-search {
    width: 100%;
    margin-bottom: 7px;
}

.office-combobox-options {
    max-height: 290px;
    overflow: auto;
    display: grid;
    gap: 2px;
}

.office-combobox-option,
.office-combobox-create {
    width: 100%;
    min-height: 38px;
    border: 0;
    border-radius: 8px;
    padding: 8px 10px;
    display: flex;
    align-items: center;
    gap: 9px;
    background: transparent;
    color: var(--office-text);
    font: inherit;
    font-size: 13.5px;
    text-align: left;
    cursor: pointer;
    transition: background-color 130ms ease, color 130ms ease;
}

.office-combobox-option:hover,
.office-combobox-create:hover {
    background: var(--office-surface-soft);
}

.office-combobox-option.is-selected {
    background: color-mix(in srgb, var(--office-primary) 8%, var(--office-surface));
    color: var(--office-primary);
}

.office-combobox-option > span:not(.office-svg-icon) {
    min-width: 0;
    display: grid;
    gap: 2px;
}

.office-combobox-option strong { font-weight: 600; }
.office-combobox-option small { color: var(--office-text-muted); font-size: 12px; }
.office-combobox-create { font-weight: 600; }
.office-combobox-create .office-svg-icon { width: 17px; height: 17px; }
.office-combobox-empty { padding: 12px 10px; color: var(--office-text-muted); font-size: 13px; }
.office-client-combobox .office-combobox-popover { max-width: 720px; min-width: 100%; }

.office-time-type-field {
    grid-column: auto;
}

.office-time-type-trigger {
    justify-content: flex-start;
}

.office-time-type-trigger > .office-svg-icon:first-child {
    width: 19px;
    height: 19px;
    flex: 0 0 auto;
}

.office-time-type-trigger .office-combobox-chevron {
    margin-left: auto;
}

.office-time-type-popover {
    min-width: 260px;
    right: auto;
}

.office-time-type-popover .office-combobox-option > .office-svg-icon {
    width: 19px;
    height: 19px;
    flex: 0 0 auto;
}

.office-project-time-popover {
    min-width: 360px;
}

.office-field-help {
    margin-top: 5px;
    display: block;
    color: var(--office-text-muted);
    font-size: 12px;
}

/* Project contact assignment and settings. */
.office-project-contact-dialog { max-width: 900px; }
.office-choice-chip-grid { display: flex; flex-wrap: wrap; gap: 7px; margin-top: 5px; }
.office-choice-chip { position: relative; }
.office-choice-chip input { position: absolute; opacity: 0; pointer-events: none; }
.office-choice-chip span {
    min-height: 32px;
    padding: 0 11px;
    border: 1px solid var(--office-border);
    border-radius: 8px;
    display: inline-flex;
    align-items: center;
    background: var(--office-surface);
    color: var(--office-text-secondary);
    cursor: pointer;
    font-size: 13px;
    transition: background-color 140ms ease, border-color 140ms ease, color 140ms ease;
}
.office-choice-chip span:hover { background: var(--office-surface-soft); }
.office-choice-chip input:checked + span { border-color: color-mix(in srgb, var(--office-primary) 42%, var(--office-border)); background: color-mix(in srgb, var(--office-primary) 9%, var(--office-surface)); color: var(--office-primary); font-weight: 600; }

.office-settings-stack { display: grid; gap: 18px; }
.office-settings-editor-card { padding: 22px; }
.office-settings-definition-list { display: grid; gap: 8px; margin-top: 18px; }
.office-settings-definition-row { display: grid; grid-template-columns: minmax(220px, 1fr) 110px auto; gap: 10px; align-items: center; }
.office-settings-definition-row .office-input { min-height: 40px; padding: 0 12px; border: 1px solid var(--office-border); border-radius: var(--office-radius-md); background: var(--office-surface); color: var(--office-text); font: inherit; }
.office-settings-definition-row.is-new { margin-top: 8px; padding-top: 14px; border-top: 1px solid var(--office-border); }

/* Cleaner report workflow: inputs and selectable source data, not a live print page. */
.office-report-workflow-card { padding: 22px; }
.office-report-workflow-card + .office-report-workflow-card,
.office-report-ready-card { margin-top: 14px; }
.office-report-workflow-head { margin-bottom: 16px; }
.office-report-workflow-head h2,
.office-report-ready-card h2 { margin: 3px 0 3px; font-size: 18px; }
.office-report-workflow-head p,
.office-report-ready-card p { margin: 0; color: var(--office-text-muted); }
.office-report-workflow-head.is-row { display: flex; align-items: flex-start; justify-content: space-between; gap: 18px; }
.office-report-empty { padding: 18px 0 4px; }
.office-report-ready-card { padding: 22px; display: flex; align-items: center; justify-content: space-between; gap: 28px; }
.office-report-ready-meta { min-width: 320px; display: grid; grid-template-columns: auto 1fr; gap: 5px 14px; font-size: 13px; }
.office-report-ready-meta span { color: var(--office-text-muted); }
.office-travel-summary-grid { margin-top: 16px; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); border: 1px solid var(--office-border); border-radius: 10px; overflow: hidden; }
.office-travel-summary-grid > div { padding: 14px 16px; display: grid; gap: 4px; border-right: 1px solid var(--office-border); }
.office-travel-summary-grid > div:last-child { border-right: 0; }
.office-travel-summary-grid span { color: var(--office-text-muted); font-size: 12px; }
.office-travel-summary-grid strong { font-size: 16px; font-weight: 600; }
.office-report-closed-note { margin-top: 14px; padding: 18px 22px; }
.office-report-closed-note strong { display: block; margin-top: 4px; }
.office-report-closed-note p { margin: 4px 0 0; color: var(--office-text-muted); }

/* Invoice list / import. */
.office-invoice-import-dialog { max-width: 940px; }
.office-invoice-import-dialog .office-dialog-header p { margin: 4px 0 0; color: var(--office-text-muted); font-size: 13px; }

/* Close buttons now always render a real SVG. */
.office-icon-button .office-svg-icon,
#blazor-error-ui .dismiss .office-svg-icon { width: 16px; height: 16px; }
#blazor-error-ui .dismiss { display: inline-flex; align-items: center; justify-content: center; }

@media (max-width: 820px) {
    .office-combobox-popover,
    .office-project-time-popover,
    .office-time-type-popover { min-width: 100%; max-width: none; }
    .office-settings-definition-row { grid-template-columns: 1fr; }
    .office-settings-definition-row > span:empty { display: none; }
    .office-report-workflow-head.is-row,
    .office-report-ready-card { align-items: stretch; flex-direction: column; }
    .office-report-ready-meta { min-width: 0; }
    .office-travel-summary-grid { grid-template-columns: 1fr; }
    .office-travel-summary-grid > div { border-right: 0; border-bottom: 1px solid var(--office-border); }
    .office-travel-summary-grid > div:last-child { border-bottom: 0; }
}

/* Dashboard r007 had a direct 10.5px rule on .office-time-actions span. Reset it at
   the actual button text node so "Zeit erfassen" cannot shrink independently. */
.office-create-button > span:not(.office-svg-icon),
.office-time-actions .office-create-button > span:not(.office-svg-icon),
.office-time-overview-actions .office-create-button > span:not(.office-svg-icon) {
    color: inherit;
    font-size: 14px;
    font-weight: 600;
    line-height: 1;
}

/* r009: einheitliche Modulaktionsbuttons; Dashboard-Buttons bleiben bewusst unberührt. */
.office-module-action{min-height:44px;padding:0 18px;display:inline-flex;align-items:center;gap:8px;font-size:14px;font-weight:600;white-space:nowrap}.office-module-action .office-svg-icon{width:17px;height:17px;flex:0 0 17px}
.office-report-selection-toolbar{margin-top:16px}

/* r009 invoice refinements – module actions stay separate from dashboard button sizing. */
.office-module-action-button {
    min-height: 42px;
    padding: 0 16px;
    gap: 6px;
    font-size: 14px;
    font-weight: 600;
    line-height: 1;
}
.office-module-action-button > .office-svg-icon { width: 17px; height: 17px; opacity: .82; }
.office-invoice-heading-actions { display:flex; align-items:center; gap:10px; flex-wrap:wrap; justify-content:flex-end; }
.office-invoice-list-card { overflow: visible; }
.office-invoice-table-frame { overflow: visible; }
.office-invoice-table-frame .office-table-viewport { overflow: visible; }
.office-invoice-row-popover { z-index: 120; min-width: 190px; }
.office-invoice-recipient-popover { min-width: 100%; }
.office-file-upload-control {
    min-height: 42px;
    padding: 0 13px;
    border: 1px solid var(--office-border-strong);
    border-radius: var(--office-radius-md);
    display: inline-flex;
    align-items: center;
    gap: 8px;
    background: var(--office-surface);
    color: var(--office-text);
    font-size: 13px;
    font-weight: 500;
    cursor: pointer;
}
.office-file-upload-control:hover { background: var(--office-hover); border-color: #bcc2c8; }
.office-file-upload-control .office-svg-icon { width: 17px; height: 17px; }
.office-invoice-send-dialog { max-width: 760px; }
.office-project-invoices-panel { padding: 20px; }
@media (max-width: 760px) {
    .office-invoice-heading-actions { width:100%; justify-content:flex-start; }
    .office-module-action-button { min-height: 40px; }
}

/* r010 notification badge parity with p-Manager Project */
.office-notification-link{position:relative;}
.office-notification-badge{position:absolute;top:1px;right:0;min-width:17px;height:17px;padding:0 4px;border:2px solid #fff;border-radius:999px;display:inline-flex;align-items:center;justify-content:center;background:var(--office-primary,#1676d2);color:#fff;font-size:9px;font-weight:800;line-height:1;transform-origin:center;}
.office-notification-badge.badge-enter{animation:office-badge-enter 220ms cubic-bezier(.2,.9,.3,1.35)}
.office-notification-badge.badge-change{animation:office-badge-change 220ms ease}
.office-notification-badge.badge-leave{animation:office-badge-leave 180ms ease forwards}
@keyframes office-badge-enter{from{opacity:0;transform:scale(.45)}70%{transform:scale(1.12)}to{opacity:1;transform:scale(1)}}
@keyframes office-badge-change{50%{transform:scale(1.18)}}
@keyframes office-badge-leave{to{opacity:0;transform:scale(.45)}}
@media(prefers-reduced-motion:reduce){.office-notification-badge.badge-enter,.office-notification-badge.badge-change,.office-notification-badge.badge-leave{animation-duration:1ms}}

/* r010 release consolidation: worktime, leave, backup, maintenance, construction details. */
.office-worktime-panel,.office-leave-panel{padding:20px;display:grid;gap:16px}
.office-worktime-commandbar,.office-leave-commandbar{display:flex;align-items:center;justify-content:space-between;gap:14px;flex-wrap:wrap}
.office-worktime-actions,.office-leave-year-controls{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.office-worktime-summary,.office-leave-balance{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));border:1px solid var(--office-border);border-radius:10px;overflow:hidden}
.office-leave-balance{grid-template-columns:repeat(4,minmax(0,1fr))}
.office-worktime-summary>div,.office-leave-balance>div{padding:13px 15px;display:grid;gap:3px;border-right:1px solid var(--office-border)}
.office-worktime-summary>div:last-child,.office-leave-balance>div:last-child{border-right:0}
.office-worktime-summary span,.office-leave-balance span{font-size:12px;color:var(--office-text-muted)}
.office-worktime-summary strong,.office-leave-balance strong{font-size:16px;font-weight:600}
.office-worktime-month-close{display:flex;align-items:center;justify-content:flex-end;gap:10px;flex-wrap:wrap;padding-top:4px}
.office-worktime-month-close>span{margin-right:auto;font-weight:600}

.office-leave-year-legend{display:flex;align-items:center;gap:15px;flex-wrap:wrap;font-size:12px;color:var(--office-text-muted)}
.office-leave-year-legend span{display:inline-flex;align-items:center;gap:6px}
.office-leave-year-legend span::before{content:"";width:9px;height:9px;border-radius:3px;background:var(--office-surface-soft);border:1px solid var(--office-border)}
.office-leave-year-legend .is-own::before{background:color-mix(in srgb,var(--office-primary) 18%,var(--office-surface))}
.office-leave-year-legend .is-team::before{background:color-mix(in srgb,var(--office-text-muted) 13%,var(--office-surface))}
.office-leave-year-legend .is-holiday::before{background:color-mix(in srgb,var(--office-danger,#c63c3c) 10%,var(--office-surface))}
.office-leave-year-legend .is-company::before{border-color:var(--office-primary)}
.office-leave-year-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}
.office-leave-month{border:1px solid var(--office-border);border-radius:10px;background:var(--office-surface);padding:11px}
.office-leave-month>header{margin-bottom:8px;font-size:13px}
.office-leave-weekdays,.office-leave-days{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:3px}
.office-leave-weekdays span{padding:2px 0;text-align:center;font-size:10px;color:var(--office-text-muted)}
.office-leave-day{position:relative;min-height:28px;border:1px solid transparent;border-radius:6px;background:transparent;color:var(--office-text);font:inherit;font-size:11px;cursor:pointer;transition:background-color 130ms ease,border-color 130ms ease}
.office-leave-day:not(.is-blank):hover{background:var(--office-surface-soft);border-color:var(--office-border)}
.office-leave-day.is-blank{pointer-events:none}
.office-leave-day.is-own{background:color-mix(in srgb,var(--office-primary) 12%,var(--office-surface));border-color:color-mix(in srgb,var(--office-primary) 24%,var(--office-border))}
.office-leave-day.is-team{box-shadow:inset 0 -3px 0 color-mix(in srgb,var(--office-text-muted) 38%,transparent)}
.office-leave-day.is-holiday{color:var(--office-danger,#b32e2e)}
.office-leave-day.is-company{outline:1px solid color-mix(in srgb,var(--office-primary) 45%,transparent);outline-offset:-2px}
.office-leave-day.is-overlap::after{content:"";position:absolute;right:3px;top:3px;width:5px;height:5px;border-radius:50%;background:var(--office-warning,#d58b18)}
.office-leave-day.is-today{font-weight:700;border-color:var(--office-primary)}
.office-leave-day small{position:absolute;right:3px;bottom:1px;font-size:8px;color:var(--office-text-muted)}
.office-leave-list-heading{display:flex;align-items:baseline;justify-content:space-between;gap:12px;padding-top:3px}
.office-leave-list-heading small{color:var(--office-text-muted);font-size:12px}

.office-weekday-picker{display:flex;align-items:center;gap:9px;flex-wrap:wrap}
.office-weekday-picker .office-checkbox-field{min-height:34px;padding:0 9px;border:1px solid var(--office-border);border-radius:8px;background:var(--office-surface)}
.office-settings-actions{display:flex;justify-content:flex-end;gap:8px;flex-wrap:wrap}
.office-danger-confirm{padding:14px 16px;border:1px solid color-mix(in srgb,var(--office-danger,#b32e2e) 25%,var(--office-border));border-radius:10px;background:color-mix(in srgb,var(--office-danger,#b32e2e) 4%,var(--office-surface));display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.office-danger-confirm p{flex:1 1 100%;margin:0;color:var(--office-text-muted);font-size:13px}

.office-print-template-group{border:1px solid var(--office-border);border-radius:10px;overflow:hidden;background:var(--office-surface)}
.office-print-template-group>header{min-height:48px;padding:8px 12px;display:flex;align-items:center;justify-content:space-between;gap:10px;border-bottom:1px solid var(--office-border)}
.office-print-template-group>header h3{margin:0;font-size:14px;font-weight:600}
.office-print-template-row{padding:14px 12px;display:grid;grid-template-columns:minmax(190px,1fr) repeat(2,minmax(190px,1fr));gap:12px;align-items:end;border-bottom:1px solid var(--office-border)}
.office-print-template-row:last-child{border-bottom:0}
.office-print-template-row>div:first-child{display:grid;gap:3px;align-self:center}.office-print-template-row>div:first-child small{font-size:12px;color:var(--office-text-muted)}

.office-maintenance-page{min-height:calc(100vh - 80px);display:grid;place-items:center;padding:32px}
.office-maintenance-card{width:min(560px,100%);padding:34px;border:1px solid var(--office-border);border-radius:14px;background:var(--office-surface);text-align:center;display:flex;flex-direction:column;align-items:center;gap:12px}
.office-maintenance-card h1{margin:4px 0 0;font-size:26px}.office-maintenance-card p{margin:0 0 8px;color:var(--office-text-muted);line-height:1.55}.office-maintenance-card form{margin:0}.office-maintenance-icon{width:28px;height:28px}

.office-photo-editor-dialog{width:min(1180px,96vw);max-width:none}
.office-task-comment,.office-history-row{padding:10px 12px;border:1px solid var(--office-border);border-radius:9px;background:var(--office-surface-soft);display:grid;gap:3px}
.office-task-comment small,.office-history-row small{color:var(--office-text-muted);font-size:11px}
.office-plan-location-preview{border:1px solid var(--office-border);border-radius:10px;overflow:hidden;background:var(--office-surface-soft)}
.office-plan-location-preview img{display:block;width:100%;height:auto;max-height:360px;object-fit:contain}
.office-marker-fields{display:flex;gap:8px;align-items:end;flex-wrap:wrap}
.office-marker-fields .office-field{flex:1 1 150px}

@media(max-width:980px){.office-leave-year-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.office-print-template-row{grid-template-columns:1fr 1fr}.office-print-template-row>div:first-child{grid-column:1/-1}}
@media(max-width:700px){.office-worktime-summary,.office-leave-balance{grid-template-columns:1fr}.office-worktime-summary>div,.office-leave-balance>div{border-right:0;border-bottom:1px solid var(--office-border)}.office-worktime-summary>div:last-child,.office-leave-balance>div:last-child{border-bottom:0}.office-leave-year-grid{grid-template-columns:1fr}.office-print-template-row{grid-template-columns:1fr}.office-print-template-row>div:first-child{grid-column:auto}.office-maintenance-page{padding:18px}.office-maintenance-card{padding:24px}}

/* r010 Zeiterfassung final refinements */
.office-report-selection-table { margin-top: 16px; }

.office-dashboard-time-body-new {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr);
    gap: 16px;
    align-items: center;
}
.office-dashboard-time-clock,
.office-worktime-live-clock {
    display: inline-flex;
    align-items: center;
    gap: 9px;
    min-width: 112px;
    white-space: nowrap;
}
.office-dashboard-time-clock .office-svg-icon,
.office-worktime-live-clock .office-svg-icon { width: 18px; height: 18px; opacity: .68; }
.office-dashboard-time-clock strong,
.office-worktime-live-clock strong { font-size: 16px; font-weight: 600; letter-spacing: .01em; font-variant-numeric: tabular-nums; }
.office-dashboard-time-actions-new,
.office-worktime-actions { display:flex; align-items:center; gap:8px; flex-wrap:wrap; justify-content:flex-end; }
.office-time-action { white-space: nowrap; transition: background-color 140ms ease, border-color 140ms ease, color 140ms ease, transform 90ms ease, box-shadow 140ms ease; }
.office-time-action:active { transform: scale(.975); box-shadow: inset 0 1px 2px rgba(0,0,0,.12); }
.office-time-action.is-check-in { background: color-mix(in srgb, #2f8a4b 11%, var(--office-surface)); border-color: color-mix(in srgb, #2f8a4b 35%, var(--office-border)); color:#276e3d; }
.office-time-action.is-check-in:hover { background: color-mix(in srgb, #2f8a4b 17%, var(--office-surface)); }
.office-time-action.is-check-out { background: var(--office-primary); border-color: var(--office-primary); color:#fff; }
.office-time-action.is-check-out:hover { background: var(--office-primary-hover); border-color: var(--office-primary-hover); }
.office-time-action.is-pause { background:#555; border-color:#555; color:#fff; }
.office-time-action.is-pause:hover { background:#616161; border-color:#616161; }
.office-time-action.is-manual { background:var(--office-surface); color:var(--office-text); }
.office-time-action .office-svg-icon { width:17px; height:17px; }
.office-worktime-commandbar-new { justify-content:space-between; }
.office-worktime-month-close { display:flex; justify-content:flex-end; align-items:center; gap:10px; padding-top:2px; }

.office-leave-command-actions { display:flex; align-items:center; gap:8px; }
.office-leave-settings-button { width:42px; height:42px; }
.office-leave-year-legend .office-leave-person-legend::before { display:none; }
.office-leave-person-legend i,
.office-leave-list-person i { width:9px; height:9px; border-radius:3px; background:var(--leave-user-color); display:inline-block; flex:0 0 9px; }
.office-leave-list-person { display:inline-flex; align-items:center; gap:7px; }
.office-leave-year-legend .is-school-holiday::before { background:rgba(110,116,122,.13); border-color:rgba(110,116,122,.24); }
.office-leave-calendar-row { display:grid; grid-template-columns:24px repeat(7,minmax(0,1fr)); gap:3px; align-items:center; }
.office-leave-weekdays { grid-template-columns:24px repeat(7,minmax(0,1fr)); }
.office-leave-weekdays span { padding:2px 0; text-align:center; font-size:10px; color:var(--office-text-muted); }
.office-leave-kw-head { font-weight:600; opacity:.72; }
.office-leave-weeks { display:grid; gap:3px; }
.office-leave-week-number { text-align:center; color:var(--office-text-muted); font-size:9px; font-variant-numeric:tabular-nums; }
.office-leave-day { overflow:hidden; }
.office-leave-day.is-school-holiday { background:rgba(116,122,128,.075); }
.office-leave-day.is-holiday { color:var(--office-danger,#b32e2e); background:color-mix(in srgb,var(--office-danger,#b32e2e) 5%,transparent); }
.office-leave-day.is-company { outline:1px solid color-mix(in srgb,var(--office-primary) 38%,transparent); outline-offset:-2px; }
.office-leave-day.is-today { font-weight:700; border-color:var(--office-primary); box-shadow:inset 0 0 0 1px var(--office-primary); background:transparent; }
.office-leave-day.is-today::before { content:""; position:absolute; top:2px; left:50%; width:10px; height:2px; transform:translateX(-50%); border-radius:2px; background:var(--office-primary); }
.office-leave-person-markers { position:absolute; left:3px; right:3px; bottom:2px; display:flex; justify-content:center; gap:2px; pointer-events:none; }
.office-leave-person-markers i { width:5px; height:5px; border-radius:50%; background:var(--leave-marker-color); box-shadow:0 0 0 1px color-mix(in srgb,var(--leave-marker-color) 55%,transparent); }
.office-leave-day.is-overlap::after { width:4px; height:4px; right:2px; top:2px; }
.office-leave-settings-dialog { width:min(760px,calc(100vw - 32px)); }
.office-leave-display-options { display:grid; grid-template-columns:1fr 1fr; gap:12px; margin-bottom:18px; }
.office-leave-display-people { display:grid; gap:8px; }
.office-leave-display-heading { display:flex; align-items:baseline; justify-content:space-between; gap:12px; margin-bottom:3px; }
.office-leave-display-heading small { color:var(--office-text-muted); }
.office-leave-display-person { min-height:48px; display:grid; grid-template-columns:minmax(150px,1fr) auto 40px; align-items:center; gap:12px; padding:7px 9px; border:1px solid var(--office-border); border-radius:9px; }
.office-leave-color-palette { display:flex; align-items:center; gap:5px; flex-wrap:wrap; }
.office-leave-color-swatch { width:20px; height:20px; padding:0; border:1px solid color-mix(in srgb,var(--leave-swatch) 62%,#666); border-radius:6px; background:var(--leave-swatch); cursor:pointer; transition:transform 120ms ease,box-shadow 120ms ease; }
.office-leave-color-swatch:hover { transform:scale(1.08); }
.office-leave-color-swatch.is-active { box-shadow:0 0 0 2px var(--office-surface),0 0 0 4px color-mix(in srgb,var(--leave-swatch) 60%,var(--office-primary)); }
.office-leave-display-person .office-icon-button.is-muted { opacity:.42; }
.office-holiday-create-grid { margin-top:4px; }

@media (max-width: 820px) {
    .office-dashboard-time-body-new { grid-template-columns:1fr; }
    .office-dashboard-time-actions-new,.office-worktime-actions { justify-content:flex-start; }
    .office-leave-display-options { grid-template-columns:1fr; }
    .office-leave-display-person { grid-template-columns:1fr auto; }
    .office-leave-color-palette { grid-column:1/-1; order:3; }
}


/* r011 dashboard visual corrections */
.office-dashboard-welcome h1 { color:#454b52; font-size:clamp(23px,1.8vw,28px); font-weight:600; }
.office-project-brand { overflow:hidden; flex:none; }
.office-project-card-logo { display:block; width:100%; height:100%; max-width:40px; max-height:40px; object-fit:contain; padding:4px; box-sizing:border-box; }
.office-project-card-logo-fallback { width:20px; height:20px; }
.office-collection-panel.is-collapsed { padding-bottom:18px; }
.office-collection-panel.is-collapsed .office-section-collapse-button .office-svg-icon { transform:rotate(-90deg); }

/* r011 larger back-navigation target */
.office-context-back-title{display:inline-flex;align-items:center;gap:9px;min-height:36px;padding:0 11px 0 8px;border-radius:10px;color:var(--office-text);text-decoration:none;font-weight:600;transition:background-color .14s ease,color .14s ease}.office-context-back-title:hover{background:var(--office-surface-hover,#f1f4f7)}.office-context-back-title .office-context-back-icon{width:17px;height:17px}

/* r011 profile */
.office-profile-overview-grid-r011{grid-template-columns:minmax(0,1fr) minmax(320px,.72fr)}.office-profile-account-avatar-framed{border:1px solid var(--office-border);box-shadow:0 0 0 4px rgba(15,108,189,.04)}.office-profile-position{margin:2px 0 0;color:var(--office-text-secondary);font-size:13px}.office-profile-account-settings-row{display:grid;gap:3px;padding:12px 0}.office-profile-account-settings-row span{font-size:12px;color:var(--office-text-muted)}.office-profile-vehicle-list{max-width:760px}.office-profile-vehicle-row{max-width:560px}.office-profile-vehicle-new{margin-top:18px;max-width:900px}.office-license-plate-input{display:grid;grid-template-columns:92px auto minmax(130px,1fr);align-items:center;gap:8px}.office-license-plate-input>span{font-weight:700}.office-profile-signature-block-r011{display:block}.office-profile-signature-controls-r011{margin-top:14px;justify-content:flex-start;align-items:flex-start;max-width:620px}.office-profile-signature-preview{max-width:260px}.office-profile-vehicles-block .office-settings-section-heading{margin-bottom:18px}
/* r011 company settings */
.office-company-settings-card-r011{max-width:1180px}.office-form-section-divider{height:1px;background:var(--office-border);margin:8px 0 3px}.office-company-additional-bank{display:grid;grid-template-columns:1fr 1fr 1.35fr 1fr auto;gap:12px;align-items:end;padding-top:12px;border-top:1px solid var(--office-border)}.office-company-logo-block-r011{display:grid;justify-items:start;gap:6px}.office-company-logo-controls-r011{display:grid;justify-items:start;gap:12px;margin-top:8px}.office-company-logo-preview-r011{display:block;max-width:260px;max-height:110px;object-fit:contain;border:1px solid var(--office-border);border-radius:12px;padding:12px;background:#fff}.office-company-director-picker{position:relative}.office-company-director-popover{position:relative;margin-top:8px;max-width:620px}
/* r011 project roles/trades */
.office-project-contact-settings-r011{max-width:1080px}.office-definition-card-r011{max-width:980px}.office-settings-definition-row-r011{grid-template-columns:34px minmax(240px,1fr) 105px auto auto;max-width:900px}.office-definition-drag-handle{width:32px;height:38px;display:grid;place-items:center;cursor:grab;color:var(--office-text-muted);border-radius:8px}.office-definition-drag-handle:hover{background:var(--office-surface-hover,#f3f5f7);color:var(--office-text)}.office-definition-color{display:flex;align-items:center;gap:7px;font-size:12px;color:var(--office-text-secondary)}.office-definition-color input[type=color]{width:32px;height:32px;border:1px solid var(--office-border);border-radius:8px;padding:2px;background:transparent}

.office-client-print-options{display:flex;flex-wrap:wrap;gap:12px 20px;align-items:center;padding:10px 0}.office-client-print-options>span{width:100%;font-size:12px;color:var(--office-text-muted)}

.office-bank-grid{display:grid;grid-template-columns:1.1fr 1fr 1.45fr .8fr;gap:12px}.office-company-additional-bank{grid-template-columns:1.1fr 1fr 1.45fr .8fr auto}

.office-two-field-row{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}

/* r011 dashboard time card – compact three-action layout */
.office-dashboard-time-body-new {
    display:flex;
    flex-direction:column;
    gap:14px;
    align-items:stretch;
}
.office-dashboard-time-clock {
    justify-content:flex-end;
    min-width:0;
    color:#4f5458;
}
.office-dashboard-time-clock .office-svg-icon {
    width:20px;
    height:20px;
    opacity:.72;
}
.office-dashboard-time-clock strong {
    color:#4f5458;
    font-size:20px;
    line-height:1;
    font-weight:600;
}
.office-dashboard-time-actions-new {
    display:grid;
    grid-template-columns:repeat(3,minmax(0,1fr));
    gap:8px;
    width:100%;
}
.office-dashboard-time-actions-new .office-time-action {
    width:100%;
    min-width:0;
    justify-content:center;
    padding-inline:10px;
}
.office-dashboard-time-actions-new .office-time-action.is-pause,
.office-dashboard-time-actions-new .office-time-action.is-pause .office-svg-icon {
    color:#fff;
}
.office-dashboard-time-actions-new .office-time-action.is-pause:disabled {
    background:#5d5d5d;
    border-color:#5d5d5d;
    color:rgba(255,255,255,.72);
    opacity:1;
    cursor:not-allowed;
}
.office-dashboard-time-actions-new .office-time-action.is-pause:disabled .office-svg-icon {
    color:rgba(255,255,255,.72);
    opacity:1;
}
@media(max-width:1180px){
    .office-dashboard-time-actions-new { grid-template-columns:1fr 1fr; }
    .office-dashboard-time-actions-new .is-manual { grid-column:1 / -1; }
}

/* r012 project editor / recipient picker */
.office-project-editor-card + .office-project-additional-card{margin-top:18px}
.office-project-additional-card .office-settings-section-heading{margin-bottom:14px}
.office-project-email-picker{position:relative;align-self:start}
.office-chip-input{min-height:42px;border:1px solid var(--office-border-strong);border-radius:10px;background:var(--office-surface);display:flex;align-items:center;gap:6px;flex-wrap:wrap;padding:5px 7px}
.office-chip-input:focus-within{border-color:color-mix(in srgb,var(--office-primary) 55%,var(--office-border));box-shadow:0 0 0 3px color-mix(in srgb,var(--office-primary) 10%,transparent)}
.office-chip{display:inline-flex;align-items:center;gap:6px;min-height:28px;padding:3px 7px 3px 10px;border-radius:999px;background:var(--office-surface-soft);border:1px solid var(--office-border);font-size:12px}
.office-chip button{border:0;background:transparent;color:var(--office-text-muted);cursor:pointer;font-size:15px;line-height:1;padding:0 2px}
.office-chip-input-trigger{border:0;background:transparent;display:inline-flex;align-items:center;gap:7px;min-height:30px;padding:3px 7px;color:var(--office-text);font:inherit;font-size:13px;font-weight:600;cursor:pointer}
.office-chip-input-trigger .office-svg-icon{width:14px;height:14px}
.office-recipient-popover{position:absolute;z-index:150;left:0;right:0;top:68px;padding:8px;border:1px solid var(--office-border);border-radius:12px;background:var(--office-surface);box-shadow:0 16px 36px rgba(25,32,38,.14);display:grid;gap:2px;max-height:300px;overflow:auto}
.office-checkbox-row{display:grid;grid-template-columns:20px minmax(0,1fr);align-items:center;gap:9px;min-height:46px;padding:7px 9px;border-radius:8px;cursor:pointer}
.office-checkbox-row:hover{background:var(--office-surface-hover,#f3f5f7)}
.office-checkbox-row input{width:16px;height:16px;margin:0}
.office-checkbox-row>span{display:grid;gap:2px;min-width:0}
.office-checkbox-row strong{font-size:13px;font-weight:600;white-space:normal}
.office-checkbox-row small{font-size:12px;color:var(--office-text-muted);overflow-wrap:anywhere}
.office-compact-email-add{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px;margin-top:8px}
.office-project-address-heading{margin-top:8px}

/* r012 contact polish */
.office-email-cell{display:flex;align-items:center;gap:6px;min-width:0}.office-email-cell>span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.office-email-cell .office-icon-button{width:30px;height:30px;flex:0 0 30px}.office-pill-list{display:flex;flex-wrap:wrap;gap:5px}.office-data-pill{display:inline-flex;align-items:center;min-height:24px;padding:2px 8px;border-radius:999px;border:1px solid color-mix(in srgb,var(--office-primary) 24%,var(--office-border));background:color-mix(in srgb,var(--office-primary) 7%,var(--office-surface));font-size:11px;font-weight:600}.office-data-pill.is-muted{border-color:var(--office-border);background:var(--office-surface-soft);color:var(--office-text-secondary)}
.office-clickable-row{cursor:pointer}.office-clickable-row:hover td{background:var(--office-surface-hover,#f6f7f8)}.office-company-contact-detail-row td{padding:0;background:var(--office-surface-soft)}.office-company-contact-detail{display:grid;gap:1px;padding:8px 14px}.office-company-contact-person{display:grid;grid-template-columns:minmax(180px,1fr) minmax(240px,1.4fr) minmax(120px,.7fr);gap:16px;align-items:center;padding:9px 8px;border-bottom:1px solid var(--office-border)}.office-company-contact-person:last-child{border-bottom:0}.office-company-contact-person>div:first-child{display:grid;gap:2px}.office-company-contact-person small{color:var(--office-text-muted)}
.office-company-inline-contact-divider{height:1px;background:var(--office-border);margin:10px 0 14px}.office-inline-section-heading-simple{align-items:center;margin-bottom:12px}.office-company-inline-contacts{margin-top:8px;padding-top:0}.office-company-inline-contact-row{margin-top:10px;padding:12px;border:1px solid var(--office-border);border-radius:10px;background:var(--office-surface-soft)}
@media(max-width:820px){.office-company-contact-person{grid-template-columns:1fr}.office-email-cell>span{white-space:normal;overflow-wrap:anywhere}}

/* r012 construction pages – Office UI */
.office-construction-list-r012{display:grid;gap:14px}.office-construction-toolbar{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:12px}.office-construction-search{width:min(520px,100%)}.office-construction-filters-r012{display:flex;align-items:center;gap:8px;min-width:0;flex:1}.office-construction-filters-r012 .office-construction-search{flex:1}.office-combobox-static{min-width:180px}.office-task-company-group-r012{display:grid;gap:8px;margin-top:14px}.office-task-company-group-r012>header{display:flex;align-items:center;justify-content:space-between;padding:0 2px}.office-task-company-group-r012>header h3{margin:0;font-size:14px}.office-task-group-footer{padding:2px 4px 8px}.office-task-group-footer .office-link-button{display:inline-flex;align-items:center;gap:6px}.office-task-group-footer .office-svg-icon{width:14px;height:14px}
.office-construction-detail-page{display:grid;gap:16px}.office-construction-detail-heading{display:flex;align-items:flex-end;justify-content:space-between;gap:16px}.office-construction-detail-heading h1{margin:3px 0 0;font-size:28px}.office-construction-meta-card,.office-construction-detail-card,.office-construction-task-page-card{padding:20px}.office-construction-detail-grid{display:grid;grid-template-columns:minmax(0,1.8fr) minmax(300px,.85fr);gap:14px;align-items:start}.office-construction-detail-main{display:grid;gap:14px}.office-construction-detail-card .office-settings-section-heading{margin-bottom:12px}.office-diary-company-add{display:grid;grid-template-columns:minmax(220px,1.2fr) 120px minmax(180px,.8fr) auto;gap:8px;margin-top:10px}.office-diary-notes-r012{min-height:132px}.office-diary-photo-panel-r012{position:sticky;top:86px}.office-task-link{text-decoration:none;color:inherit}.office-task-link:hover{background:var(--office-surface-hover,#f4f6f8)}
@media(max-width:980px){.office-construction-detail-grid{grid-template-columns:1fr}.office-diary-photo-panel-r012{position:static}.office-diary-company-add{grid-template-columns:1fr 120px}.office-construction-toolbar{align-items:stretch;flex-direction:column}.office-time-list-actions{justify-content:flex-end}.office-construction-filters-r012{width:100%}}
@media(max-width:640px){.office-diary-company-add,.office-construction-filters-r012{grid-template-columns:1fr;display:grid}.office-construction-detail-heading{align-items:flex-start;flex-direction:column}}
.office-company-inline-contact-row{display:grid;grid-template-columns:repeat(2,minmax(0,1fr)) minmax(160px,.8fr) minmax(220px,1.1fr) minmax(160px,.8fr) 40px;gap:10px;align-items:end}.office-company-inline-contact-row .office-icon-button{align-self:end;margin-bottom:1px}
@media(max-width:980px){.office-company-inline-contact-row{grid-template-columns:repeat(2,minmax(0,1fr))}.office-company-inline-contact-row .office-icon-button{grid-column:2;justify-self:end}}
@media(max-width:620px){.office-company-inline-contact-row{grid-template-columns:1fr}.office-company-inline-contact-row .office-icon-button{grid-column:1}}

/* r012 invoices: compact, stable editor and standard context-menu icon sizing. */
.office-invoice-import-dialog {
    width: min(940px, calc(100vw - 40px));
    max-width: 940px;
    max-height: calc(100vh - 40px);
    overflow: hidden;
}
.office-invoice-import-dialog .office-dialog-body {
    min-width: 0;
    overflow-x: hidden;
}
.office-invoice-import-dialog .office-form-grid,
.office-invoice-import-dialog .office-field,
.office-invoice-import-dialog .office-client-picker,
.office-invoice-import-dialog .office-client-combobox {
    min-width: 0;
}
.office-invoice-import-dialog .office-field > input,
.office-invoice-import-dialog .office-field > select,
.office-invoice-import-dialog .office-field > textarea,
.office-invoice-import-dialog .office-readonly-field,
.office-invoice-import-dialog .office-combobox-trigger {
    width: 100%;
    max-width: 100%;
    box-sizing: border-box;
}
.office-invoice-import-dialog .office-combobox-chevron {
    width: 14px;
    height: 14px;
    flex: 0 0 14px;
}
.office-invoice-project-popover,
.office-invoice-recipient-popover {
    width: 100%;
    min-width: 100%;
    max-width: 100%;
    box-sizing: border-box;
}
.office-invoice-row-popover .office-menu-row .office-svg-icon {
    width: 16px;
    height: 16px;
    flex: 0 0 16px;
}
.office-invoice-payment-dialog { width: min(620px, calc(100vw - 40px)); max-width: 620px; }
@media (max-width: 760px) {
    .office-invoice-import-dialog { width: calc(100vw - 20px); max-height: calc(100vh - 20px); }
}

/* r012 profile refinement */
.office-profile-position{margin:2px 0 7px}.office-profile-account-email{margin-top:0}.office-profile-password-button{align-self:flex-start;margin-top:12px;width:auto}.office-profile-first-name{grid-column:1}.office-profile-last-name{grid-column:2}.office-profile-phone-business{grid-column:1}.office-profile-mobile-business{grid-column:2}.office-profile-mobile-private{grid-column:3}.office-profile-signature-upload{width:auto}.office-profile-signature-upload input[type=file]{display:none}
@media(max-width:760px){.office-profile-first-name,.office-profile-last-name,.office-profile-phone-business,.office-profile-mobile-business,.office-profile-mobile-private{grid-column:1/-1}}

/* r013 – offene r012-Feinkorrekturen Urlaub/Arbeitszeit */
.office-worktime-live-clock strong{font-size:19px;color:#4f5358;font-weight:600;font-variant-numeric:tabular-nums}
.office-worktime-live-clock .office-svg-icon{width:20px;height:20px;opacity:.68}
.office-worktime-month-groups{display:grid;gap:20px}
.office-worktime-month-group{display:grid;gap:8px}
.office-worktime-month-heading{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:2px 2px 0}
.office-worktime-month-heading>strong{font-size:15px;font-weight:600}
.office-worktime-month-group .office-worktime-month-close{padding-top:4px}
.office-leave-settings-button{border:1px solid var(--office-border);border-radius:10px;background:var(--office-surface)}
.office-leave-settings-button:hover{background:var(--office-surface-soft)}
.office-leave-person-markers{bottom:3px;gap:3px}
.office-leave-person-markers i{width:4px;height:4px;border-radius:50%;box-shadow:none;background:var(--leave-marker-color)}
.office-leave-day.is-today{font-weight:600;border-color:color-mix(in srgb,var(--office-primary) 38%,var(--office-border));box-shadow:none;background:transparent}
.office-leave-day.is-today::before{display:none}
.office-leave-day.is-weekend{color:var(--office-text-muted)}
.office-leave-list-heading{padding-top:22px;margin-top:2px}
.office-leave-display-options{grid-template-columns:1fr;gap:9px}
.office-context-back-title .office-context-back-icon{width:22px;height:22px}
/* r013 Dashboard Zeiterfassung: Titel/Uhrzeit oben, Aktionen in eigener Zeile */
.office-dashboard-time-heading{display:flex;align-items:center;justify-content:space-between;gap:12px}
.office-dashboard-time-heading .office-dashboard-time-clock{display:flex;align-items:center;justify-content:flex-end;gap:7px;color:#555b60}
.office-dashboard-time-heading .office-dashboard-time-clock strong{font-size:16px;line-height:1;font-weight:600;color:#555b60;font-variant-numeric:tabular-nums}
.office-dashboard-time-heading .office-dashboard-time-clock .office-svg-icon{width:17px;height:17px;opacity:.68}
.office-dashboard-time-body-new{padding-top:14px}

/* r013 hotfix – Dashboard Zeiterfassung / Rechnungsmenü */
.office-dashboard-top-grid-compact{grid-template-columns:minmax(0,1.55fr) minmax(500px,.8fr)}
.office-dashboard-time-actions-new{grid-template-columns:repeat(3,minmax(138px,1fr));gap:10px}
.office-dashboard-time-actions-new .office-time-action{min-height:46px;padding:0 14px;font-size:14px;font-weight:600;white-space:nowrap}
.office-dashboard-time-actions-new .office-time-action.is-pause{background:#f2f3f4;border-color:#d9dde1;color:#50555a}
.office-dashboard-time-actions-new .office-time-action.is-pause .office-svg-icon{color:#6b7075}
.office-dashboard-time-actions-new .office-time-action.is-pause:disabled{background:#f4f5f6;border-color:#e0e3e6;color:#9aa0a5;opacity:1}
.office-dashboard-time-actions-new .office-time-action.is-pause:disabled .office-svg-icon{color:#9aa0a5;opacity:1}
.office-context-menu .office-popover,.office-table-actions-column .office-popover{min-width:245px}
@media(max-width:1180px){.office-dashboard-top-grid-compact{grid-template-columns:1fr}.office-dashboard-time-actions-new{grid-template-columns:repeat(3,minmax(0,1fr))}}

/* r014 invoice compliance lifecycle */
.office-invoice-status-stack {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 5px;
}

/* r014 – invoice correction / cancellation references */
.office-invoice-number-cell {
    display: flex;
    flex-direction: column;
    gap: 2px;
    min-width: 0;
}

.office-invoice-number-cell > small {
    color: var(--office-text-secondary);
    font-size: 12px;
    font-weight: 400;
    white-space: nowrap;
}

/* r014 – Betriebsprüfung / GoBD ------------------------------------------------ */
.office-compliance-settings { gap: 18px; }
.office-compliance-notice { display:flex; flex-direction:column; gap:4px; padding:12px 14px; margin:14px 0 16px; border:1px solid var(--office-border); border-radius:10px; background:var(--office-surface-soft); }
.office-compliance-notice strong { font-size:14px; font-weight:600; }
.office-compliance-notice span { color:var(--office-text-secondary); font-size:12px; }
.office-compliance-period-grid { max-width:620px; }
.office-compliance-options,.office-compliance-scope-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:10px 18px; margin:14px 0; max-width:760px; }
.office-compliance-preview { display:grid; grid-template-columns:repeat(5,minmax(100px,1fr)); gap:10px; margin:14px 0; }
.office-compliance-preview>div { display:flex; flex-direction:column; gap:3px; padding:10px 12px; border:1px solid var(--office-border); border-radius:9px; background:var(--office-surface-soft); }
.office-compliance-preview span { font-size:11px; color:var(--office-text-secondary); }
.office-compliance-preview strong { font-size:16px; font-weight:600; }
.office-compliance-access-link { display:flex; flex-direction:column; gap:5px; margin-top:14px; padding:12px 14px; border:1px solid var(--office-border); border-radius:10px; background:var(--office-surface-soft); overflow-wrap:anywhere; }
.office-compliance-access-link a { font-size:13px; }
.office-compliance-access-link small { color:var(--office-text-secondary); }
.office-audit-external-page { max-width:1320px; margin-inline:auto; }
.office-audit-scope-card { display:flex; flex-wrap:wrap; gap:12px 18px; align-items:center; }
.office-audit-scope-card h2 { width:100%; }
.office-audit-scope-pills { display:flex; flex-wrap:wrap; gap:7px; flex:1; }
.office-audit-scope-pills span { padding:4px 8px; border:1px solid var(--office-border); border-radius:999px; font-size:12px; background:var(--office-surface-soft); }
.office-audit-external-table { width:100%; overflow-x:auto; }
.office-audit-external-table table { width:100%; border-collapse:collapse; font-size:13px; }
.office-audit-external-table th,.office-audit-external-table td { padding:9px 10px; border-bottom:1px solid var(--office-border); text-align:left; vertical-align:top; }
.office-audit-external-table th { color:var(--office-text-secondary); font-size:11px; font-weight:600; }
@media (max-width:900px){.office-compliance-preview{grid-template-columns:repeat(2,minmax(0,1fr));}.office-compliance-options,.office-compliance-scope-grid{grid-template-columns:1fr;}}

/* r014 – Standards & Compliance */
.office-compliance-standard-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;margin-top:16px}.office-compliance-standard-card{border:1px solid var(--office-border);border-radius:12px;padding:16px;background:var(--office-surface);min-width:0}.office-compliance-standard-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.office-compliance-standard-head>div{display:grid;gap:3px}.office-compliance-standard-head strong{font-size:16px;font-weight:600}.office-compliance-standard-head small{font-size:12px;color:var(--office-text-secondary)}.office-compliance-standard-facts{display:grid;gap:8px;margin:16px 0 12px}.office-compliance-standard-facts>div{display:grid;grid-template-columns:120px minmax(0,1fr);gap:10px}.office-compliance-standard-facts dt{font-size:12px;color:var(--office-text-secondary)}.office-compliance-standard-facts dd{margin:0;font-size:13px;font-weight:500}.office-compliance-standard-message{margin:10px 0 12px;color:var(--office-text-secondary);font-size:13px;line-height:1.45}.office-settings-actions{display:flex;justify-content:flex-end;margin-top:18px}@media(max-width:1050px){.office-compliance-standard-grid{grid-template-columns:1fr}}@media(max-width:720px){.office-compliance-standard-facts>div{grid-template-columns:1fr;gap:2px}}

/* r015 Block 2 – profile, contacts, project overview and leave calendar */
.office-project-summary-actions{display:flex;justify-content:flex-end;margin-top:18px;padding-top:16px;border-top:1px solid var(--office-border)}
.office-project-summary-client{margin:4px 0 0;color:var(--office-text-muted)}
.office-contact-count{display:inline-flex;align-items:center;gap:6px}.office-contact-count-chevron{width:12px;height:12px;transition:transform 140ms ease}.office-contact-count-chevron.is-open{transform:rotate(180deg)}
.office-company-contact-person{grid-template-columns:minmax(180px,1fr) minmax(260px,1.35fr) minmax(120px,.65fr)}
.office-company-contact-person .office-email-cell{justify-content:flex-end;gap:4px}.office-company-contact-person .office-email-cell>span{margin-right:auto}
.office-profile-data-card+.office-profile-data-card{margin-top:16px}.office-profile-data-card .office-form-actions{margin-top:18px}
.office-leave-calendar-row{gap:4px}.office-leave-day{min-height:32px;padding:2px;border-radius:7px}.office-leave-person-markers{bottom:3px}
.office-project-workspace .office-context-main,.office-project-workspace .office-context-path,.office-project-workspace .office-context-actions{align-items:center}
@media(max-width:820px){.office-company-contact-person{grid-template-columns:1fr}.office-company-contact-person .office-email-cell{justify-content:flex-start}.office-leave-day{min-height:30px}.office-project-summary-actions .office-button{width:100%;justify-content:center}}

/* r015 Bauleitung: Phase0-orientierter Bautagebuch-Workflow */
.office-diary-heading-r015 .office-muted{margin:.35rem 0 0;color:var(--office-text-muted);font-size:.88rem}.office-diary-meta-r015{position:relative;overflow:visible}.office-weather-field-r015{position:relative}.office-weather-trigger-r015{width:100%;min-height:42px;border:1px solid var(--office-border);border-radius:10px;background:var(--office-surface);display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:.65rem;padding:.55rem .75rem;text-align:left;color:inherit}.office-weather-trigger-r015:hover{border-color:var(--office-border-strong)}.office-weather-trigger-r015 strong{white-space:nowrap}.office-weather-trigger-r015>span:nth-child(2){overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.office-weather-popover-r015{position:absolute;z-index:45;right:0;top:calc(100% + 8px);width:min(430px,calc(100vw - 32px));max-height:520px;overflow:auto;padding:14px;background:var(--office-surface);border:1px solid var(--office-border);border-radius:14px;box-shadow:0 18px 44px rgba(15,23,42,.18)}.office-weather-popover-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:12px}.office-weather-group-r015{display:grid;gap:4px;padding-top:10px}.office-weather-group-r015>small{padding:3px 8px;color:var(--office-text-muted);font-weight:650}.office-weather-option-r015{border:0;background:transparent;border-radius:9px;padding:9px 10px;display:flex;gap:10px;align-items:center;text-align:left;font:inherit;color:inherit}.office-weather-option-r015:hover,.office-weather-option-r015.is-active{background:var(--office-surface-soft)}.office-weather-option-r015.is-active{font-weight:700}.office-diary-grid-r015{align-items:start}.office-diary-notes-r015{min-height:190px;resize:vertical}.office-note-preview-r015{display:grid;gap:7px;margin-top:14px;padding:0 6px;color:var(--office-text)}.office-note-preview-r015>div{display:grid;grid-template-columns:16px 1fr;gap:4px}.office-diary-photo-panel-r015{position:sticky;top:84px;min-height:260px}.office-diary-photo-grid-r015 article{display:grid;gap:7px}.office-diary-photo-grid-r015 input{width:100%;border:0;background:transparent;padding:2px 1px;color:var(--office-text-muted);font-size:.82rem}.office-photo-select.is-selected{outline:2px solid var(--office-primary);outline-offset:2px}.office-construction-task-dialog .office-task-photo-picker{margin-top:20px}.office-construction-task-dialog .office-task-photo-picker h3{font-size:.95rem;margin:0 0 10px}
@media (max-width:900px){.office-diary-grid-r015{grid-template-columns:1fr}.office-diary-photo-panel-r015{position:static}.office-weather-popover-r015{left:0;right:auto}.office-diary-company-add{grid-template-columns:1fr 100px}.office-diary-company-add input[type=text]{grid-column:1/-1}.office-diary-company-add .office-button{grid-column:1/-1;min-height:44px}.office-diary-workspace-r015 .office-settings-section-heading{align-items:flex-start;gap:12px}.office-diary-workspace-r015 .office-settings-section-heading>.office-time-list-actions{flex-wrap:wrap}.office-diary-workspace-r015 .office-button,.office-diary-workspace-r015 .office-icon-button{min-height:44px}}
@media (max-width:620px){.office-diary-workspace-r015 .office-form-grid-three,.office-diary-workspace-r015 .office-form-grid-two{grid-template-columns:1fr}.office-diary-workspace-r015 .office-field-span-three,.office-diary-workspace-r015 .office-field-span-two{grid-column:auto}.office-diary-heading-r015{align-items:flex-start;gap:12px}.office-diary-heading-r015 .office-time-list-actions{width:100%}.office-diary-heading-r015 .office-button.is-primary{width:100%;justify-content:center}.office-weather-popover-r015{position:fixed;left:12px;right:12px;bottom:12px;top:auto;width:auto;max-height:70vh;border-radius:18px}.office-diary-photo-grid-r015{grid-template-columns:repeat(2,minmax(0,1fr))}.office-diary-workspace-r015 .office-table-frame{overflow-x:auto}.office-construction-task-dialog{width:calc(100vw - 16px);max-height:calc(100dvh - 16px);border-radius:18px}}

/* r015 Bauleitung Aufgaben: kompakte Phase0-Logik + mobile Karten */
.office-task-company-group-r015{margin:18px 0 28px}.office-task-company-group-r015>header{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:0 0 8px}.office-task-group-toggle-r015{display:flex;align-items:center;gap:8px;border:0;background:transparent;color:inherit;padding:6px 0;font:inherit;text-align:left}.office-task-group-toggle-r015 strong{font-size:.92rem}.office-task-group-toggle-r015>span:last-child{color:var(--office-text-muted);font-size:.78rem}.office-task-row-r015{cursor:pointer}.office-task-row-r015.is-active{background:color-mix(in srgb,var(--office-primary) 7%,var(--office-surface))}.office-task-title-cell-r015{display:flex;align-items:center;justify-content:space-between;gap:10px;min-width:260px}.office-task-inline-actions-r015{display:flex;align-items:center;gap:5px}.office-inline-select-r015,.office-inline-date-r015{min-height:34px;max-width:220px;border:1px solid var(--office-border);border-radius:8px;background:var(--office-surface);padding:4px 7px;color:inherit;font:inherit;font-size:.82rem}
@media(max-width:760px){.office-construction-list-r015 .office-construction-toolbar{align-items:stretch;flex-direction:column}.office-construction-list-r015 .office-construction-filters-r012,.office-construction-list-r015 .office-time-list-actions{width:100%}.office-construction-list-r015 .office-search-control{flex:1}.office-task-company-group-r015 .office-table-frame table,.office-task-company-group-r015 .office-table-frame tbody,.office-task-company-group-r015 .office-table-frame tr,.office-task-company-group-r015 .office-table-frame td{display:block;width:100%}.office-task-company-group-r015 .office-table-frame thead{display:none}.office-task-company-group-r015 .office-table-frame tr{padding:13px;border:1px solid var(--office-border);border-radius:13px;margin-bottom:9px;background:var(--office-surface)}.office-task-company-group-r015 .office-table-frame td{display:grid;grid-template-columns:92px minmax(0,1fr);gap:10px;align-items:center;border:0;padding:5px 0}.office-task-company-group-r015 .office-table-frame td:before{content:attr(data-label);font-size:.74rem;color:var(--office-text-muted)}.office-task-title-cell-r015{min-width:0;align-items:flex-start;flex-direction:column}.office-task-inline-actions-r015{width:100%;flex-wrap:wrap}.office-inline-select-r015,.office-inline-date-r015{max-width:none;width:100%;min-height:42px}}

/* r015 – Bauleitung / Aufgaben / Fotos ------------------------------------------------ */
.office-task-detail-heading-r015{align-items:center}.office-task-detail-heading .office-muted{margin:4px 0 0}
.office-task-detail-grid-r015{grid-template-columns:minmax(0,1.55fr) minmax(320px,.72fr)}
.office-construction-detail-side-r015{display:grid;gap:14px;position:sticky;top:86px}
.office-task-description-r015{min-height:150px}
.office-plan-location-workspace-r015{display:grid;gap:12px;margin-top:14px}
.office-plan-location-image-r015{position:relative;overflow:hidden;border:1px solid var(--office-border);border-radius:12px;background:var(--office-surface-soft);cursor:crosshair;touch-action:manipulation}
.office-plan-location-image-r015 img{display:block;width:100%;max-height:560px;object-fit:contain}
.office-plan-location-marker-r015{position:absolute;width:18px;height:18px;border:3px solid #fff;border-radius:50%;background:var(--office-primary);box-shadow:0 1px 8px rgba(0,0,0,.28);transform:translate(-50%,-50%);pointer-events:none}
.office-task-photo-grid-r015 article{display:grid;gap:6px}.office-task-photo-grid-r015 img{aspect-ratio:4/3;object-fit:cover;border-radius:9px}
.office-task-photo-picker{display:grid;gap:9px;margin-top:16px}.office-task-photo-picker h3{margin:0;font-size:14px}.office-photo-select{display:grid;gap:5px;padding:5px;border:1px solid var(--office-border);border-radius:10px;background:var(--office-surface);text-align:left;cursor:pointer}.office-photo-select:hover,.office-photo-select.is-selected{border-color:color-mix(in srgb,var(--office-primary) 55%,var(--office-border));background:color-mix(in srgb,var(--office-primary) 6%,var(--office-surface))}.office-photo-select img{width:100%;aspect-ratio:4/3;object-fit:cover;border-radius:7px}.office-photo-select small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.office-task-comment{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:3px 10px;padding:12px 0;border-bottom:1px solid var(--office-border)}.office-task-comment>div{display:flex;align-items:center;gap:7px}.office-task-comment p{grid-column:1/-1;margin:4px 0 0;white-space:pre-wrap}.office-task-comment small{color:var(--office-text-muted)}.office-task-comment.is-external{padding-left:10px;border-left:2px solid color-mix(in srgb,var(--office-primary) 45%,transparent)}
.office-task-comment-add-r015{margin-top:12px}.office-task-sharing-card-r015 .office-button{width:100%;justify-content:center}.office-share-link-r015{display:grid;gap:8px;margin-top:10px;padding:10px;border:1px solid var(--office-border);border-radius:9px;background:var(--office-surface-soft)}.office-share-link-r015 code{font-size:11px;overflow-wrap:anywhere;white-space:normal}
.office-construction-send-dialog-r015{width:min(760px,calc(100vw - 32px));max-width:760px}.office-construction-send-dialog-r015 .office-dialog-body{display:grid;gap:14px}.office-task-mail-heading-r015{margin:0}.office-construction-send-dialog-r015 .office-richtext-editor{min-height:330px}
.office-weather-option-r015 .office-svg-icon{width:19px;height:19px;opacity:.72}
.office-construction-list-r015 .office-task-company-group-r012>header{min-height:38px}.office-construction-list-r015 .office-task-title-cell-r015{display:flex;align-items:center;justify-content:space-between;gap:8px}.office-task-inline-actions-r015{display:flex;align-items:center;gap:5px;flex:0 0 auto}.office-task-inline-actions-r015 .office-button{min-height:30px}.office-task-group-footer{padding-top:6px}.office-task-company-group-r012 table td,.office-task-company-group-r012 table th{vertical-align:middle}
.office-photo-day{display:grid;gap:10px;margin-bottom:26px}.office-photo-day>h3{margin:0;font-size:16px}.office-photo-card{min-width:0}.office-photo-card .office-photo-image-wrap{position:relative;overflow:hidden;border-radius:10px;background:var(--office-surface-soft)}.office-photo-card .office-photo-image-wrap>img{display:block;width:100%;aspect-ratio:4/3;object-fit:cover}.office-photo-card .office-photo-hover-actions{position:absolute;top:7px;right:7px;opacity:0;transition:opacity .15s ease}.office-photo-card:hover .office-photo-hover-actions,.office-photo-card:focus-within .office-photo-hover-actions{opacity:1}.office-photo-description{min-height:58px;margin-top:6px}.office-photo-card.is-hidden{opacity:.5}

@media(max-width:980px){
 .office-task-detail-grid-r015{grid-template-columns:1fr}.office-construction-detail-side-r015{position:static}.office-task-photo-card-r015{order:1}.office-task-sharing-card-r015{order:2}
 .office-construction-send-dialog-r015{width:calc(100vw - 20px);max-height:calc(100vh - 20px)}
 .office-photo-card .office-photo-hover-actions{opacity:1}
}
@media(max-width:760px){
 .office-task-detail-heading-r015{align-items:stretch}.office-task-detail-heading-r015 .office-time-list-actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));width:100%}.office-task-detail-heading-r015 .office-time-list-actions .office-button{justify-content:center;min-height:44px}.office-task-detail-heading-r015 .office-time-list-actions .is-primary{grid-column:1/-1}
 .office-construction-task-workspace-r015 .office-dashboard-panel{padding:14px}.office-task-comment{grid-template-columns:1fr}.office-task-comment small,.office-task-comment p{grid-column:1}.office-task-comment-add-r015{grid-template-columns:1fr}.office-task-comment-add-r015 .office-button{min-height:44px}
 .office-plan-location-image-r015 img{max-height:420px}.office-plan-location-marker-r015{width:22px;height:22px}
 .office-construction-send-dialog-r015 .office-dialog-body{padding:14px}.office-construction-send-dialog-r015 .office-richtext-editor{min-height:250px}
 .office-photo-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.office-photo-card .office-photo-image-wrap>img{aspect-ratio:1/1}
}
@media(max-width:460px){
 .office-photo-grid{grid-template-columns:1fr}.office-photo-card .office-photo-image-wrap>img{aspect-ratio:4/3}
}
.office-share-banner-r015{display:flex;align-items:center;gap:9px;padding:9px 11px;margin:-2px 0 10px;border:1px solid color-mix(in srgb,var(--office-primary) 28%,var(--office-border));border-radius:10px;background:color-mix(in srgb,var(--office-primary) 6%,var(--office-surface));font-size:13px}.office-share-banner-r015>.office-svg-icon{width:16px;height:16px}.office-share-banner-r015>.office-link-button{margin-left:auto}.office-share-banner-r015>.office-icon-button{width:30px;height:30px}
@media(max-width:640px){.office-share-banner-r015{align-items:flex-start;flex-wrap:wrap}.office-share-banner-r015>.office-link-button{margin-left:25px}}


/* r015 – Settings consolidation */
.office-settings-access-pill{display:inline-flex;align-items:center;width:max-content;margin-top:auto;padding:.28rem .58rem;border:1px solid var(--office-border,#d9dee7);border-radius:999px;font-size:.72rem;font-weight:650;color:var(--office-text-muted,#647084);background:var(--office-surface-subtle,#f7f8fa)}
.office-settings-card{display:flex;flex-direction:column;gap:.48rem}
.office-permission-state{display:inline-flex;min-width:4.5rem;justify-content:center;border-radius:999px;padding:.24rem .5rem;font-size:.75rem;font-weight:700}.office-permission-state.is-allowed{background:rgba(29,137,75,.1);color:#197541}.office-permission-state.is-denied{color:var(--office-text-muted,#7b8494)}
.office-table-secondary{display:block;margin-top:.2rem;color:var(--office-text-muted,#6d7788);font-weight:400}
.office-print-history{display:flex;flex-wrap:wrap;gap:.5rem;padding:.5rem 0}.office-print-history-item{display:grid;gap:.1rem;min-width:9rem;text-align:left;border:1px solid var(--office-border,#d9dee7);background:var(--office-surface,#fff);border-radius:.7rem;padding:.55rem .7rem}.office-print-history-item.is-current{border-color:var(--office-primary,#2876d2)}

.office-workday-selector{display:flex;gap:.25rem;flex-wrap:wrap}.office-workday-selector .office-button{min-width:2.15rem;padding:.28rem .42rem}

/* r015 final audit: time tracking and dashboard */
.office-time-page > .office-worktime-control-card,
.office-time-page > .office-worktime-entries-card{margin-top:18px}
.office-worktime-control-card,.office-worktime-entries-card{display:grid;gap:18px}
.office-worktime-entries-heading{margin-bottom:2px}
.office-worktime-month-groups,.office-worktime-archive,.office-worktime-archive-year{display:grid;gap:12px}
.office-worktime-archive{margin-top:20px;padding-top:18px;border-top:1px solid var(--office-border)}
.office-worktime-archive-heading{display:flex;align-items:baseline;justify-content:space-between;gap:12px}
.office-worktime-archive-heading h3,.office-worktime-archive-year h4{margin:0}
.office-worktime-archive-year + .office-worktime-archive-year{margin-top:12px}
.office-worktime-month-group{overflow:hidden;border:1px solid var(--office-border);border-radius:12px;background:var(--office-surface)}
.office-worktime-month-heading{width:100%;min-height:48px;border:0;background:transparent;padding:10px 14px;display:flex;align-items:center;justify-content:space-between;gap:12px;text-align:left;color:inherit;font:inherit}
.office-worktime-month-heading:hover{background:var(--office-surface-soft)}
.office-worktime-month-title{display:inline-flex;align-items:center;gap:8px}
.office-worktime-month-chevron{width:16px;height:16px;transition:transform .18s ease}
.office-worktime-month-group.is-open .office-worktime-month-chevron{transform:rotate(90deg)}
.office-worktime-month-state{display:inline-flex;align-items:center;gap:8px}
.office-worktime-month-body{border-top:1px solid var(--office-border)}
.office-worktime-month-body .office-table-frame{border:0;border-radius:0}
.office-worktime-month-close{padding:12px 14px;display:flex;justify-content:flex-end;border-top:1px solid var(--office-border)}
.office-dashboard-time-actions-new{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;width:100%}
.office-dashboard-time-actions-new .office-time-action{width:100%;min-height:52px;justify-content:center;padding:0 14px;font-size:14px;font-weight:650}
.office-dashboard-time-summary{display:grid;grid-template-columns:1fr 1fr;border:1px solid var(--office-border);border-radius:10px;overflow:hidden;margin-top:12px}
.office-dashboard-time-summary>div{display:grid;gap:2px;padding:10px 12px}.office-dashboard-time-summary>div+div{border-left:1px solid var(--office-border)}
.office-dashboard-time-summary span{font-size:12px;color:var(--office-text-muted)}.office-dashboard-time-summary strong{font-size:13px;font-weight:650}
.office-dashboard-time-clock{transition:color .18s ease,background .18s ease,border-color .18s ease;border-radius:9px;padding:4px 7px}
.office-dashboard-time-clock.is-check-in{color:#167044;background:#edf8f1}.office-dashboard-time-clock.is-check-out{color:#b42318;background:#fff1f0}.office-dashboard-time-clock.is-pause{color:#795e00;background:#fff9df}
.office-project-diary-button{margin-left:auto}
@media(max-width:760px){.office-dashboard-time-actions-new{grid-template-columns:1fr}.office-dashboard-time-summary{grid-template-columns:1fr}.office-dashboard-time-summary>div+div{border-left:0;border-top:1px solid var(--office-border)}.office-worktime-month-heading{min-height:52px}.office-worktime-month-state{max-width:48%;justify-content:flex-end}}
.office-time-travel-details>summary{display:flex;align-items:center;justify-content:space-between;gap:12px;cursor:pointer}.office-time-travel-details>summary::marker{display:none}.office-time-travel-details>summary::-webkit-details-marker{display:none}.office-time-travel-details .office-details-chevron{margin-left:auto;transition:transform .18s ease}.office-time-travel-details[open] .office-details-chevron{transform:rotate(180deg)}
.office-email-cell{display:flex;align-items:center;justify-content:space-between;gap:10px;min-width:0}.office-email-cell>span:first-child{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.office-email-actions{display:inline-flex;align-items:center;gap:4px;margin-left:auto;flex:0 0 auto}.office-company-contact-detail{display:grid;gap:8px;width:100%}.office-company-contact-person{width:100%}.office-contact-person-group-row td{padding:0;background:var(--office-surface-soft)}.office-contact-person-group-toggle{width:100%;border:0;background:transparent;display:flex;align-items:center;gap:8px;min-height:42px;padding:8px 12px;text-align:left;color:inherit;font:inherit}.office-contact-person-group-toggle .office-svg-icon{transition:transform .18s ease}.office-contact-person-group-toggle .office-svg-icon.is-open{transform:rotate(90deg)}.office-contact-person-group-toggle small{margin-left:auto;color:var(--office-text-muted)}
.office-signature-logo-settings{display:flex;align-items:center;flex-wrap:wrap;gap:12px}.office-signature-logo-preview{display:flex;align-items:center;justify-content:center;min-width:180px;min-height:72px;padding:10px;border:1px solid var(--office-border);border-radius:10px;background:var(--office-surface-soft)}.office-signature-logo-preview img{max-width:220px;max-height:72px;object-fit:contain}.office-mail-settings-final-actions{gap:8px}

/* r015 final audit: actual print-template preview */
.office-print-preview-section{display:grid;gap:16px}
.office-print-preview-sheet{position:relative;width:min(100%,720px);aspect-ratio:210/297;margin:0 auto;border:1px solid var(--office-border);border-radius:10px;background:#fff;overflow:hidden;box-shadow:0 10px 28px rgba(21,31,43,.08)}
.office-print-preview-background{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;border:0;background:#fff}
.office-print-preview-background.is-pdf{z-index:1}
.office-print-preview-empty{position:absolute;inset:0;display:grid;place-items:center;color:var(--office-text-muted);font-size:13px;background:var(--office-surface-soft)}
.office-print-preview-sample{position:absolute;z-index:2;left:11%;right:11%;top:23%;display:grid;gap:6px;pointer-events:none;color:#20262d}
.office-print-preview-sample strong{font-size:20px}.office-print-preview-sample span{font-size:13px;color:#6f7881}
.office-print-preview-sheet footer{position:absolute;z-index:2;left:8%;right:8%;bottom:5%;padding-top:7px;border-top:1px solid #dce0e4;font-size:9px;color:#69727a;text-align:center;pointer-events:none}

.office-diary-photo-download-r015{justify-content:flex-start;gap:6px;font-size:.78rem;padding:2px 0}

/* r015 hotfix – Dashboard-Zeiterfassung: dieselben Buttonklassen wie im Modul.
   Diese Klasse steuert ausschließlich die Dashboard-Anordnung; die Buttonoptik
   stammt unverändert aus .office-module-action + .office-time-action. */
.office-dashboard-time-actions-layout {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(150px, 1fr));
    gap: 8px;
    width: 100%;
    margin: 0;
}
.office-dashboard-time-actions-layout .office-time-action {
    width: 100%;
    min-width: 0;
    justify-content: center;
}
@media (max-width: 760px) {
    .office-dashboard-time-actions-layout { grid-template-columns: 1fr; }
}

/* r015 final UI correction – dashboard time parity, project/offer action rows */
.office-dashboard-time-body-final {
    display: block;
}
.office-dashboard-time-actions-layout {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 8px;
    width: 100%;
    margin: 0;
    flex-wrap: nowrap;
}
.office-dashboard-time-actions-layout .office-time-action {
    width: 100%;
    min-width: 0;
    justify-content: center;
}
.office-dashboard-time-actions-layout .office-time-action:disabled {
    opacity: .46;
    cursor: default;
}
.office-project-actions-row {
    grid-template-columns: minmax(0, 1fr) 34px 34px 34px;
    grid-auto-flow: column;
    grid-auto-columns: 34px;
    flex-wrap: nowrap;
}
.office-offer-actions-row {
    grid-template-columns: minmax(0, 1fr) 34px 34px;
}
.office-project-diary-button {
    width: 34px;
    min-width: 34px;
    height: 34px;
    margin-left: 0;
    padding: 0;
    border: 1px solid #d2d6da;
    border-radius: 8px;
    display: inline-grid;
    place-items: center;
    background: #fff;
    color: #666d73;
    text-decoration: none;
}
.office-project-diary-button:hover {
    border-color: #bfc4c9;
    background: #f7f8f9;
    color: #4f565c;
}
.office-project-diary-button .office-svg-icon {
    width: 16px;
    height: 16px;
}
@media (max-width: 760px) {
    .office-dashboard-time-actions-layout { grid-template-columns: repeat(3, minmax(0, 1fr)); }
    .office-project-actions-row { grid-template-columns: minmax(0, 1fr) 32px 32px 32px; grid-auto-columns: 32px; }
    .office-offer-actions-row { grid-template-columns: minmax(0, 1fr) 32px 32px; }
    .office-project-diary-button { width: 32px; min-width: 32px; height: 32px; }
}
/* r015 final UI correction – keep all card actions on one row irrespective of optional buttons. */
.office-project-actions-row,
.office-offer-actions-row {
    display: flex;
    align-items: center;
    flex-wrap: nowrap;
    gap: 7px;
}
.office-project-actions-row .office-project-open-action,
.office-offer-actions-row .office-project-open-action {
    margin-right: auto;
    flex: 0 1 auto;
    white-space: nowrap;
}
.office-project-actions-row .office-pin-button,
.office-project-actions-row .office-project-diary-button,
.office-project-actions-row .office-context-menu-wrap,
.office-offer-actions-row .office-pin-button,
.office-offer-actions-row .office-context-menu-wrap {
    flex: 0 0 auto;
}

/* r015 dashboard harmony + sorting/pin final correction */
@media (min-width: 761px) {
    .office-dashboard-time-actions-layout {
        grid-template-columns: minmax(0, 1fr) minmax(112px, .72fr) minmax(0, 1.18fr);
        gap: 8px;
    }
}
.office-dashboard-time-actions-layout .office-time-action {
    min-height: 58px;
    height: 58px;
    padding: 9px 12px;
    border-radius: 10px;
    font-size: 12.5px;
    font-weight: 620;
    line-height: 1.2;
}
.office-dashboard-time-actions-layout .office-time-action.is-pause {
    padding-inline: 10px;
}
@media (max-width: 760px) {
    .office-dashboard-time-actions-layout {
        grid-template-columns: 1fr;
    }
}
.office-pin-button[aria-pressed="true"] {
    border-color: var(--office-primary);
    background: var(--office-primary);
    color: #fff;
}
.office-pin-button[aria-pressed="true"]:hover {
    border-color: var(--office-primary);
    background: color-mix(in srgb, var(--office-primary) 88%, #000);
    color: #fff;
}


/* r015 pin + first-row height correction (final local/web parity). */
/* Schnellzugriffe are anchors (content-box), while attendance mixes button/a.
   Force the attendance actions onto the same computed box model and dimensions. */
.office-dashboard-time-actions-layout .office-time-action {
    box-sizing: content-box;
    min-height: 58px;
    height: 58px;
    padding-top: 9px;
    padding-bottom: 9px;
}

/* Do not rely on framework bool-string casing for visual pinned state. */
.office-pin-button.is-pinned {
    border-color: var(--office-primary);
    background: var(--office-primary);
    color: #fff;
}
.office-pin-button.is-pinned:hover {
    border-color: var(--office-primary);
    background: color-mix(in srgb, var(--office-primary) 88%, #000);
    color: #fff;
}
.office-pin-button.is-pinned .is-outline { display: none; }
.office-pin-button.is-pinned .is-filled { display: inline-block; }

/* r015 final dashboard correction 2026-08-22
   Attendance actions use the exact visible height of the quick-access tiles.
   Keep only layout differences; status colors remain from .office-time-action. */
.office-dashboard-time-actions-layout .office-time-action {
    box-sizing: border-box;
    height: 78px;
    min-height: 78px;
    padding: 9px 11px;
    border-radius: 10px;
    font-size: 12.5px;
    font-weight: 620;
    line-height: 1.2;
}
@media (min-width: 761px) {
    .office-dashboard-time-actions-layout {
        grid-template-columns: minmax(0, 1fr) minmax(92px, .68fr) minmax(0, 1.18fr);
        gap: 8px;
    }
}
.office-dashboard-time-actions-layout .office-time-action.is-pause {
    padding-inline: 8px;
}

/* Restore the r014 visual pinned state: quiet pale-blue surface, not a solid fill. */
.office-pin-button.is-pinned,
.office-pin-button[aria-pressed="true"] {
    color: var(--office-primary);
    border-color: #b9c9d9;
    background: #f2f7fb;
}
.office-pin-button.is-pinned:hover,
.office-pin-button[aria-pressed="true"]:hover {
    color: var(--office-primary);
    border-color: #aebfd0;
    background: #eaf2f9;
}
.office-pin-button.is-pinned .is-outline,
.office-pin-button[aria-pressed="true"] .is-outline { display: none; }
.office-pin-button.is-pinned .is-filled,
.office-pin-button[aria-pressed="true"] .is-filled { display: inline-block; }

.office-offer-card.is-lost {
    background: color-mix(in srgb, var(--office-surface-soft) 82%, #e4e6e8);
    color: var(--office-text-muted);
}
/* Lost offers are visually muted, but controls/popovers must remain fully opaque and usable. */
.office-offer-card.is-lost .office-offer-card-head,
.office-offer-card.is-lost .office-offer-values { opacity: .62; }
.office-offer-card.is-lost .office-offer-card-head h3,
.office-offer-card.is-lost .office-offer-values strong { color: var(--office-text-muted); }
.office-offer-card.is-lost .office-project-actions-row,
.office-offer-card.is-lost .office-context-menu,
.office-offer-card.is-lost .office-popover { opacity: 1; color: var(--office-text); }

.office-lifecycle-list { display:grid; gap:8px; margin:12px 0 0; }
.office-lifecycle-item { display:grid; grid-template-columns:minmax(170px,.8fr) minmax(120px,.55fr) 1fr; gap:12px; align-items:center; padding:9px 11px; border:1px solid var(--office-border); border-radius:9px; background:var(--office-surface-soft); font-size:12.5px; }
.office-lifecycle-item strong { font-weight:650; }
.office-lifecycle-item span { color:var(--office-text-muted); }
@media(max-width:700px){.office-lifecycle-item{grid-template-columns:1fr;gap:3px}}

.office-archive-groups { display:grid; gap:16px; }
.office-archive-group { padding:0; overflow:hidden; }
.office-archive-group > .office-collection-heading { padding:16px 18px; }
.office-archive-group > .office-collapsible-body { padding:0 18px 18px; }


/* r015 final-final dashboard time height correction 2026-08-22.
   Match .office-quick-tile exactly: 58px border-box visible height. */
.office-dashboard-time-actions-layout .office-time-action {
    box-sizing: border-box;
    height: 58px;
    min-height: 58px;
    max-height: 58px;
    padding: 9px 11px;
    border-radius: 10px;
}


/* r015 dashboard time cleanup 2026-08-22: Pause belongs to the full worktime module.
   Dashboard keeps two balanced primary actions only. */
.office-dashboard-time-actions-layout {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 10px;
    width: 100%;
    align-items: center;
}
.office-dashboard-time-actions-layout .office-time-action {
    box-sizing: border-box;
    width: 100%;
    height: 58px;
    min-height: 58px;
    max-height: 58px;
    margin: 0;
    justify-content: center;
}
@media (max-width: 760px) {
    .office-dashboard-time-actions-layout { grid-template-columns: 1fr 1fr; }
}

/* r015 dashboard first-row proportion correction 2026-08-22.
   Two attendance actions no longer need half the dashboard width. */
@media (min-width: 1181px) {
    .office-dashboard-top-grid-compact {
        grid-template-columns: minmax(0, 2.4fr) minmax(430px, .72fr);
        gap: 18px;
    }
}


/* r015 dashboard time FINAL height parity 2026-08-22.
   .office-quick-tile uses min-height:58px content-box + 18px vertical padding + 2px border = 78px visible height.
   Dashboard attendance actions therefore use 78px border-box. */
.office-dashboard-time-actions-layout .office-time-action {
    box-sizing: border-box;
    height: 78px;
    min-height: 78px;
    max-height: 78px;
    padding: 9px 11px;
}


/* r015 definitive dashboard time parity: use the quick-tile component itself.
   No independent height/padding model remains for dashboard attendance actions. */
.office-dashboard-time-actions-layout .office-dashboard-time-quick-action {
    min-height: 58px;
    height: auto;
    max-height: none;
    padding: 9px 11px;
    box-sizing: content-box;
    grid-template-columns: 20px minmax(0, auto);
    justify-content: center;
    justify-items: center;
    align-items: center;
    column-gap: 8px;
    text-align: center;
}
.office-dashboard-time-actions-layout .office-dashboard-time-quick-action .office-svg-icon {
    width: 17px;
    height: 17px;
}
.office-dashboard-time-actions-layout .office-dashboard-time-quick-action > span:not(.office-svg-icon) {
    font-size: 12.5px;
    font-weight: 620;
    line-height: 1.2;
    white-space: nowrap;
}
.office-dashboard-time-actions-layout .office-dashboard-time-quick-action.is-check-in {
    background: color-mix(in srgb, #2f8a4b 11%, var(--office-surface));
    border-color: color-mix(in srgb, #2f8a4b 35%, var(--office-border));
    color: #276e3d;
}
.office-dashboard-time-actions-layout .office-dashboard-time-quick-action.is-check-out {
    background: var(--office-primary);
    border-color: var(--office-primary);
    color: #fff;
}
.office-dashboard-time-actions-layout .office-dashboard-time-quick-action.is-manual {
    background: var(--office-surface-soft);
    border-color: var(--office-border);
    color: var(--office-text);
}


/* r015 dashboard attendance definitive parity fix 2026-08-22.
   Dashboard actions deliberately do NOT use .office-time-action anymore.
   They mirror .office-quick-tile exactly and only add status colors. */
.office-dashboard-time-actions-layout .office-dashboard-time-quick-action {
    box-sizing: content-box;
    min-height: 57px;
    height: 57px;
    max-height: 57px;
    padding: 10px 12px;
    margin: 0;
    border-width: 1px;
    border-style: solid;
    border-radius: var(--office-radius-md);
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 9px;
    width: auto;
    text-align: center;
    line-height: normal;
}
.office-dashboard-time-actions-layout .office-dashboard-time-quick-action.is-check-in {
    background: color-mix(in srgb, #2f8a4b 11%, var(--office-surface));
    border-color: color-mix(in srgb, #2f8a4b 35%, var(--office-border));
    color: #276e3d;
}
.office-dashboard-time-actions-layout .office-dashboard-time-quick-action.is-check-out {
    background: var(--office-primary);
    border-color: var(--office-primary);
    color: #fff;
}
.office-dashboard-time-actions-layout .office-dashboard-time-quick-action.is-manual {
    background: #fff;
    border-color: var(--office-border);
    color: var(--office-text);
}

/* r015 FINAL dashboard first-row height lock.
   Quick access tiles and attendance actions share one exact border-box height.
   This rule is intentionally last in the stylesheet so legacy r015 hotfixes cannot override it. */
.office-quick-grid > .office-quick-tile,
.office-dashboard-time-actions-layout > .office-dashboard-time-quick-action {
    box-sizing: border-box;
    height: 78px;
    min-height: 78px;
    max-height: 78px;
    padding-top: 9px;
    padding-bottom: 9px;
    margin-top: 0;
    margin-bottom: 0;
    align-self: center;
}

/* r015 FINAL FINAL dashboard first-row alignment 2026-08-22.
   Restore quick-access tiles to their original r014 58px border-box height.
   Attendance actions use the identical 58px border-box height.
   The quick-access segmented pill makes its heading 5px taller (39px vs 34px),
   so the time body receives exactly 5px additional top padding to align both rows. */
.office-quick-grid > .office-quick-tile {
    box-sizing: border-box;
    height: 58px;
    min-height: 58px;
    max-height: 58px;
    padding: 9px 11px;
}
.office-dashboard-time-actions-layout > .office-dashboard-time-quick-action {
    box-sizing: border-box;
    height: 58px;
    min-height: 58px;
    max-height: 58px;
    padding: 9px 11px;
    margin: 0;
}
.office-time-panel .office-dashboard-time-body-final {
    padding-top: 17px;
}

/* r015 definitive dashboard row alignment: quick tabs are 39px, time heading is 30px.
   Quick content starts after 12px, therefore time actions need 12px + 9px = 21px. */
.office-time-panel .office-dashboard-time-body-final {
    padding-top: 21px;
}
.office-dashboard-time-actions-layout > .office-dashboard-time-quick-action {
    cursor: pointer;
}

/* r016 – Angebots-Konfigurator / Arbeitsmaske */
.office-offer-config-layout-r016{display:grid;grid-template-columns:220px minmax(0,1fr);gap:18px;align-items:start}
.office-offer-config-steps-r016{display:grid;gap:8px;position:sticky;top:18px}
.office-offer-config-step-r016{display:grid;grid-template-columns:30px 1fr;gap:10px;align-items:center;padding:10px 12px;border:1px solid var(--office-border,#dfe3e8);border-radius:10px;background:var(--office-surface,#fff);color:var(--office-muted,#68707a)}
.office-offer-config-step-r016>span{width:28px;height:28px;border-radius:50%;display:grid;place-items:center;border:1px solid currentColor;font-size:12px;font-weight:700}
.office-offer-config-step-r016.is-active{border-color:var(--office-primary,#0067c0);color:var(--office-primary,#0067c0);box-shadow:0 0 0 1px color-mix(in srgb,var(--office-primary,#0067c0) 10%,transparent)}
.office-offer-config-step-r016.is-done{color:var(--office-primary,#0067c0)}
.office-offer-config-card-r016{min-height:430px}
.office-offer-config-footer-r016{display:flex;justify-content:flex-end;gap:10px;margin-top:22px;padding-top:16px;border-top:1px solid var(--office-border,#e2e5e9)}
.office-offer-type-grid-r016{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin-top:6px}
.office-offer-type-card-r016,.office-offer-choice-r016,.office-offer-rate-r016{border:1px solid var(--office-border,#dfe3e8);background:var(--office-surface,#fff);border-radius:10px;padding:14px;text-align:left;cursor:pointer;transition:border-color .15s ease,box-shadow .15s ease,transform .15s ease}
.office-offer-type-card-r016:hover,.office-offer-choice-r016:hover,.office-offer-rate-r016:hover{border-color:var(--office-primary,#0067c0)}
.office-offer-type-card-r016.is-selected,.office-offer-choice-r016.is-selected,.office-offer-rate-r016.is-selected{border-color:var(--office-primary,#0067c0);box-shadow:0 0 0 2px color-mix(in srgb,var(--office-primary,#0067c0) 14%,transparent)}
.office-offer-type-card-r016 strong,.office-offer-type-card-r016 small{display:block}.office-offer-type-card-r016 small{margin-top:4px;color:var(--office-muted,#6b7280)}
.office-offer-cost-actions-r016{display:flex;justify-content:space-between;align-items:center;margin:14px 0}
.office-offer-zone-grid-r016{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin-bottom:18px}.office-offer-choice-r016 strong,.office-offer-choice-r016 span{display:block}.office-offer-choice-r016 span{margin-top:3px;color:var(--office-muted,#6b7280);font-size:12px}
.office-offer-rate-list-r016{display:grid;gap:8px}.office-offer-rate-r016{display:flex;align-items:center;justify-content:space-between}.office-offer-rate-r016 strong{font-variant-numeric:tabular-nums}
.office-offer-config-adjustments-r016{margin-top:16px}.office-offer-cost-dialog-r016{width:min(720px,calc(100vw - 28px))}
.office-offer-workspace-r016>.office-dashboard-panel,.office-offer-workspace-r016 .office-offer-section-stack-r016>.office-dashboard-panel{margin-bottom:14px}
.office-offer-section-stack-r016{display:grid;gap:14px}.office-offer-section-title-input-r016{font-size:18px;font-weight:700;min-width:min(520px,60vw)}
.office-offer-hoai-summary-r016{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:10px;margin:12px 0 14px}.office-offer-hoai-summary-r016>div{padding:10px 12px;border:1px solid var(--office-border,#e1e5e9);border-radius:9px;background:var(--office-surface-soft,#f8f9fb)}.office-offer-hoai-summary-r016 span,.office-offer-hoai-summary-r016 strong{display:block}.office-offer-hoai-summary-r016 span{font-size:11px;color:var(--office-muted,#6b7280);margin-bottom:3px}
.office-offer-section-commercial-r016{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:10px;margin-top:14px}.office-offer-add-block-r016{width:100%;justify-content:center;margin:0 0 14px}
.office-offer-special-row-r016{display:grid;grid-template-columns:1fr 2fr 150px 40px;gap:10px;align-items:end;padding:10px 0;border-bottom:1px solid var(--office-border,#eceef1)}
.office-offer-inline-actions-r016{margin-top:12px}.office-offer-advanced-toggle-r016{margin-top:12px}.office-offer-advanced-r016{margin-top:10px}
.office-offer-final-totals-r016{width:min(520px,100%);margin:18px 0 0 auto;display:grid;gap:6px}.office-offer-final-totals-r016>div{display:flex;justify-content:space-between;gap:20px;padding:6px 0;border-bottom:1px solid var(--office-border,#eceef1)}.office-offer-final-totals-r016 .is-grand{font-size:18px;border-top:2px solid currentColor;border-bottom:0;padding-top:10px;margin-top:4px}
.office-offer-pdf-dialog-r016{width:min(1180px,calc(100vw - 28px));max-width:none}.office-offer-pdf-layout-r016{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(340px,.75fr);gap:16px;min-height:68vh}.office-offer-pdf-preview-r016{border:1px solid var(--office-border,#dfe3e8);border-radius:10px;overflow:hidden;background:#eef1f4}.office-offer-pdf-preview-r016 object{width:100%;height:68vh;display:block}.office-offer-pdf-settings-r016{display:grid;gap:12px;align-content:start}
.office-offer-import-dialog-r016{width:min(760px,calc(100vw - 28px))}.office-offer-import-list-r016{display:grid;gap:7px;margin-top:14px;padding:12px;border:1px solid var(--office-border,#dfe3e8);border-radius:10px}
@media(max-width:980px){.office-offer-config-layout-r016{grid-template-columns:1fr}.office-offer-config-steps-r016{position:static;grid-template-columns:repeat(4,minmax(0,1fr))}.office-offer-config-step-r016{grid-template-columns:26px 1fr;padding:8px}.office-offer-hoai-summary-r016{grid-template-columns:repeat(2,minmax(0,1fr))}.office-offer-section-commercial-r016{grid-template-columns:repeat(2,minmax(0,1fr))}.office-offer-pdf-layout-r016{grid-template-columns:1fr}.office-offer-pdf-preview-r016 object{height:52vh}}
@media(max-width:640px){.office-offer-type-grid-r016,.office-offer-zone-grid-r016{grid-template-columns:1fr}.office-offer-config-steps-r016{display:flex;overflow-x:auto}.office-offer-config-step-r016{min-width:150px}.office-offer-hoai-summary-r016,.office-offer-section-commercial-r016{grid-template-columns:1fr}.office-offer-special-row-r016{grid-template-columns:1fr}.office-offer-section-title-input-r016{min-width:0;width:100%}.office-offer-pdf-dialog-r016{width:calc(100vw - 12px)}.office-offer-pdf-layout-r016{min-height:0}.office-offer-pdf-preview-r016 object{height:46vh}}

/* r016 – Rechnungen: creation order, inline PDF preview and action-menu polish. */
.office-invoice-type-popover{width:100%;min-width:100%;max-width:100%;box-sizing:border-box}
.office-invoice-row-popover{min-width:250px}
.office-invoice-preview-dialog-r016{width:min(1120px,calc(100vw - 28px));max-width:none;max-height:calc(100vh - 28px);overflow:hidden}
.office-invoice-preview-body-r016{padding:0;background:#eef1f4;min-height:68vh}
.office-invoice-preview-body-r016 object{display:block;width:100%;height:68vh;border:0;background:#eef1f4}
.office-invoice-payment-dialog .office-dialog-inline-actions{margin-top:16px;padding-top:2px}
@media(max-width:760px){.office-invoice-preview-dialog-r016{width:calc(100vw - 12px);max-height:calc(100vh - 12px)}.office-invoice-preview-body-r016{min-height:52vh}.office-invoice-preview-body-r016 object{height:52vh}}


/* r016 – Zeiterfassung / Urlaub */
.office-leave-settings-button{width:44px;min-width:44px;height:44px;border:1px solid var(--office-border-strong);border-radius:var(--office-radius-md);background:var(--office-surface);color:var(--office-text-secondary);box-shadow:none}
.office-leave-settings-button:hover{border-color:#bcc2c8;background:var(--office-hover);color:var(--office-text)}
.office-leave-month{padding:9px}
.office-leave-calendar-row{grid-template-columns:22px repeat(7,minmax(0,1fr));gap:2px}
.office-leave-weekdays{grid-template-columns:22px repeat(7,minmax(0,1fr))}
.office-leave-weekdays span{font-size:10.5px}
.office-leave-week-number{font-size:9.5px}
.office-leave-day{min-height:36px;padding:3px 2px 11px;border-radius:6px;font-size:12.5px;font-variant-numeric:tabular-nums}
.office-leave-day>span:first-child{position:relative;z-index:1;font-weight:500}
.office-leave-person-markers{left:2px;right:2px;bottom:3px;display:grid;gap:1px;justify-content:stretch}
.office-leave-person-markers i{display:block;width:auto;height:3px;min-width:0;border-radius:2px;background:var(--leave-marker-color);box-shadow:none}
.office-leave-person-markers i.continues-before{margin-left:-4px;border-top-left-radius:0;border-bottom-left-radius:0}
.office-leave-person-markers i.continues-after{margin-right:-4px;border-top-right-radius:0;border-bottom-right-radius:0}
.office-leave-day.is-overlap::after{width:5px;height:5px;right:3px;top:3px}
@media(max-width:980px){.office-leave-day{min-height:35px;font-size:12px}}
@media(max-width:700px){.office-leave-month{padding:8px}.office-leave-calendar-row{gap:2px}.office-leave-day{min-height:38px;font-size:13px}.office-leave-person-markers i{height:4px}}

/* r016 WeatherAPI */
.office-weather-api-icon{width:34px;height:34px;object-fit:contain;flex:0 0 auto}.office-weather-api-icon.is-table{width:28px;height:28px}.office-weather-source-r016{display:block;margin-top:6px;color:var(--office-text-muted);font-size:.75rem;line-height:1.35}.office-weather-source-r016 a{color:inherit;text-decoration:underline;text-underline-offset:2px}.office-diary-weather-cell-r016{display:inline-flex;align-items:center;gap:7px;min-width:0}.office-diary-weather-cell-r016 .office-svg-icon{width:20px;height:20px;opacity:.7}.office-settings-note{font-size:.82rem;line-height:1.45;color:var(--office-text-muted);padding:11px 13px;border:1px solid var(--office-border);border-radius:10px;background:var(--office-surface-soft)}.office-settings-note a{color:inherit;text-decoration:underline;text-underline-offset:2px}

.office-weather-local-icon{width:28px;height:28px;display:block;object-fit:contain;opacity:.86}.office-weather-local-icon.is-table{width:22px;height:22px;flex:0 0 22px}

.office-weather-local-icon.is-option{width:20px;height:20px;flex:0 0 20px}


/* r016 dashboard pin hotfix – only project/offer pin interaction. */
.office-project-actions-row .office-pin-button,
.office-offer-actions-row .office-pin-button {
    cursor: pointer;
    transition:
        transform 150ms var(--office-ease-out),
        border-color var(--office-motion-fast) var(--office-ease-out),
        background-color var(--office-motion-fast) var(--office-ease-out),
        color var(--office-motion-fast) var(--office-ease-out),
        box-shadow var(--office-motion-fast) var(--office-ease-out);
}
.office-project-actions-row .office-pin-button:hover,
.office-offer-actions-row .office-pin-button:hover {
    border-color: color-mix(in srgb, var(--office-primary) 34%, var(--office-border));
    background: color-mix(in srgb, var(--office-primary) 8%, var(--office-surface));
    color: var(--office-primary);
    box-shadow: 0 1px 4px rgba(15, 108, 189, .10);
}
.office-project-actions-row .office-pin-button:active,
.office-offer-actions-row .office-pin-button:active {
    transform: scale(.94);
}
.office-project-actions-row .office-pin-button.is-pin-feedback,
.office-offer-actions-row .office-pin-button.is-pin-feedback {
    animation: office-pin-feedback 210ms var(--office-ease-out);
}
@keyframes office-pin-feedback {
    0% { transform: scale(1); }
    48% { transform: scale(.88); }
    100% { transform: scale(1); }
}
.office-project-actions-row .office-pin-button.is-pinned:hover,
.office-offer-actions-row .office-pin-button.is-pinned:hover,
.office-project-actions-row .office-pin-button[aria-pressed="true"]:hover,
.office-offer-actions-row .office-pin-button[aria-pressed="true"]:hover {
    border-color: var(--office-primary);
    background: color-mix(in srgb, var(--office-primary) 86%, #000);
    color: #fff;
}
@media (prefers-reduced-motion: reduce) {
    .office-project-actions-row .office-pin-button,
    .office-offer-actions-row .office-pin-button {
        transition: none;
        animation: none;
    }
}

/* r016 final UI corrections: notification center, stamp feedback, dashboard links. */
.office-dashboard-section-title-link {
    color: inherit;
    text-decoration: none;
    border-radius: 5px;
    transition: color 140ms ease, background-color 140ms ease;
}
.office-dashboard-section-title-link:hover { color: var(--office-primary); }
.office-dashboard-section-title-link:focus-visible { outline: 2px solid color-mix(in srgb,var(--office-primary) 38%,transparent); outline-offset: 3px; }

.office-notification-link { position: relative; }
.office-notification-icon-wrap { position: relative; display:inline-flex; align-items:center; justify-content:center; flex:0 0 auto; }
.office-notification-icon-wrap > .office-svg-icon { display:block; }
.office-notification-badge {
    top: -6px;
    right: -8px;
    min-width: 16px;
    height: 16px;
    padding: 0 3px;
    border-width: 2px;
    font-size: 8.5px;
    box-shadow: 0 1px 2px rgba(0,0,0,.14);
    pointer-events:none;
}

.office-message-center { padding:0; overflow:visible; }
.office-message-center-heading { display:flex; align-items:center; justify-content:space-between; gap:16px; padding:18px 20px 14px; border-bottom:1px solid var(--office-border); }
.office-message-center-heading > div { min-width:0; }
.office-message-center-heading h2 { margin:0; font-size:16px; font-weight:650; }
.office-message-center-heading p { margin:3px 0 0; color:var(--office-text-muted); font-size:12px; }
.office-message-count { min-width:30px; height:26px; padding:0 8px; border:1px solid var(--office-border); border-radius:999px; display:inline-flex; align-items:center; justify-content:center; background:var(--office-surface-soft); color:var(--office-text-muted); font-size:12px; font-weight:650; }
.office-message-list { display:grid; }
.office-message-item { position:relative; display:grid; grid-template-columns:minmax(0,1fr) auto; align-items:stretch; border-bottom:1px solid var(--office-border); background:var(--office-surface); transition:background-color 140ms ease; }
.office-message-item:last-child { border-bottom:0; }
.office-message-item:hover { background:var(--office-surface-soft); }
.office-message-item.is-unread { background:color-mix(in srgb,var(--office-primary) 4.5%,var(--office-surface)); box-shadow:inset 3px 0 0 var(--office-primary); }
.office-message-item.is-unread:hover { background:color-mix(in srgb,var(--office-primary) 7%,var(--office-surface)); }
.office-message-open { appearance:none; width:100%; min-width:0; border:0; padding:15px 8px 15px 20px; background:transparent; color:inherit; display:grid; grid-template-columns:36px minmax(0,1fr) 18px 18px; align-items:center; gap:12px; text-align:left; cursor:pointer; font:inherit; }
.office-message-open:focus-visible { outline:2px solid color-mix(in srgb,var(--office-primary) 38%,transparent); outline-offset:-3px; }
.office-message-type-icon { width:34px; height:34px; border:1px solid var(--office-border); border-radius:9px; display:inline-flex; align-items:center; justify-content:center; background:var(--office-surface); color:var(--office-text-muted); }
.office-message-type-icon .office-svg-icon { width:17px; height:17px; }
.office-message-item.is-unread .office-message-type-icon { border-color:color-mix(in srgb,var(--office-primary) 26%,var(--office-border)); background:color-mix(in srgb,var(--office-primary) 8%,var(--office-surface)); color:var(--office-primary); }
.office-message-body { min-width:0; display:grid; gap:4px; }
.office-message-meta { display:flex; align-items:center; gap:8px; flex-wrap:wrap; color:var(--office-text-muted); font-size:11px; line-height:1.25; }
.office-message-type { font-weight:650; color:var(--office-text-muted); }
.office-message-title { min-width:0; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; font-size:13.5px; font-weight:600; line-height:1.35; }
.office-message-item.is-unread .office-message-title { font-weight:700; }
.office-message-text { color:var(--office-text-muted); font-size:12px; line-height:1.45; display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden; }
.office-message-state { width:18px; height:18px; display:flex; align-items:center; justify-content:center; }
.office-message-state i { width:7px; height:7px; border-radius:999px; background:#c7cbd0; }
.office-message-item.is-unread .office-message-state i { width:8px; height:8px; background:var(--office-primary); box-shadow:0 0 0 3px color-mix(in srgb,var(--office-primary) 10%,transparent); }
.office-message-chevron { display:flex; align-items:center; justify-content:center; color:var(--office-text-muted); opacity:.7; }
.office-message-chevron .office-svg-icon { width:14px; height:14px; }
.office-message-actions { display:flex; align-items:center; padding:0 12px 0 2px; }
.office-message-empty { min-height:190px; }
.office-message-empty > .office-svg-icon { width:25px; height:25px; color:var(--office-text-muted); opacity:.7; margin-bottom:5px; }

/* Shared success feedback for dashboard and module time stamping. Status colors and icon sizes stay untouched. */
.office-time-action.is-time-recorded,
.office-dashboard-time-quick-action.is-time-recorded {
    position:relative;
    overflow:hidden;
    isolation:isolate;
}
.office-time-action.is-time-recorded::before,
.office-dashboard-time-quick-action.is-time-recorded::before {
    content:"";
    position:absolute;
    inset:0;
    z-index:0;
    transform:scaleX(0);
    transform-origin:left center;
    background:color-mix(in srgb,currentColor 15%,transparent);
    animation:office-time-recorded-fill 620ms cubic-bezier(.2,.8,.25,1) forwards;
    pointer-events:none;
}
.office-time-action.is-time-recorded > *,
.office-dashboard-time-quick-action.is-time-recorded > * { position:relative; z-index:1; }
@keyframes office-time-recorded-fill { 0%{transform:scaleX(0)} 72%{transform:scaleX(1)} 100%{transform:scaleX(1);opacity:.72} }

.office-dashboard-time-clock.is-stamp-pulse,
.office-worktime-live-clock.is-stamp-pulse { animation:office-stamp-clock-pulse 520ms cubic-bezier(.2,.85,.25,1); }
.office-worktime-live-clock.is-check-in { color:#167044; background:#edf8f1; border-radius:8px; padding:5px 8px; }
.office-worktime-live-clock.is-check-out { color:#b42318; background:#fff1f0; border-radius:8px; padding:5px 8px; }
.office-worktime-live-clock.is-check-in strong,
.office-worktime-live-clock.is-check-out strong { color:inherit; }
@keyframes office-stamp-clock-pulse { 0%{transform:scale(1)} 38%{transform:scale(1.045)} 100%{transform:scale(1)} }

@media (max-width:760px) {
    .office-message-center-heading { padding:15px 14px 12px; }
    .office-message-open { padding:13px 4px 13px 14px; grid-template-columns:32px minmax(0,1fr) 14px; gap:9px; }
    .office-message-type-icon { width:31px; height:31px; border-radius:8px; }
    .office-message-state { display:none; }
    .office-message-actions { padding-right:6px; }
    .office-message-title { white-space:normal; }
}
@media (prefers-reduced-motion:reduce) {
    .office-time-action.is-time-recorded::before,
    .office-dashboard-time-quick-action.is-time-recorded::before,
    .office-dashboard-time-clock.is-stamp-pulse,
    .office-worktime-live-clock.is-stamp-pulse { animation-duration:1ms; }
}

.office-offer-card[data-office-open-href]{cursor:pointer}
.office-time-action.is-time-recorded:disabled,.office-dashboard-time-quick-action.is-time-recorded:disabled{opacity:1}

/* r016 final correction round – compact dialogs, contact alignment and offer UI polish */
.office-leave-command-actions{display:flex;align-items:center;gap:10px}
.office-leave-command-actions>.office-button,.office-leave-command-actions>.office-icon-button{min-height:44px}
.office-leave-command-actions>.office-button{justify-content:center}

.office-email-cell{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:8px;width:100%}
.office-email-actions{display:inline-flex;align-items:center;justify-content:flex-end;gap:4px}
.office-company-contact-detail-row td{background:var(--office-surface-soft);vertical-align:middle}
.office-company-contact-person-name{display:grid;gap:2px;padding-left:8px}
.office-company-contact-person-name small{color:var(--office-text-muted)}
.office-contact-person-group-toggle>.office-svg-icon{width:16px;height:16px;flex:0 0 16px}
.office-contact-count-chevron{width:14px;height:14px}

.office-invoice-editor-grid-r016{grid-template-columns:repeat(6,minmax(0,1fr))}
.office-invoice-span-2-r016{grid-column:span 2}
.office-invoice-span-3-r016{grid-column:span 3}
.office-invoice-span-4-r016{grid-column:span 4}
.office-invoice-span-6-r016{grid-column:1/-1}
.office-invoice-import-dialog{max-height:calc(100vh - 28px);overflow:hidden}
.office-invoice-import-dialog>form{min-height:0;display:flex;flex-direction:column;overflow:hidden}
.office-invoice-import-dialog .office-dialog-body{overflow:auto}
@media(max-width:900px){
  .office-invoice-editor-grid-r016{grid-template-columns:repeat(2,minmax(0,1fr))}
  .office-invoice-span-2-r016,.office-invoice-span-3-r016,.office-invoice-span-4-r016{grid-column:span 1}
  .office-invoice-span-6-r016{grid-column:1/-1}
}
@media(max-width:640px){
  .office-invoice-editor-grid-r016{grid-template-columns:1fr}
  .office-invoice-span-2-r016,.office-invoice-span-3-r016,.office-invoice-span-4-r016,.office-invoice-span-6-r016{grid-column:1}
}

.office-offer-cost-actions-r016>.office-button{min-height:40px}
.office-offer-cost-dialog-r016{width:min(1180px,calc(100vw - 28px))}
.office-offer-cost-edit-row-r016 input,.office-offer-cost-edit-row-r016 select,
.office-offer-phase-row-r016 input,.office-offer-summary-row-r016 input,.office-offer-summary-row-r016 select,
.office-offer-special-table-row-r016 input,.office-offer-special-table-row-r016 select{
  width:100%;min-height:38px;padding:0 10px;border:1px solid var(--office-border-strong);border-radius:8px;
  background:var(--office-surface);color:var(--office-text);font:inherit;box-sizing:border-box
}
.office-table-number-input-r016{text-align:right;font-variant-numeric:tabular-nums}
.office-table-text-input-r016{min-width:190px}
.office-offer-phase-row-r016 td{padding-top:9px;padding-bottom:9px}
.office-offer-summary-row-r016 td{padding-top:8px;padding-bottom:8px;vertical-align:middle}
.office-offer-summary-row-r016.is-strong td{font-weight:700;background:var(--office-surface-soft)}
.office-offer-summary-row-r016.is-grand td{font-weight:750;border-top:2px solid var(--office-border-strong);font-size:15px}
.office-offer-adjustment-input-r016{display:grid;grid-template-columns:minmax(90px,1fr) 72px;gap:6px}
.office-offer-section-heading-r016>div{display:grid;grid-template-columns:auto minmax(280px,1fr);align-items:center;gap:16px;flex:1}
.office-offer-section-heading-r016 .office-panel-kicker{white-space:nowrap}
.office-offer-section-title-input-r016{min-height:42px;padding:0 12px;border:1px solid var(--office-border-strong);border-radius:8px;background:var(--office-surface)}
.office-offer-section-delete-r016{flex:0 0 auto;gap:7px}
.office-offer-section-description-r016{margin:14px 0 18px}
.office-offer-section-commercial-r016 input,.office-offer-section-commercial-r016 select{
  min-height:40px;border:1px solid var(--office-border-strong);border-radius:8px;background:var(--office-surface)
}
.office-offer-section-total-r016{display:grid;grid-template-columns:1fr auto;align-items:center;gap:24px;margin-top:12px;padding:12px 14px;border-top:1px solid var(--office-border);background:var(--office-surface-soft)}
.office-offer-section-total-r016 span{text-align:right;color:var(--office-text-secondary);font-weight:600}
.office-offer-section-total-r016 strong{min-width:150px;text-align:right;font-size:16px;font-variant-numeric:tabular-nums}
.office-offer-special-heading-r016{margin-bottom:18px}
.office-offer-special-heading-r016 .office-button{margin-left:18px}
.office-offer-advanced-toggle-r016{margin-top:14px;gap:8px}
.office-offer-history-r016{display:grid;gap:10px}
.office-status-history-item{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.office-status-history-item>span:last-child{color:var(--office-text-secondary);font-weight:400}
.office-history-row{gap:12px}
@media(max-width:760px){
  .office-offer-section-heading-r016>div{grid-template-columns:1fr}
  .office-offer-section-delete-r016 span:last-child{display:none}
  .office-offer-cost-dialog-r016{width:calc(100vw - 12px)}
}


.office-offer-workspace-r016 .office-offer-add-block-r016,
.office-offer-workspace-r016 .office-offer-inline-actions-r016>.office-button,
.office-offer-workspace-r016 .office-settings-section-heading>.office-button{min-height:44px}
.office-offer-workspace-r016 .office-table-frame input[type="number"],
.office-offer-workspace-r016 .office-table-frame input[type="text"],
.office-offer-workspace-r016 .office-table-frame select{
  min-height:38px;padding:0 9px;border:1px solid var(--office-border-strong);border-radius:8px;background:var(--office-surface);color:var(--office-text);font:inherit;box-sizing:border-box
}

/* r016 final audit correction – exact contact chevrons, Phase0-style costs and shared lifecycle layout */
.office-contact-person-group-toggle>.office-svg-icon{width:14px;height:14px;flex-basis:14px}
.office-offer-cost-dialog-r016 .office-table-frame td{vertical-align:middle}
.office-offer-cost-dialog-r016 .office-offer-percent-cell-r016{display:grid;grid-template-columns:minmax(70px,1fr) auto;align-items:center;gap:6px}
.office-offer-cost-dialog-r016 .office-offer-percent-cell-r016>span{color:var(--office-text-muted);font-weight:600}
.office-offer-cost-building-row-r016 td{background:var(--office-surface-soft)}
.office-status-history-list{display:grid;gap:10px}
.office-status-history-item{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.office-status-history-item>span:last-child{color:var(--office-text-secondary);font-weight:400}

/* r017 offers: project-related / flat list switch */
.office-offer-list-viewbar{display:flex;justify-content:flex-end;margin:-4px 0 14px}.office-offer-project-group-row>td{padding:0;background:var(--office-surface-soft)}.office-offer-project-group-content{display:flex;align-items:center;min-height:44px;padding:8px 14px;gap:8px}.office-offer-project-group-chevron{display:grid;place-items:center;width:26px;height:26px;padding:0;border:0;background:transparent;color:var(--office-text-muted);cursor:pointer;border-radius:7px}.office-offer-project-group-chevron:hover{background:var(--office-hover)}.office-offer-project-group-chevron .office-svg-icon{width:14px;height:14px;transition:transform .16s ease}.office-offer-project-group-chevron .office-svg-icon.is-open{transform:rotate(90deg)}.office-offer-project-group-title{color:var(--office-text);font-weight:700;text-decoration:none}.office-offer-project-group-title:hover{text-decoration:none;color:var(--office-primary)}.office-offer-project-group-content small{margin-left:auto;color:var(--office-text-muted);font-size:12px;font-weight:500}.office-offer-project-empty-row td{padding:8px 48px;background:var(--office-surface)}
.office-project-offers-heading{align-items:center}.office-project-offers-heading>.office-button{margin-left:auto;flex:0 0 auto}
.office-offer-cost-action-buttons-r017{display:flex;flex-wrap:wrap;gap:8px}.office-offer-project-cost-source-r017{display:grid;grid-template-columns:minmax(280px,1fr) minmax(260px,1fr);gap:14px;align-items:end;margin-bottom:16px}.office-offer-project-cost-source-r017 p{margin:0 0 9px;color:var(--office-text-muted)}


/* ========================================================================== */
/* r017 final Office-UI refinement                                            */
/* ========================================================================== */

/* Dialogs: guaranteed mount animation (Phase0-like, but in Office motion language). */
.office-dialog-layer.is-open .office-dialog {
    animation: office-r017-dialog-enter 220ms cubic-bezier(.16,.84,.24,1) both;
}
.office-dialog-layer.is-open .office-dialog-scrim {
    animation: office-r017-dialog-scrim 180ms ease-out both;
}
@keyframes office-r017-dialog-enter {
    from { opacity:0; transform:translate3d(0,10px,0) scale(.985); }
    to { opacity:1; transform:translate3d(0,0,0) scale(1); }
}
@keyframes office-r017-dialog-scrim { from { opacity:0; } to { opacity:1; } }


/* Full-page create/edit workflows use the same restrained entrance motion as dialogs. */
.office-page-enter-r017 {
    animation:office-r017-page-enter 240ms cubic-bezier(.16,.84,.24,1) both;
    transform-origin:50% 18%;
}
@keyframes office-r017-page-enter {
    from { opacity:0; transform:translate3d(0,8px,0) scale(.993); }
    to { opacity:1; transform:translate3d(0,0,0) scale(1); }
}

/* Module/action buttons share one 42 px desktop action height. Dashboard and
   the attendance command buttons intentionally keep their established sizes. */
.office-time-list-actions > .office-button,
.office-dialog-footer > .office-button,
.office-page-heading .office-button,
.office-settings-section-heading > .office-button,
.office-context-actions > .office-button,
.office-button.office-module-action-button {
    min-height:42px;
    height:42px;
    box-sizing:border-box;
}
.office-time-list-actions > .office-button { align-self:center; }

/* Notification icon must remain visible on mobile even without a badge. */
.office-notification-icon-wrap > .office-svg-icon { display:inline-block; }
@media (max-width:920px) {
    .office-notification-link { display:inline-flex; visibility:visible; }
    .office-notification-link > .office-notification-icon-wrap { display:inline-flex; }
    .office-notification-link .office-notification-icon-wrap > .office-svg-icon { display:inline-block; }
}

/* Stamp feedback keeps the clock typography physically stable. Only the
   surrounding surface and clock glyph animate. */
.office-dashboard-time-clock.is-stamp-pulse,
.office-worktime-live-clock.is-stamp-pulse {
    transform:none;
    animation:office-r017-stamp-surface 720ms cubic-bezier(.2,.82,.25,1);
}
.office-dashboard-time-clock.is-stamp-pulse .office-svg-icon,
.office-worktime-live-clock.is-stamp-pulse .office-svg-icon {
    animation:office-r017-clock-tick 720ms cubic-bezier(.2,.82,.25,1);
}
.office-dashboard-time-clock.is-stamp-pulse strong,
.office-worktime-live-clock.is-stamp-pulse strong {
    transform:none;
}
@keyframes office-r017-stamp-surface {
    0% { box-shadow:0 0 0 0 rgba(15,108,189,0); }
    38% { box-shadow:0 0 0 4px rgba(15,108,189,.10); }
    100% { box-shadow:0 0 0 0 rgba(15,108,189,0); }
}
@keyframes office-r017-clock-tick {
    0%,100% { transform:rotate(0deg); }
    32% { transform:rotate(-8deg); }
    62% { transform:rotate(7deg); }
}
.office-time-action.is-time-recorded::before,
.office-dashboard-time-quick-action.is-time-recorded::before {
    animation-duration:900ms;
}

@media (prefers-reduced-motion:reduce) {
    .office-dialog-layer.is-open .office-dialog,
    .office-dialog-layer.is-open .office-dialog-scrim,
    .office-dashboard-time-clock.is-stamp-pulse,
    .office-worktime-live-clock.is-stamp-pulse,
    .office-dashboard-time-clock.is-stamp-pulse .office-svg-icon,
    .office-worktime-live-clock.is-stamp-pulse .office-svg-icon,
    .office-page-enter-r017 { animation-duration:1ms; }
}


/* r017 final contact/message/worktime/leave polish */
.office-contacts-page .office-company-contact-detail-row td {
    padding:var(--office-table-cell-y) var(--office-table-cell-x);
    vertical-align:middle;
}
.office-contacts-page .office-company-contact-person-name {
    padding-left:0;
    align-content:center;
}
.office-contacts-page .office-contact-count {
    width:100%;
    justify-content:space-between;
    gap:12px;
}
.office-contacts-page .office-contact-count-chevron {
    margin-left:auto;
    flex:0 0 14px;
}
.office-project-contacts-panel .office-project-email-cell {
    display:grid;
    grid-template-columns:minmax(0,1fr) auto;
    align-items:center;
    gap:10px;
}
.office-project-contacts-panel .office-project-email-cell .office-email-actions {
    display:inline-flex;
    flex-wrap:nowrap;
    align-items:center;
    justify-content:flex-end;
    gap:4px;
    margin-left:0;
}
.office-message-open {
    grid-template-columns:36px minmax(0,1fr) 18px;
}
.office-message-chevron { display:none; }
.office-worktime-month-group .office-worktime-month-close {
    padding-top:16px;
    padding-bottom:16px;
}
@media(max-width:700px){
    .office-message-open { grid-template-columns:32px minmax(0,1fr); }
    .office-message-state { display:none; }
}

/* r018 Bautagebuch desktop refinement */
.office-diary-meta-r015 .office-form-grid-three{align-items:end}
.office-weather-source-row-r018{display:flex;flex-wrap:wrap;gap:8px 16px;margin-top:12px;padding-top:10px;border-top:1px solid var(--office-border);color:var(--office-text-muted);font-size:.75rem;line-height:1.35}
.office-weather-popover-head .office-button.is-compact{min-height:34px;padding:6px 10px}
.office-diary-company-add-r018{display:grid;grid-template-columns:minmax(220px,1.2fr) 120px minmax(200px,1fr) auto;gap:10px;align-items:end;margin-top:14px;padding-top:14px;border-top:1px solid var(--office-border)}
.office-diary-company-add-r018>.office-button{min-height:42px}
.office-diary-note-lines-r018{display:grid;gap:9px}
.office-diary-note-row-r018{display:grid;grid-template-columns:28px minmax(0,1fr) 38px;align-items:center;gap:8px}
.office-diary-note-row-r018>span{font-size:.78rem;color:var(--office-text-muted);text-align:center;font-variant-numeric:tabular-nums}
.office-diary-note-row-r018 .office-input{min-height:42px}
.office-diary-note-actions-r018{display:flex;justify-content:flex-end;align-items:center;gap:10px;margin-top:14px;padding-top:12px;border-top:1px solid var(--office-border)}
.office-diary-photo-panel-r015 .office-settings-section-heading{gap:18px;margin-bottom:18px}
.office-diary-photo-panel-r015 .office-settings-section-heading .office-button{flex:0 0 auto}
@media(max-width:980px){.office-diary-company-add-r018{grid-template-columns:1fr 110px}.office-diary-company-add-r018 .office-field:nth-child(3){grid-column:1/-1}.office-diary-company-add-r018>.office-button{grid-column:1/-1}}
@media(max-width:640px){.office-diary-company-add-r018{grid-template-columns:1fr}.office-diary-company-add-r018 .office-field:nth-child(3),.office-diary-company-add-r018>.office-button{grid-column:auto}.office-diary-note-actions-r018{align-items:stretch;flex-direction:column}.office-diary-note-actions-r018 .office-button{width:100%;justify-content:center}.office-weather-source-row-r018{display:grid;gap:4px}}
.office-plan-cutout-r018{display:grid;gap:10px;margin-top:14px;padding-top:14px;border-top:1px solid var(--office-border)}
.office-plan-cutout-r018>img{display:block;width:min(100%,760px);max-height:520px;object-fit:contain;border:1px solid var(--office-border);border-radius:12px;background:var(--office-surface-soft)}
.office-plan-cutout-r018 .office-readonly-field{display:flex;align-items:center;gap:9px}

/* r018 Projekt-Cockpit */
.office-project-cockpit-r018{display:grid;gap:14px;margin-bottom:14px}.office-project-kpi-grid-r018{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}.office-project-kpi-r018{display:grid;gap:5px;padding:18px 20px;border:1px solid var(--office-border);border-radius:14px;background:var(--office-surface);box-shadow:0 8px 22px rgba(15,23,42,.04)}.office-project-kpi-r018>span{font-size:.78rem;color:var(--office-text-muted);font-weight:650}.office-project-kpi-r018>strong{font-size:1.45rem;letter-spacing:-.025em;font-variant-numeric:tabular-nums}.office-project-kpi-r018>small{color:var(--office-text-muted);font-size:.75rem}.office-project-analysis-grid-r018{display:grid;grid-template-columns:minmax(0,1.7fr) minmax(280px,.7fr);gap:12px}.office-project-analysis-card-r018{padding:20px}.office-project-analysis-head-r018{display:flex;align-items:flex-start;justify-content:space-between;gap:14px;margin-bottom:18px}.office-project-analysis-head-r018 h2{margin:0;font-size:1rem}.office-project-analysis-head-r018 p{margin:4px 0 0;color:var(--office-text-muted);font-size:.78rem}.office-project-bars-r018{display:grid;gap:12px}.office-project-bars-r018>div{display:grid;grid-template-columns:90px minmax(0,1fr) 130px;gap:12px;align-items:center}.office-project-bars-r018>div>span{font-size:.78rem;color:var(--office-text-muted)}.office-project-bars-r018>div>div{height:9px;border-radius:999px;background:var(--office-surface-soft);overflow:hidden}.office-project-bars-r018 i{display:block;height:100%;border-radius:inherit;background:var(--office-primary);min-width:2px}.office-project-bars-r018 strong{text-align:right;font-size:.8rem;font-variant-numeric:tabular-nums}.office-project-invoice-ring-r018{--office-progress:0deg;width:132px;aspect-ratio:1;margin:8px auto 18px;border-radius:50%;display:grid;place-items:center;background:conic-gradient(var(--office-primary) var(--office-progress),var(--office-surface-soft) 0)}.office-project-invoice-ring-r018:before{content:"";grid-area:1/1;width:94px;aspect-ratio:1;border-radius:50%;background:var(--office-surface)}.office-project-invoice-ring-r018>div{grid-area:1/1;z-index:1;display:grid;text-align:center}.office-project-invoice-ring-r018 strong{font-size:1.25rem}.office-project-invoice-ring-r018 span{font-size:.72rem;color:var(--office-text-muted)}.office-project-invoice-summary-r018{display:flex;justify-content:center;gap:14px;flex-wrap:wrap;color:var(--office-text-muted);font-size:.75rem}.office-project-invoice-summary-r018 b{color:var(--office-text)}
@media(max-width:1100px){.office-project-kpi-grid-r018{grid-template-columns:repeat(2,minmax(0,1fr))}.office-project-analysis-grid-r018{grid-template-columns:1fr}}
@media(max-width:640px){.office-project-kpi-grid-r018{grid-template-columns:1fr}.office-project-bars-r018>div{grid-template-columns:72px minmax(0,1fr);gap:8px}.office-project-bars-r018 strong{grid-column:2;text-align:left}.office-project-analysis-card-r018{padding:15px}}

/* r018 Zeiterfassung / Urlaub polish */
.office-worktime-live-clock,
.office-worktime-live-clock.is-check-in,
.office-worktime-live-clock.is-check-out{min-height:34px;box-sizing:border-box}
.office-worktime-live-clock strong,
.office-worktime-live-clock.is-stamp-pulse strong,
.office-worktime-live-clock.is-check-in strong,
.office-worktime-live-clock.is-check-out strong{font-size:19px;line-height:1;font-weight:600;letter-spacing:.01em}
.office-leave-weekdays>.is-weekend,.office-leave-day.is-weekend{color:var(--office-text-muted)}

/* r018 offers / archive import */
.office-offer-list-card-r018{padding-top:0}
.office-offer-list-toolbar-r018{display:flex;align-items:center;justify-content:flex-start;padding:16px 18px 12px;border-bottom:1px solid var(--office-border)}
.office-offer-import-dialog-r018{width:min(820px,calc(100vw - 32px))}
.office-offer-import-grid-r018{gap:18px 20px}
.office-file-drop-r018{position:relative;min-height:86px;border:1px dashed var(--office-border-strong);border-radius:12px;background:var(--office-surface-soft);display:grid;grid-template-columns:28px 1fr;grid-template-rows:auto auto;align-items:center;column-gap:12px;padding:14px 16px;cursor:pointer}
.office-file-drop-r018:hover{border-color:var(--office-primary);background:var(--office-primary-soft)}
.office-file-drop-r018 input[type=file]{position:absolute;inset:0;opacity:0;cursor:pointer}
.office-file-drop-r018 .office-svg-icon{grid-row:1/3;width:24px;height:24px}.office-file-drop-r018 strong{font-size:14px}.office-file-drop-r018 small{color:var(--office-text-muted)}
@media(max-width:760px){.office-offer-list-toolbar-r018{padding:12px}.office-offer-import-grid-r018{grid-template-columns:1fr}.office-offer-import-grid-r018 .office-field-span-two{grid-column:auto}}

/* r018 hospitality receipts */
.office-hospitality-card-r018{padding-top:0}.office-hospitality-compliance-note-r018{display:flex;gap:12px;align-items:flex-start;padding:14px 18px;background:var(--office-surface-soft);border-bottom:1px solid var(--office-border)}.office-hospitality-compliance-note-r018>.office-svg-icon{width:22px;height:22px;flex:none;margin-top:2px}.office-hospitality-compliance-note-r018 div{display:grid;gap:3px}.office-hospitality-compliance-note-r018 span{color:var(--office-text-muted);font-size:13px;line-height:1.45}.office-table-subline-r018{display:block;margin-top:3px;color:var(--office-text-muted);font-weight:400}.office-hospitality-editor-r018{width:min(980px,calc(100vw - 32px));max-height:min(920px,calc(100vh - 32px))}.office-hospitality-upload-section-r018{margin-bottom:26px}.office-field-caption-r018{display:block;margin-bottom:9px;font-weight:700;color:var(--office-text-muted)}.office-hospitality-upload-actions-r018{display:grid;grid-template-columns:1fr 1fr;gap:12px}.office-hospitality-upload-button-r018{position:relative;justify-content:space-between;min-height:54px;overflow:hidden}.office-hospitality-upload-button-r018 input[type=file]{position:absolute;inset:0;opacity:0;cursor:pointer}.office-file-selected-r018{display:flex;gap:10px;margin-top:10px;align-items:center}.office-file-selected-r018 span{color:var(--office-text-muted);font-size:12px}.office-hospitality-form-r018{margin-bottom:24px}.office-hospitality-total-r018{height:42px;border:1px solid var(--office-border);border-radius:10px;background:var(--office-surface-soft);display:flex;align-items:center;padding:0 13px;font-weight:800}.office-hospitality-participant-heading-r018{margin-top:26px}.office-hospitality-person-picker-r018{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:26px}.office-hospitality-person-chip-r018{display:grid;gap:2px;min-width:160px;text-align:left;padding:10px 12px;border:1px solid var(--office-border);border-radius:10px;background:var(--office-surface);cursor:pointer}.office-hospitality-person-chip-r018 small{color:var(--office-text-muted)}.office-hospitality-person-chip-r018.is-selected{border-color:var(--office-primary);box-shadow:0 0 0 1px var(--office-primary);background:var(--office-primary-soft)}.office-dialog-small-r018{width:min(560px,calc(100vw - 32px))}
@media(max-width:760px){.office-hospitality-upload-actions-r018{grid-template-columns:1fr}.office-hospitality-compliance-note-r018{margin:0}.office-hospitality-editor-r018{width:calc(100vw - 16px)}.office-hospitality-person-chip-r018{width:100%}}
.office-hospitality-audit-dialog-r018{width:min(900px,calc(100vw - 32px))}.office-hash-r018{display:block;max-width:240px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:11px;color:var(--office-text-muted)}

/* r018 project cockpit data card */
.office-project-data-card-r018{margin-bottom:18px}
.office-project-summary-head-r018{align-items:center}
.office-project-data-grid-r018{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:28px}
.office-project-history-grid-r018{margin-top:18px}
.office-project-history-card-r018{width:100%}
.office-project-history-meta-r018{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin-bottom:16px}
.office-project-history-meta-r018>div{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 0;border-bottom:1px solid var(--office-border)}
.office-project-history-meta-r018 span{color:var(--office-text-secondary)}
.office-project-history-meta-r018 strong{font-weight:500}
@media(max-width:820px){.office-project-data-grid-r018,.office-project-history-meta-r018{grid-template-columns:1fr}}


/* r019 block A2 – project action alignment, hospitality and diary photo polish */
.office-project-heading-actions-r019{margin-left:auto;display:flex;justify-content:flex-end;align-items:center;gap:8px;flex:0 0 auto}
.office-project-action-heading-r019{align-items:center}
.office-project-action-heading-r019>.office-button{margin-left:auto;flex:0 0 auto}
.office-project-fee-overview-r019>.office-settings-section-heading{margin-bottom:18px}
.office-company-contact-heading-r019{display:flex;align-items:center;justify-content:space-between;gap:16px}
.office-company-contact-heading-r019>.office-button{margin-left:auto;flex:0 0 auto}
.office-diary-photo-grid-r015 article>a:first-child{display:flex;width:100%;aspect-ratio:4/3;align-items:center;justify-content:center;overflow:hidden;border:1px solid var(--office-border);border-radius:10px;background:var(--office-surface-soft)}
.office-diary-photo-grid-r015 article>a:first-child>img{display:block;width:100%;height:100%;max-width:100%;object-fit:contain}
.office-hospitality-archive-actions-r018{display:flex;justify-content:center;margin-top:16px}
.office-hospitality-toolbar-r018{margin-bottom:12px}
.office-hospitality-file-drop-r019{position:relative;min-height:76px;border:1px solid var(--office-border-strong);border-radius:12px;background:var(--office-surface-soft);display:grid;grid-template-columns:28px minmax(0,1fr);align-items:center;gap:12px;padding:14px 16px;cursor:pointer;transition:border-color .16s ease,background .16s ease}
.office-hospitality-file-drop-r019:hover{border-color:var(--office-primary);background:var(--office-primary-soft)}
.office-hospitality-file-drop-r019 input[type=file]{position:absolute;inset:0;width:100%;height:100%;opacity:0;cursor:pointer}
.office-hospitality-file-drop-r019>.office-svg-icon{width:22px;height:22px}
.office-hospitality-file-drop-r019>span:last-child{display:grid;gap:3px}
.office-hospitality-file-drop-r019 small{color:var(--office-text-muted);font-size:.76rem;font-weight:400}
.office-money-input-r019{position:relative;display:flex;align-items:center}
.office-money-input-r019>div,.office-money-input-r019 input{width:100%}
.office-money-input-r019>span{position:absolute;right:12px;color:var(--office-text-muted);pointer-events:none}
.office-money-input-r019 input{padding-right:30px}
@media(max-width:760px){.office-project-heading-actions-r019{width:100%;flex-wrap:wrap}.office-company-contact-heading-r019{align-items:stretch;flex-direction:column}.office-company-contact-heading-r019>.office-button{margin-left:0;align-self:flex-start}}


/* r019 block A3 – dashboard compact state, project overview and calmer collection sorting */
.office-dashboard-quick-heading{display:flex;align-items:center;justify-content:space-between;gap:12px}
.office-dashboard-top-collapse-button{margin-left:auto;flex:0 0 auto}
.office-dashboard-top-grid-compact .office-quick-section.is-collapsed,
.office-dashboard-top-grid-compact .office-time-panel.is-collapsed{align-self:start}
.office-project-data-card-r018{grid-template-columns:minmax(0,1fr)}
@media(max-width:820px){.office-dashboard-quick-heading{align-items:center}}

/* r019 A4 — project navigation and cost/change-order Office-UI alignment. */
@media (min-width: 921px) {
    .office-topbar:has(.office-project-tabs) .office-project-navigation {
        position: absolute;
        left: 50%;
        transform: translateX(-50%);
        width: max-content;
        max-width: calc(100% - 360px);
        z-index: 1;
    }
}

.office-change-orders {
    display: grid;
    gap: 18px;
}
.office-change-order-summary-grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 12px;
}
.office-change-order-summary {
    min-height: 112px;
    padding: 18px 20px;
    display: flex;
    flex-direction: column;
    justify-content: center;
    gap: 5px;
}
.office-change-order-summary > span {
    color: var(--office-text-muted);
    font-size: 12px;
    font-weight: 650;
}
.office-change-order-summary > strong {
    font-size: 22px;
    line-height: 1.15;
    font-weight: 720;
}
.office-change-order-summary > small {
    color: var(--office-text-muted);
    font-size: 12px;
}
.office-change-order-list-panel {
    overflow: hidden;
}
.office-change-order-toolbar {
    min-height: 58px;
    padding: 10px 12px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    border-bottom: 1px solid var(--office-border);
    background: var(--office-surface);
}
.office-change-order-toolbar .office-search-control {
    width: min(380px, 100%);
}
.office-change-order-table .office-table-meta {
    display: block;
    margin-top: 3px;
    color: var(--office-text-muted);
}
.office-change-order-table .office-table-link {
    padding: 0;
    border: 0;
    background: transparent;
    color: var(--office-text);
    font: inherit;
    font-weight: 650;
    text-align: left;
    cursor: pointer;
}
.office-change-order-table .office-table-link:hover {
    color: var(--office-primary);
}

.office-project-cost-invoices .office-table-toolbar-actions > .office-button,
.office-project-cost-invoices .office-table-toolbar-actions .office-button,
.office-project-cost-invoices .office-icon-text-button,
.office-project-cost-invoices .office-create-button {
    min-height: 42px;
    height: 42px;
    box-sizing: border-box;
}

@media (max-width: 1100px) {
    .office-change-order-summary-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}
@media (max-width: 720px) {
    .office-change-order-summary-grid {
        grid-template-columns: 1fr;
    }
    .office-change-order-toolbar {
        align-items: stretch;
        flex-direction: column;
    }
    .office-change-order-toolbar .office-search-control,
    .office-change-order-toolbar .office-button {
        width: 100%;
    }
}

/* r019 block A5 – hospitality selectors and attendance location polish */
.office-hospitality-occasion-combo-r019{position:relative;display:grid;grid-template-columns:minmax(0,1fr) 42px}
.office-hospitality-occasion-combo-r019>input{min-width:0;border-top-right-radius:0;border-bottom-right-radius:0}
.office-hospitality-combo-button-r019{width:42px;height:42px;border:1px solid var(--office-border);border-left:0;border-radius:0 var(--office-control-radius) var(--office-control-radius) 0;background:var(--office-surface);color:var(--office-text)}
.office-hospitality-combo-button-r019:hover{background:var(--office-surface-soft);color:var(--office-primary)}
.office-hospitality-template-popover-r019,.office-hospitality-restaurant-popover-r019{width:100%;max-width:none;z-index:40}
.office-hospitality-template-popover-r019 .office-combobox-option small,.office-hospitality-restaurant-popover-r019 .office-combobox-option small{display:block;margin-top:2px;color:var(--office-text-muted);font-weight:400}
.office-hospitality-new-restaurant-r019{border-top:1px solid var(--office-border);margin-top:4px;color:var(--office-primary)}
.office-hospitality-new-restaurant-r019>.office-svg-icon{width:16px;height:16px;flex:0 0 auto}
.office-hospitality-participant-heading-r018{margin-top:22px;margin-bottom:10px}
.office-hospitality-participant-search-r018{margin-bottom:10px}
.office-hospitality-person-list-r019{border:1px solid var(--office-border);border-radius:12px;background:var(--office-surface);max-height:250px;overflow:auto}
.office-hospitality-person-row-r019{display:grid;grid-template-columns:18px minmax(0,1fr);align-items:center;gap:11px;min-height:48px;padding:9px 12px;border-bottom:1px solid var(--office-border);cursor:pointer;transition:background .16s ease}
.office-hospitality-person-row-r019:last-child{border-bottom:0}
.office-hospitality-person-row-r019:hover{background:var(--office-surface-soft)}
.office-hospitality-person-row-r019>input{margin:0;width:16px;height:16px;accent-color:var(--office-primary)}
.office-hospitality-person-row-r019>span{display:grid;gap:2px;min-width:0}
.office-hospitality-person-row-r019 strong{font-size:.88rem;color:var(--office-text)}
.office-hospitality-person-row-r019 small{font-size:.76rem;color:var(--office-text-muted)}

/* r019 C1: persoenliche Arbeitszeit – Auswertung und Ansichten */
.office-worktime-evaluation { margin-top: 18px; }
.office-worktime-evaluation-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:14px; }
.office-worktime-evaluation-card { min-height:112px; padding:18px 20px; display:flex; flex-direction:column; justify-content:center; gap:5px; }
.office-worktime-evaluation-card > span { color:var(--office-text-muted); font-size:.82rem; font-weight:650; }
.office-worktime-evaluation-card > strong { font-size:1.55rem; line-height:1.1; letter-spacing:-.02em; }
.office-worktime-evaluation-card > small { color:var(--office-text-muted); }
.office-worktime-evaluation-card strong.is-positive,
.office-worktime-timesheet-summary strong.is-positive { color:#287a45; }
.office-worktime-evaluation-card strong.is-negative,
.office-worktime-timesheet-summary strong.is-negative { color:#b84646; }
.office-worktime-evaluation-card strong.is-neutral,
.office-worktime-timesheet-summary strong.is-neutral { color:var(--office-text); }
.office-worktime-view-tabs { margin:18px 0 14px; width:max-content; }
.office-worktime-calendar-card,
.office-worktime-timesheet-card { padding:20px; }
.office-worktime-calendar-heading { align-items:flex-start; }
.office-worktime-week-navigation { display:flex; flex-wrap:wrap; justify-content:flex-end; gap:8px; }
.office-worktime-week-grid { display:grid; grid-template-columns:repeat(7,minmax(0,1fr)); gap:8px; margin-top:16px; }
.office-worktime-day { min-width:0; min-height:178px; border:1px solid var(--office-border); border-radius:var(--office-radius-md); background:var(--office-surface); overflow:hidden; }
.office-worktime-day.is-today { border-color:color-mix(in srgb,var(--office-primary) 52%,var(--office-border)); box-shadow:0 0 0 2px color-mix(in srgb,var(--office-primary) 8%,transparent); }
.office-worktime-day > header { display:flex; justify-content:space-between; align-items:center; gap:8px; padding:10px 11px; background:var(--office-surface-soft); border-bottom:1px solid var(--office-border); }
.office-worktime-day > header span { text-transform:uppercase; font-size:.7rem; letter-spacing:.04em; color:var(--office-text-muted); font-weight:700; }
.office-worktime-day > header strong { font-size:.82rem; }
.office-worktime-day-total { padding:10px 11px 6px; font-weight:750; }
.office-worktime-day-empty { padding:4px 11px 12px; color:var(--office-text-muted); font-size:.78rem; }
.office-worktime-calendar-entry { margin:5px 8px; padding:8px; border-radius:var(--office-radius-sm); background:var(--office-surface-soft); display:flex; flex-direction:column; gap:2px; }
.office-worktime-calendar-entry strong { font-size:.78rem; }
.office-worktime-calendar-entry span { font-size:.72rem; color:var(--office-text-muted); overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.office-worktime-timesheet-summary { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:10px; margin:14px 0 18px; }
.office-worktime-timesheet-summary > div { padding:12px 14px; border:1px solid var(--office-border); border-radius:var(--office-radius-md); background:var(--office-surface-soft); display:flex; flex-direction:column; gap:3px; }
.office-worktime-timesheet-summary span { color:var(--office-text-muted); font-size:.76rem; }
.office-worktime-timesheet-summary strong { font-size:1.05rem; }
@media (max-width:1100px) {
    .office-worktime-week-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
    .office-worktime-day:last-child { grid-column:span 2; }
}
@media (max-width:760px) {
    .office-worktime-evaluation-grid,
    .office-worktime-timesheet-summary { grid-template-columns:1fr; }
    .office-worktime-week-grid { grid-template-columns:1fr; }
    .office-worktime-day:last-child { grid-column:auto; }
    .office-worktime-week-navigation { justify-content:flex-start; }
}

/* r019 C2 – Stundenzettel, Überstundenkonto und Arbeitszeit-Vorgaben */
.office-worktime-timesheet-actions{display:flex;align-items:center;justify-content:flex-end;gap:8px;flex-wrap:wrap}
.office-worktime-overtime-dialog{width:min(980px,calc(100vw - 32px))}
.office-worktime-adjustment-editor{padding:14px;border:1px solid var(--office-border);border-radius:var(--office-radius);background:var(--office-surface-soft);margin:16px 0}
.office-worktime-adjustment-editor .office-form-actions{display:flex;gap:8px;justify-content:flex-end;margin-top:12px}
.office-worktime-overtime-dialog tr.is-muted td{color:var(--office-text-muted);text-decoration:none;background:var(--office-surface-soft)}
.office-dialog-footer-spacer{flex:1 1 auto}
@media (max-width:720px){.office-worktime-timesheet-actions{width:100%;justify-content:flex-start}.office-worktime-overtime-dialog{width:calc(100vw - 16px)}.office-worktime-adjustment-editor .office-form-actions{justify-content:stretch;flex-direction:column}}

.office-absence-module { display:grid; gap:18px; }
.office-absence-calendar-panel,
.office-absence-balance-panel,
.office-absence-list-panel { padding:22px; }
.office-absence-heading { align-items:center; }
.office-absence-month-navigation { display:flex; align-items:center; gap:8px; }
.office-absence-legend { display:flex; flex-wrap:wrap; gap:8px 14px; margin:4px 0 16px; }
.office-absence-legend-item,
.office-absence-type-cell { display:inline-flex; align-items:center; gap:7px; }
.office-absence-legend-item i,
.office-absence-type-cell i,
.office-absence-balance-row i { width:9px; height:9px; border-radius:999px; flex:0 0 auto; background:var(--office-border-strong); }
.office-absence-legend-item i.is-vacation,
.office-absence-type-cell i.is-vacation,
.office-absence-balance-row i.is-vacation { background:var(--office-primary); }
.office-absence-legend-item i.is-sick,
.office-absence-type-cell i.is-sick,
.office-absence-balance-row i.is-sick { background:#c95858; }
.office-absence-legend-item i.is-child-sick,
.office-absence-type-cell i.is-child-sick,
.office-absence-balance-row i.is-child-sick { background:#d98747; }
.office-absence-legend-item i.is-maternity,
.office-absence-type-cell i.is-maternity,
.office-absence-balance-row i.is-maternity { background:#a86caf; }
.office-absence-legend-item i.is-parental,
.office-absence-type-cell i.is-parental,
.office-absence-balance-row i.is-parental { background:#727db2; }
.office-absence-legend-item i.is-overtime,
.office-absence-type-cell i.is-overtime,
.office-absence-balance-row i.is-overtime { background:#4f9271; }
.office-absence-legend-item i.is-other,
.office-absence-type-cell i.is-other,
.office-absence-balance-row i.is-other { background:#7f858b; }
.office-absence-calendar { border:1px solid var(--office-border); border-radius:var(--office-radius-lg); overflow:hidden; background:var(--office-surface); }
.office-absence-weekdays,
.office-absence-days { display:grid; grid-template-columns:repeat(7,minmax(0,1fr)); }
.office-absence-weekdays { background:var(--office-surface-soft); border-bottom:1px solid var(--office-border); }
.office-absence-weekdays span { padding:10px 12px; font-size:12px; font-weight:700; color:var(--office-text-muted); text-align:center; }
.office-absence-day { min-height:112px; padding:10px; border-right:1px solid var(--office-border); border-bottom:1px solid var(--office-border); display:flex; flex-direction:column; gap:6px; background:var(--office-surface); }
.office-absence-day:nth-child(7n) { border-right:0; }
.office-absence-day.is-weekend { background:color-mix(in srgb,var(--office-surface-soft) 65%,var(--office-surface)); }
.office-absence-day.is-outside { color:var(--office-text-muted); opacity:.55; }
.office-absence-day.is-today { box-shadow:inset 0 0 0 2px color-mix(in srgb,var(--office-primary) 45%,transparent); }
.office-absence-day-number { font-size:13px; font-weight:700; }
.office-absence-day-entry { display:block; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; border-radius:7px; padding:4px 6px; font-size:11px; font-weight:700; background:var(--office-surface-soft); color:var(--office-text); }
.office-absence-day-entry.is-vacation { background:color-mix(in srgb,var(--office-primary) 12%,var(--office-surface)); color:var(--office-primary); }
.office-absence-day-entry.is-sick { background:#c9585817; color:#a33f3f; }
.office-absence-day-entry.is-child-sick { background:#d9874718; color:#a85f2c; }
.office-absence-day-entry.is-maternity { background:#a86caf18; color:#85548b; }
.office-absence-day-entry.is-parental { background:#727db218; color:#586197; }
.office-absence-day-entry.is-overtime { background:#4f927118; color:#397558; }
.office-absence-day-entry.is-other { background:#7f858b18; color:#656a70; }
.office-absence-day small { color:var(--office-text-muted); font-size:11px; }
.office-absence-balance-table { display:grid; border-top:1px solid var(--office-border); }
.office-absence-balance-row { display:flex; justify-content:space-between; align-items:center; min-height:44px; gap:16px; border-bottom:1px solid var(--office-border); }
.office-absence-balance-row span { display:inline-flex; align-items:center; gap:8px; }
.office-absence-balance-row strong { font-variant-numeric:tabular-nums; }
@media (max-width: 900px) {
    .office-absence-calendar { overflow-x:auto; }
    .office-absence-weekdays,.office-absence-days { min-width:760px; }
    .office-absence-month-navigation { flex-wrap:wrap; justify-content:flex-end; }
}

/* r019 D2 - Abwesenheit eintragen */
.office-absence-heading-actions{display:flex;align-items:center;justify-content:flex-end;gap:12px;flex-wrap:wrap}
.office-absence-dialog{width:min(720px,calc(100vw - 32px))}
.office-absence-halfday-toggle{align-self:end;min-height:42px}
.office-absence-date-single,.office-absence-note{grid-column:1/-1}
@media (max-width:720px){.office-absence-heading-actions{width:100%;justify-content:stretch}.office-absence-heading-actions>.office-button{width:100%;justify-content:center}.office-absence-month-navigation{width:100%;justify-content:space-between}}

/* r019 E1: unternehmensweite Projektstunden */
.office-company-project-time-panel { display:grid; gap:18px; }
.office-company-project-time-filters { display:grid; grid-template-columns:minmax(240px,1.5fr) repeat(3,minmax(150px,1fr)); gap:14px; align-items:end; }
.office-company-project-time-search { grid-column:span 2; }
@media (max-width:1100px) { .office-company-project-time-filters { grid-template-columns:repeat(2,minmax(0,1fr)); } .office-company-project-time-search { grid-column:span 2; } }
@media (max-width:720px) { .office-company-project-time-filters { grid-template-columns:1fr; } .office-company-project-time-search { grid-column:auto; } }

/* r019 E2 – Unternehmens-/Projektstunden */
.office-company-project-time-filter-actions{display:flex;align-items:flex-end;gap:8px;min-height:42px}
.office-company-project-time-filter-actions .office-button{min-height:42px}
.office-company-project-time-summary{display:flex;align-items:center;gap:18px;margin:2px 0 12px;color:var(--office-text-muted);font-size:.86rem}
.office-company-project-time-summary strong{color:var(--office-text);font-weight:650}
.office-company-project-time-panel .office-table-frame td:nth-child(5){min-width:220px;max-width:420px;white-space:normal}
@media(max-width:900px){.office-company-project-time-filter-actions{grid-column:1/-1}.office-company-project-time-filter-actions .office-button{flex:1;justify-content:center}}


/* r019 E3 – invoice/project-time assignment */
.office-invoice-time-assignment-r019 { margin-top: 4px; }
.office-invoice-time-assignment-r019 .office-settings-section-heading { margin-bottom: 10px; }
.office-invoice-time-assignment-r019 .office-settings-section-heading h3 { margin: 0; }
.office-invoice-time-assignment-r019 .office-settings-section-heading p { margin-top: 4px; }
.office-invoice-time-assignment-r019 .office-table-frame { max-height: 300px; }
.office-invoice-time-summary-r019 { display:flex; justify-content:flex-end; gap:6px; padding-top:8px; color:var(--office-text-muted); font-size:.9rem; }

/* r019 project contract */
.office-project-contract-panel-r019{display:grid;gap:18px}.office-contract-editor-r019,.office-contract-summary-r019,.office-contract-subsection-r019{display:grid;gap:16px}.office-contract-subsection-r019{border-top:1px solid var(--office-border);padding-top:18px}.office-contract-summary-head-r019{display:flex;align-items:center;justify-content:space-between;gap:16px}.office-contract-summary-head-r019>div{display:grid;gap:4px}.office-contract-summary-head-r019 span{font-size:.78rem;color:var(--office-text-muted)}.office-contract-summary-head-r019 strong{font-size:1.2rem}.office-contract-data-grid-r019{grid-template-columns:repeat(2,minmax(0,1fr))}.office-contract-text-r019{display:grid;gap:7px}.office-contract-text-r019>span{font-size:.78rem;color:var(--office-text-muted);font-weight:600}.office-contract-text-r019 p{margin:0;white-space:pre-wrap}.office-contract-offer-pills-r019{display:flex;gap:7px;flex-wrap:wrap}.office-contract-offer-pills-r019>span{padding:6px 10px;border:1px solid var(--office-border);border-radius:999px;background:var(--office-surface-soft);font-size:.82rem}.office-contract-offer-list-r019{display:grid;border:1px solid var(--office-border);border-radius:var(--office-radius);overflow:hidden}.office-contract-offer-row-r019{display:flex;gap:12px;align-items:flex-start;padding:11px 13px;border-bottom:1px solid var(--office-border);cursor:pointer}.office-contract-offer-row-r019:last-child{border-bottom:0}.office-contract-offer-row-r019>span{display:grid;gap:2px}.office-contract-offer-row-r019 small{color:var(--office-text-muted)}.office-contract-editor-footer-r019{padding:0;border:0}.office-contract-attachment-list-r019{display:grid;border:1px solid var(--office-border);border-radius:var(--office-radius);overflow:hidden}.office-contract-attachment-list-r019 article{display:grid;grid-template-columns:24px minmax(0,1fr) auto;gap:12px;align-items:center;padding:11px 13px;border-bottom:1px solid var(--office-border)}.office-contract-attachment-list-r019 article:last-child{border-bottom:0}.office-contract-attachment-list-r019 article>div:nth-child(2){display:grid;gap:2px;min-width:0}.office-contract-attachment-list-r019 strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.office-contract-attachment-list-r019 small{color:var(--office-text-muted)}
@media(max-width:900px){.office-contract-data-grid-r019{grid-template-columns:1fr}.office-contract-attachment-list-r019 article{grid-template-columns:24px minmax(0,1fr)}.office-contract-attachment-list-r019 .office-table-actions{grid-column:2}}

/* r019 block G – consolidated construction photo library */
.office-project-photo-library-r019{display:grid;gap:18px}.office-photo-library-toolbar-r019{align-items:flex-end}.office-photo-library-toolbar-r019 h2{margin:2px 0 4px;font-size:21px}.office-photo-library-toolbar-r019 p{margin:0}.office-photo-empty-r019{min-height:260px;display:grid;place-items:center;align-content:center;text-align:center;gap:8px}.office-photo-empty-r019>.office-svg-icon{width:34px;height:34px;opacity:.55}.office-photo-empty-r019 h3,.office-photo-empty-r019 p{margin:0}.office-photo-day-heading-r019{display:flex;align-items:baseline;justify-content:space-between;gap:12px}.office-photo-day-heading-r019>span{font-size:.82rem;color:var(--office-text-muted)}.office-photo-grid-r019{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px}.office-photo-card-r019{display:grid;grid-template-rows:auto 1fr auto;border:1px solid var(--office-border);border-radius:13px;background:var(--office-surface);overflow:hidden;transition:transform .16s ease,box-shadow .16s ease,border-color .16s ease}.office-photo-card-r019:hover{transform:translateY(-1px);box-shadow:0 8px 22px rgba(15,23,42,.08);border-color:var(--office-border-strong)}.office-photo-thumb-r019{position:relative;display:block;width:100%;padding:0;border:0;background:var(--office-surface-soft);cursor:pointer;overflow:hidden;aspect-ratio:4/3}.office-photo-thumb-r019>img{display:block;width:100%;height:100%;object-fit:cover}.office-photo-source-r019,.office-photo-annotated-r019{position:absolute;top:8px;padding:4px 7px;border-radius:999px;background:rgba(255,255,255,.92);box-shadow:0 2px 8px rgba(15,23,42,.1);font-size:.72rem;font-weight:700;color:#243041}.office-photo-source-r019{left:8px}.office-photo-annotated-r019{right:8px;color:var(--office-primary)}.office-photo-card-body-r019{padding:9px 10px 5px}.office-photo-card-r019 .office-photo-description{width:100%;min-height:50px;margin:0;border:0;padding:2px 0;resize:vertical;background:transparent}.office-photo-meta-r019{display:flex;justify-content:space-between;gap:8px;margin-top:5px;color:var(--office-text-muted);font-size:.72rem}.office-photo-meta-r019 span:last-child{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.office-photo-card-actions-r019{display:flex;align-items:center;gap:4px;padding:7px 8px 9px;border-top:1px solid var(--office-border-soft,var(--office-border))}.office-photo-card-actions-r019>.office-button{min-height:34px;padding:5px 7px;font-size:.77rem}.office-photo-card-r019.is-hidden{opacity:.55}.office-photo-preview-dialog-r019{width:min(1180px,96vw);max-width:none}.office-photo-preview-dialog-r019 .office-dialog-body,.office-photo-editor-dialog .office-dialog-body{padding:12px}.office-photo-editor-select{display:flex;align-items:center;gap:5px}.office-photo-editor-select .office-select{min-width:92px;min-height:34px;padding:5px 28px 5px 8px;font-size:.78rem}.office-photo-editor-text{display:flex;align-items:center;gap:5px}.office-photo-editor-text .office-input{width:180px;min-height:34px;padding:5px 8px;font-size:.78rem}.office-photo-editor-toolbar{flex-wrap:wrap}.office-photo-editor-stage{min-height:420px}.office-photo-editor-viewport img,.office-photo-editor-viewport canvas{max-width:100%}
@media(max-width:1180px){.office-photo-grid-r019{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:860px){.office-photo-grid-r019{grid-template-columns:repeat(2,minmax(0,1fr))}.office-photo-library-toolbar-r019{align-items:stretch}.office-photo-library-toolbar-r019 .office-time-list-actions{width:100%;flex-wrap:wrap}}
@media(max-width:560px){.office-photo-grid-r019{grid-template-columns:1fr}.office-photo-card-actions-r019{flex-wrap:wrap}.office-photo-card-actions-r019>.office-button{flex:1 1 auto;justify-content:center}.office-photo-editor-stage{min-height:300px}}

/* r019 H1 – document mail, invoice positions, hospitality preview */
.office-document-mail-dialog-r019{width:min(1240px,calc(100vw - 48px));max-width:1240px}
.office-document-mail-layout-r019{display:grid;grid-template-columns:minmax(0,1.08fr) minmax(360px,.92fr);gap:22px;align-items:stretch}
.office-document-mail-pdf-r019{min-height:620px;display:flex;flex-direction:column;gap:12px}
.office-document-mail-pdf-r019 object{width:100%;min-height:570px;flex:1;border:1px solid var(--office-border);border-radius:var(--office-radius);background:var(--office-surface-soft)}
.office-document-mail-form-r019{display:flex;flex-direction:column;gap:16px;min-width:0}
.office-mail-token-field-r019{min-height:44px;border:1px solid var(--office-border);border-radius:var(--office-radius);background:var(--office-surface);padding:6px 8px;display:flex;flex-wrap:wrap;gap:6px;align-items:center}
.office-mail-token-field-r019:focus-within{border-color:var(--office-primary);box-shadow:0 0 0 2px color-mix(in srgb,var(--office-primary) 12%,transparent)}
.office-mail-token-field-r019 input{border:0;outline:0;box-shadow:none;min-width:190px;flex:1;height:30px;padding:0 4px;background:transparent}
.office-mail-token-r019{display:inline-flex;align-items:center;gap:6px;padding:4px 7px;border:1px solid var(--office-border);border-radius:999px;background:var(--office-surface-soft);font-size:12px}
.office-mail-token-r019 button{border:0;background:transparent;padding:0;line-height:1;cursor:pointer;color:var(--office-text-muted)}
.office-mail-suggestions-r019{border:1px solid var(--office-border);border-radius:var(--office-radius);background:var(--office-surface);max-height:210px;overflow:auto;margin-top:6px;box-shadow:var(--office-shadow-popover)}
.office-mail-suggestions-r019 button{display:flex;width:100%;border:0;background:transparent;padding:9px 11px;text-align:left;gap:8px;align-items:baseline;cursor:pointer}
.office-mail-suggestions-r019 button:hover{background:var(--office-surface-soft)}
.office-mail-suggestions-r019 small{color:var(--office-text-muted)}
.office-check-row-r019{display:flex;align-items:center;gap:9px;min-height:34px}
.office-invoice-lines-editor-r019{margin:8px 0 2px;min-width:0}
.office-invoice-lines-editor-r019 .office-table-frame input{width:100%;min-width:0}
.office-invoice-lines-total-r019{margin-left:auto;margin-top:10px;display:grid;grid-template-columns:auto minmax(110px,auto);gap:6px 20px;width:max-content;text-align:right}
.office-invoice-lines-total-r019 strong:last-child{font-size:16px}
.office-hospitality-filter-row-r019{display:flex;gap:10px;align-items:center;min-width:min(620px,100%)}
.office-hospitality-user-filter-r019{width:220px;flex:0 0 220px}
.office-hospitality-filter-row-r019 .office-search-control{flex:1}
.office-system-mail-preview-r019{display:grid;grid-template-columns:90px 1fr;gap:8px 14px;align-items:start}
.office-system-mail-preview-r019>span{color:var(--office-text-muted)}
.office-system-mail-preview-r019>p{grid-column:1/-1;margin:12px 0 0;padding-top:12px;border-top:1px solid var(--office-border);line-height:1.5}
@media(max-width:900px){.office-document-mail-dialog-r019{width:calc(100vw - 20px)}.office-document-mail-layout-r019{grid-template-columns:1fr}.office-document-mail-pdf-r019{min-height:420px}.office-document-mail-pdf-r019 object{min-height:380px}.office-hospitality-filter-row-r019{flex-wrap:wrap}.office-hospitality-user-filter-r019{width:100%;flex-basis:100%}}


/* r019 H2 – final Office UI polish */
.office-offer-phase-checkbox{width:18px;height:18px;min-width:18px;min-height:18px;accent-color:var(--office-primary);}
.office-standard-pdf-viewer object,.office-offer-pdf-preview-r016 object{min-height:68vh;border:1px solid var(--office-border);border-radius:var(--office-radius-lg);background:var(--office-surface-soft);}
.office-diary-report-heading-r019{align-items:flex-start;gap:18px}.office-diary-report-heading-r019 .office-dashboard-panel-tabs{margin-left:auto}.office-diary-report-card-r019{display:grid;gap:18px}.office-diary-report-card-r019 .office-rich-editor{min-height:280px}.office-diary-note-entry-r018,.office-diary-note-list-r018,.office-diary-note-actions-r018{margin-top:12px}.office-task-save-feedback-r019{margin:0 0 14px}.office-table-action-group{display:flex;justify-content:flex-end;gap:6px;align-items:center}.office-task-plan-upload-r019{min-height:104px}.office-task-comment{padding:14px 16px;margin-top:10px}.office-task-comment>div{display:flex;align-items:center;gap:8px}.office-history-row{display:grid;grid-template-columns:150px minmax(0,1fr);gap:14px;align-items:start;padding:10px 0;border-bottom:1px solid var(--office-border-subtle)}.office-history-row:last-child{border-bottom:0}.office-time-project-filter-r019{min-width:230px;margin-left:auto}.office-construction-toolbar .office-time-list-actions{margin-left:auto}.office-task-company-group-r015>header{padding:12px 14px;border:1px solid var(--office-border);border-radius:var(--office-radius-lg);background:var(--office-surface)}
.office-data-environment-switcher-r019{display:grid;gap:7px;padding:0 10px 10px;margin:0 8px}.office-data-environment-label-r019{font-size:11.5px;font-weight:650;color:var(--office-text-muted);text-align:center}.office-drawer-footer{border-top:0}.office-drawer-footer>.office-user-menu-wrap{border-top:1px solid var(--office-border);padding-top:12px}.office-data-environment-segments-r019{display:grid;grid-template-columns:1fr 1fr;padding:3px;border:1px solid var(--office-border);border-radius:999px;background:var(--office-surface-soft)}.office-data-environment-segments-r019 button{border:0;background:transparent;border-radius:999px;padding:7px 8px;font:inherit;font-size:12px;color:var(--office-text-muted);cursor:pointer;transition:background-color .18s ease,color .18s ease,box-shadow .18s ease}.office-data-environment-segments-r019 button.is-active{background:var(--office-surface);color:var(--office-primary);box-shadow:0 1px 4px rgba(0,0,0,.08)}.office-data-environment-segments-r019 button.is-active.is-productive{color:#fff;background:var(--office-primary)}
.office-dashboard-panel,.office-dialog,.office-popover,.office-task-company-group-r015{transition:opacity .18s ease,transform .18s ease,box-shadow .18s ease}.office-local-tabs .office-local-tab,.office-nav-item,.office-button,.office-icon-button{transition:background-color .18s ease,color .18s ease,border-color .18s ease,transform .16s ease,opacity .18s ease}.office-dashboard-panel[hidden],.office-collapsible[hidden]{opacity:0;transform:translateY(-4px)}
@media (max-width:900px){.office-time-project-filter-r019{min-width:0;width:100%;margin-left:0}.office-history-row{grid-template-columns:1fr;gap:3px}.office-diary-report-heading-r019{display:grid}.office-diary-report-heading-r019 .office-dashboard-panel-tabs{margin-left:0}}

.office-contacts-page .office-table-frame table{table-layout:fixed;width:100%}.office-contacts-page .office-company-contact-detail-row td{box-sizing:border-box}.office-project-editor-page .office-combobox-trigger>.office-svg-icon{width:14px;height:14px;flex:0 0 14px}.office-project-editor-page .office-project-email-picker{grid-column:1/-1}.office-diary-task-suggestions-r019{display:grid;gap:10px;padding:14px 16px;margin:0 0 16px;border:1px solid var(--office-border);border-radius:var(--office-radius-lg);background:var(--office-surface-soft)}.office-diary-task-suggestion-list-r019{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px 14px}.office-diary-task-suggestion-list-r019 .office-checkbox-field{margin:0;padding:9px 10px;background:var(--office-surface);border:1px solid var(--office-border);border-radius:10px}.office-diary-task-suggestion-list-r019 .office-checkbox-field span{display:grid;gap:2px}.office-diary-task-suggestion-list-r019 small{font-weight:400;color:var(--office-text-muted)}
@media(max-width:760px){.office-diary-task-suggestion-list-r019{grid-template-columns:1fr}}

/* r019 final visual correction pass */
/* Shared action groups: normal Office buttons never touch each other. */
.office-page-heading-actions,
.office-project-summary-actions,
.office-time-list-actions,
.office-dialog-footer,
.office-dialog-inline-actions,
.office-action-group-r019-final {
    display:flex;
    align-items:center;
    gap:12px;
}

/* Dashboard: undo legacy rule that forced top cards permanently open. */
.office-dashboard-top-grid-compact .office-quick-section .office-collapsible-body[hidden],
.office-dashboard-top-grid-compact .office-time-panel .office-collapsible-body[hidden] {
    display:none;
    visibility:hidden;
    opacity:0;
}
.office-dashboard-top-grid-compact .office-quick-section.is-collapsed,
.office-dashboard-top-grid-compact .office-time-panel.is-collapsed { min-height:auto; }
.office-dashboard-top-grid-compact .is-collapsed .office-section-collapse-button .office-svg-icon { transform:rotate(-90deg); }

/* Sidebar database model selector. Divider belongs below the selector, directly above user card. */
.office-data-environment-switcher-r019 {
    display:grid;
    gap:8px;
    padding:0 0 16px;
    margin:0 0 16px;
    border-bottom:1px solid var(--office-border);
}
.office-data-environment-label-r019 {
    display:block;
    text-align:center;
    font-size:.72rem;
    font-weight:700;
    letter-spacing:.08em;
    text-transform:uppercase;
    color:var(--office-text-muted);
}
.office-data-environment-segments-r019 { width:100%; }

/* Worktime: compact statistics inside the existing summary and one segmented view switch per card. */
.office-worktime-summary-r019-final {
    grid-template-columns:repeat(6,minmax(0,1fr));
}
.office-worktime-summary-r019-final > div { min-width:0; }
.office-worktime-summary-r019-final strong { font-size:1rem; line-height:1.25; white-space:nowrap; }
.office-worktime-summary-r019-final span { white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.office-worktime-card-tabs-r019 { display:flex; justify-content:flex-start; margin:0 0 16px; }
.office-worktime-evaluation { display:none; }
@media(max-width:1100px){.office-worktime-summary-r019-final{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:680px){.office-worktime-summary-r019-final{grid-template-columns:repeat(2,minmax(0,1fr))}}

/* Activities: pill + project filter in one line. */
.office-time-filter-inline-r019-final { display:flex; align-items:center; gap:12px; min-width:0; }
.office-time-project-filter-r019 { margin:0; min-width:220px; }
.office-time-project-filter-r019 .office-select,
.office-time-project-filter-r019 select { min-height:42px; }
@media(max-width:760px){.office-time-filter-inline-r019-final{width:100%;flex-wrap:wrap}.office-time-project-filter-r019{min-width:min(100%,260px)}}

/* Absence: calendar + statistics form a balanced desktop unit. */
.office-absence-overview-grid-r019-final { display:grid; grid-template-columns:minmax(0,1fr) 300px; gap:16px; align-items:stretch; }
.office-absence-overview-grid-r019-final .office-absence-calendar-panel,
.office-absence-overview-grid-r019-final .office-absence-balance-panel { margin:0; }
.office-absence-year-filter-r019 { min-width:130px; margin:0; }
.office-pill-switch-r019 { min-width:118px; height:42px; padding:4px 10px 4px 5px; border:1px solid var(--office-border); border-radius:999px; background:var(--office-surface-soft); display:inline-flex; align-items:center; gap:9px; cursor:pointer; color:var(--office-text-muted); }
.office-pill-switch-r019 > span { width:30px; height:30px; border-radius:50%; background:var(--office-surface); border:1px solid var(--office-border); box-shadow:0 1px 3px rgba(15,23,42,.08); }
.office-pill-switch-r019.is-active { color:var(--office-primary); border-color:color-mix(in srgb,var(--office-primary) 35%,var(--office-border)); background:color-mix(in srgb,var(--office-primary) 7%,var(--office-surface)); }
.office-pill-switch-r019.is-active > span { background:var(--office-primary); border-color:var(--office-primary); }
@media(max-width:980px){.office-absence-overview-grid-r019-final{grid-template-columns:1fr}}

/* Address book: no private horizontal scroller and stable auto-sized columns. */
.office-contacts-page .office-table-frame { overflow-x:visible; }
.office-contacts-page .office-table-frame table { table-layout:auto; width:100%; min-width:0; }
.office-contacts-page .office-table-actions-column { width:72px; white-space:nowrap; }
.office-contacts-page .office-contact-count-chevron { width:14px; height:14px; }

/* Invoice list: keep money on one line and spend width on status, not dispatch. */
.office-invoice-table-frame td.is-numeric,
.office-invoice-table-frame th.is-numeric { white-space:nowrap; }
.office-invoice-table-frame th:nth-child(1){width:115px}
.office-invoice-table-frame th:nth-child(4){width:105px}
.office-invoice-table-frame th:nth-child(5){width:105px}
.office-invoice-table-frame th:nth-child(6),
.office-invoice-table-frame th:nth-child(7){width:100px}
.office-invoice-table-frame th:last-child{width:72px}
.office-payment-editor-r019-final { display:grid; gap:14px; }

/* Offer pages/cockpit: consistent spacing and compact list toolbar. */
.office-offer-list-toolbar-r018 { padding:0 0 14px; margin:0; min-height:0; align-items:center; }
.office-offer-list-card-r018 { padding-top:18px; }
.office-project-summary-actions { justify-content:flex-end; flex-wrap:wrap; }
.office-context-more-popover,
.office-card-more-popover,
.office-row-menu-popover { min-width:250px; }
.office-popover-action.office-menu-row > span:last-child { white-space:nowrap; }

/* Hospitality list follows the same visual rhythm as time/travel lists. */
.office-hospitality-card-r018 { padding:20px; }
.office-hospitality-toolbar-r018 { display:flex; align-items:center; justify-content:space-between; gap:12px; margin:0 0 16px; padding:0; }
.office-hospitality-filter-row-r019 { display:flex; align-items:center; justify-content:flex-end; gap:12px; margin-left:auto; min-width:0; }
.office-hospitality-user-filter-r019 { width:250px; flex:0 0 250px; }
.office-hospitality-host-popover-r019 { width:280px; }
.office-hospitality-participant-combo-r019-final { width:100%; }
.office-hospitality-participant-popover-r019-final { width:min(620px,calc(100vw - 64px)); }
.office-hospitality-selected-persons-r019-final { display:flex; flex-wrap:wrap; gap:7px; margin-top:9px; }
.office-hospitality-selected-persons-r019-final button { display:inline-flex; align-items:center; gap:7px; min-height:32px; padding:5px 10px; border:1px solid var(--office-border); border-radius:999px; background:var(--office-surface-soft); color:var(--office-text); cursor:pointer; }
.office-hospitality-occasion-combo-r019 { display:grid; grid-template-columns:minmax(0,1fr) 42px; border:1px solid var(--office-border); border-radius:var(--office-radius); overflow:visible; background:var(--office-surface); }
.office-hospitality-occasion-combo-r019 > input { border:0; box-shadow:none; min-width:0; }
.office-hospitality-combo-button-r019 { width:42px; height:42px; border:0; border-left:1px solid var(--office-border); border-radius:0 var(--office-radius) var(--office-radius) 0; }
.office-hospitality-combo-button-r019 .office-svg-icon,
.office-combobox-chevron { width:14px; height:14px; flex:0 0 14px; }
@media(max-width:820px){.office-hospitality-toolbar-r018,.office-hospitality-filter-row-r019{align-items:stretch;flex-direction:column}.office-hospitality-user-filter-r019{width:100%;flex-basis:auto}}

/* Construction tasks: company is a group row inside one table; actions use context menus. */
.office-task-group-table-r019-final .office-task-company-table-group-r019-final td { padding:0; background:var(--office-surface-soft); }
.office-task-company-table-group-content-r019-final { min-height:52px; padding:8px 12px; display:flex; align-items:center; justify-content:space-between; gap:12px; }
.office-task-company-table-group-content-r019-final .office-task-group-toggle-r015 { flex:1; min-width:0; }
.office-task-group-chevron-r019-final { width:14px; height:14px; flex:0 0 14px; }
.office-task-status-filter-r019-final { width:190px; }
.office-task-status-filter-r019-final .office-combobox-popover { width:220px; }
.office-construction-section .office-combobox-chevron { width:14px; height:14px; }

/* Photo cards: one stable visible navigation action; everything else in the menu. */
.office-photo-library-toolbar-actions-only-r019-final { justify-content:flex-end; }
.office-photo-card-actions-r019 { justify-content:space-between; overflow:visible; }
.office-photo-card-actions-r019 > .office-button { white-space:nowrap; flex:0 0 auto; }
.office-photo-card-r019 { overflow:visible; }
.office-photo-card-r019 .office-photo-thumb-r019 { border-radius:12px 12px 0 0; }
.office-photo-card-r019 .office-context-menu-wrap { margin-left:auto; }
.office-photo-card-r019 .office-row-menu-popover { z-index:3000; }

/* System-wide dropdown chevrons stay intentionally small. */
.office-select-button > .office-svg-icon,
.office-combobox-trigger > .office-combobox-chevron,
.office-context-chevron,
.office-contact-count-chevron { width:14px; height:14px; flex:0 0 14px; }
.office-data-environment-switcher-r019{border-top:0;margin:0 8px 16px;padding:0 2px 16px}


/* r019 final UI consistency pass */
/* Keep rounded table borders visually continuous without clipping row menus/popovers. */
.office-table-frame .office-table thead tr:first-child > :first-child { border-top-left-radius:calc(var(--office-radius-lg) - 1px); }
.office-table-frame .office-table thead tr:first-child > :last-child { border-top-right-radius:calc(var(--office-radius-lg) - 1px); }
.office-table-frame .office-table tbody tr:last-child > :first-child { border-bottom-left-radius:calc(var(--office-radius-lg) - 1px); }
.office-table-frame .office-table tbody tr:last-child > :last-child { border-bottom-right-radius:calc(var(--office-radius-lg) - 1px); }

/* Sidebar environment selector: one separator only, no redundant caption. */
.office-data-environment-switcher-r019 { gap:0; padding:0 2px 12px; margin:0 8px 0; border-bottom:0; }
.office-data-environment-label-r019 { display:none; }
.office-drawer-footer>.office-user-menu-wrap { margin-top:12px; }

/* Stundenzettel mirrors the Zeiteinträge card rhythm and receives month navigation. */
.office-worktime-timesheet-card { display:grid; gap:16px; }
.office-worktime-timesheet-card .office-worktime-card-tabs-r019 { margin-bottom:0; }
.office-worktime-timesheet-heading-r019 { margin:0; align-items:center; }
.office-worktime-timesheet-month-r019 { display:flex; align-items:center; gap:8px; min-width:0; }
.office-worktime-timesheet-month-r019 h2 { min-width:150px; margin:0; text-align:center; font-size:18px; }
.office-worktime-timesheet-actions { display:flex; align-items:center; justify-content:flex-end; gap:8px; flex-wrap:wrap; }
@media(max-width:820px){.office-worktime-timesheet-heading-r019{align-items:flex-start}.office-worktime-timesheet-month-r019,.office-worktime-timesheet-actions{width:100%;flex-wrap:wrap}.office-worktime-timesheet-month-r019 h2{min-width:0}}

/* Absence command bar follows the vacation-plan command bar. */
.office-absence-commandbar-r019 { display:flex; align-items:center; justify-content:space-between; gap:14px; flex-wrap:wrap; margin-bottom:16px; }
.office-absence-month-controls-r019 { display:flex; align-items:center; gap:8px; }
.office-absence-month-controls-r019 strong { min-width:150px; text-align:center; font-size:15px; }
.office-absence-calendar-panel { padding-top:22px; }
.office-absence-stat-description-r019 { margin-bottom:16px; }
.office-absence-balance-table { margin-top:4px; }
.office-absence-list-panel .office-settings-section-heading { margin-bottom:16px; }
.office-absence-year-filter-r019 { align-self:flex-end; }
@media(max-width:720px){.office-absence-commandbar-r019{align-items:stretch}.office-absence-month-controls-r019{width:100%;flex-wrap:wrap}.office-absence-commandbar-r019>.office-button{width:100%;justify-content:center}}

/* Activities project filter uses the same labelled Office field language as Projectstunden. */
.office-time-filter-inline-r019-final { align-items:flex-end; }
.office-time-project-filter-r019 { min-width:250px; }
.office-time-project-filter-r019 > span { font-size:12px; font-weight:650; color:var(--office-text-muted); }
.office-time-project-filter-r019 .office-select { min-height:42px; }

/* Offer create/edit finishing. */
.office-offer-hoai-hint-r019 { margin-top:10px; color:var(--office-text-muted); font-size:12px; line-height:1.45; }
.office-offer-fee-heading-r019 { margin-bottom:18px; }
.office-offer-section-heading-r016 { display:flex; align-items:center; gap:14px; }
.office-offer-section-heading-r016>div { grid-template-columns:auto minmax(220px,420px); max-width:620px; }
.office-offer-section-title-input-r016 { min-width:220px; width:min(420px,42vw); font-size:15px; font-weight:650; }
.office-offer-section-delete-r016 { margin-left:auto; }
.office-offer-special-heading-r016 .office-button { margin-left:auto; }
.office-offer-advanced-toggle-r016 .office-svg-icon { width:14px; height:14px; flex:0 0 14px; }
.office-offer-history-panel-r019 .office-settings-section-heading { margin-bottom:18px; }
.office-offer-history-panel-r019 .office-offer-history-r016 { display:grid; gap:10px; }
.office-offer-final-totals-r016 { overflow:hidden; border:1px solid var(--office-border); border-radius:var(--office-radius-lg); background:var(--office-surface); }
.office-offer-final-totals-r016>div { display:grid; grid-template-columns:minmax(0,1fr) auto; align-items:center; gap:24px; padding:11px 14px; border-bottom:1px solid var(--office-border); }
.office-offer-final-totals-r016>div:nth-child(odd) { background:var(--office-surface-soft); }
.office-offer-final-totals-r016>div:last-child { border-bottom:0; }
.office-offer-final-totals-r016>div span { color:var(--office-text-secondary); }
.office-offer-final-totals-r016>div strong { min-width:150px; text-align:right; font-variant-numeric:tabular-nums; }
.office-offer-final-totals-r016>div.is-grand { padding-top:14px; padding-bottom:14px; background:color-mix(in srgb,var(--office-primary) 7%,var(--office-surface)); border-top:1px solid color-mix(in srgb,var(--office-primary) 25%,var(--office-border)); }
.office-offer-final-totals-r016>div.is-grand span,.office-offer-final-totals-r016>div.is-grand strong { font-weight:750; color:var(--office-text); }
.office-offer-final-totals-r016>div.is-grand strong { font-size:17px; }
@media(max-width:720px){.office-offer-section-heading-r016>div{grid-template-columns:1fr;max-width:none}.office-offer-section-title-input-r016{width:100%;min-width:0}.office-offer-section-delete-r016{margin-left:0}.office-offer-final-totals-r016>div{gap:12px}}
/* r019 final visual correction: time/absence/activity consistency */
.office-worktime-timesheet-card { gap:16px; }
.office-worktime-timesheet-commandbar-r019 { display:flex; align-items:center; justify-content:space-between; gap:16px; flex-wrap:wrap; }
.office-worktime-timesheet-month-r019 { display:flex; align-items:center; gap:8px; min-width:0; }
.office-worktime-timesheet-month-r019 strong { min-width:150px; text-align:center; font-size:15px; white-space:nowrap; }
.office-worktime-timesheet-actions { margin-left:auto; }
@media(max-width:820px){.office-worktime-timesheet-commandbar-r019{align-items:stretch}.office-worktime-timesheet-month-r019{width:100%;flex-wrap:wrap}.office-worktime-timesheet-actions{width:100%;margin-left:0;justify-content:flex-end}}

.office-absence-calendar-shell-r019 { display:grid; gap:16px; }
.office-absence-calendar-shell-r019 .office-absence-commandbar-r019 { margin:0; }
.office-absence-calendar-shell-r019 .office-absence-overview-grid-r019-final { margin:0; }
.office-absence-calendar-shell-r019 .office-absence-calendar-panel { padding:0; min-width:0; }
.office-absence-month-controls-r019 { display:flex; align-items:center; gap:8px; }
.office-absence-month-controls-r019 strong { min-width:150px; text-align:center; font-size:15px; white-space:nowrap; }
@media(max-width:720px){.office-absence-calendar-shell-r019 .office-leave-commandbar{align-items:stretch}.office-absence-calendar-shell-r019 .office-leave-command-actions{width:100%;justify-content:flex-end}}

.office-time-filter-inline-r019-final { gap:24px; align-items:center; }
.office-time-project-filter-r019 { margin-left:0; padding-top:0; }
.office-time-project-filter-r019 > span { display:none; }
@media(max-width:760px){.office-time-filter-inline-r019-final{gap:16px}}


/* r020 external construction task portal */
.office-external-task-portal-r020 {
    min-height: 100vh;
    background: #f3f5f7;
    padding: 40px 24px;
}

.office-external-portal-shell-r020 {
    width: min(1180px, 100%);
    margin: 0 auto;
}

.office-external-brand-header-r020 {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 24px;
    min-height: 76px;
    padding: 18px 24px;
    background: #fff;
    border: 1px solid var(--office-border, #dfe4e8);
    border-radius: 14px;
}

.office-external-brand-copy-r020 {
    display: flex;
    align-items: center;
    min-width: 0;
}

.office-external-company-logo-r020 {
    display: block;
    max-width: 220px;
    max-height: 58px;
    object-fit: contain;
    object-position: left center;
}

.office-external-domain-r020 {
    color: #7a838c;
    font-size: 13px;
    white-space: nowrap;
}

.office-external-task-heading-r020 {
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    gap: 24px;
    padding: 34px 4px 20px;
}

.office-external-task-heading-r020 h1 {
    margin: 4px 0 6px;
    font-size: clamp(28px, 3vw, 38px);
    line-height: 1.15;
    letter-spacing: -.025em;
}

.office-external-task-heading-r020 p {
    margin: 0;
    color: #707982;
}

.office-external-task-list-card-r020 {
    padding: 0;
    overflow: hidden;
}

.office-external-task-list-heading-r020 {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 22px 24px 18px;
    border-bottom: 1px solid var(--office-border, #e1e5e9);
}

.office-external-task-list-heading-r020 h2 {
    margin: 0;
    font-size: 20px;
}

.office-external-task-list-heading-r020 p {
    margin: 4px 0 0;
    color: #7a838c;
    font-size: 13px;
}

.office-external-task-table-wrap-r020 {
    width: 100%;
    overflow-x: auto;
}

.office-external-task-table-r020 {
    width: 100%;
    border-collapse: collapse;
    min-width: 820px;
}

.office-external-task-table-r020 th,
.office-external-task-table-r020 td {
    padding: 14px 16px;
    text-align: left;
    vertical-align: middle;
    border-bottom: 1px solid #edf0f2;
}

.office-external-task-table-r020 th {
    background: #f8fafb;
    color: #67717b;
    font-size: 12px;
    font-weight: 700;
}

.office-external-task-table-r020 tbody tr:last-child td {
    border-bottom: 0;
}

.office-external-task-table-r020 tbody tr:hover {
    background: #fafbfd;
}

.office-external-task-table-r020 .is-number {
    width: 74px;
    color: #68737d;
    font-variant-numeric: tabular-nums;
}

.office-external-task-table-r020 .is-title {
    min-width: 240px;
    font-weight: 650;
    color: #20262c;
}

.office-external-task-table-r020 .is-action {
    width: 1%;
    text-align: right;
    white-space: nowrap;
}

.office-external-footer-r020 {
    display: flex;
    justify-content: space-between;
    gap: 24px;
    padding: 18px 4px 0;
    color: #8a9299;
    font-size: 12px;
}

.office-external-task-dialog-r020 {
    width: min(780px, calc(100vw - 32px));
}

.office-external-task-dialog-facts-r020 {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 12px;
    margin-bottom: 24px;
}

.office-external-task-dialog-facts-r020 > div {
    min-width: 0;
    padding: 14px 16px;
    background: #f7f9fa;
    border: 1px solid #e7ebee;
    border-radius: 10px;
}

.office-external-task-dialog-facts-r020 > div > span:first-child {
    display: block;
    margin-bottom: 7px;
    color: #76808a;
    font-size: 12px;
}

.office-external-task-dialog-facts-r020 strong {
    display: block;
    font-size: 14px;
    font-weight: 650;
}

.office-external-task-description-r020,
.office-external-task-photos-r020,
.office-external-task-response-r020 {
    margin-top: 24px;
}

.office-external-task-description-r020 h3,
.office-external-task-photos-r020 h3 {
    margin: 0 0 10px;
    font-size: 15px;
}

.office-external-task-description-r020 p {
    margin: 0;
    line-height: 1.6;
    white-space: pre-wrap;
}

.office-external-invalid-r020 {
    width: min(720px, 100%);
    margin: 80px auto;
}

@media (max-width: 820px) {
    .office-external-task-portal-r020 {
        padding: 18px 12px;
    }

    .office-external-brand-header-r020 {
        align-items: flex-start;
        flex-direction: column;
    }

    .office-external-domain-r020 {
        white-space: normal;
    }

    .office-external-task-dialog-facts-r020 {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .office-external-footer-r020 {
        flex-direction: column;
        gap: 4px;
    }
}

@media (max-width: 520px) {
    .office-external-task-dialog-facts-r020 {
        grid-template-columns: 1fr;
    }

    .office-external-company-logo-r020 {
        max-width: 180px;
        max-height: 52px;
    }
}

/* r020 UI CONSOLIDATION V2 */

.office-project-heading-actions-r019 {
    margin-bottom: 18px;
}

.office-settings-section-heading {
    gap: 18px;
}

.office-settings-section-heading > .office-button:last-child,
.office-settings-section-heading > a.office-button:last-child,
.office-settings-section-heading > .office-module-action:last-child,
.office-settings-section-heading > .office-module-action-button:last-child {
    margin-left: auto;
}

.office-profile-page .office-settings-section-heading + .office-button,
.office-profile-page .office-settings-section-heading + .office-profile-vehicle-list,
.office-profile-page .office-settings-section-heading + .office-inline-empty {
    margin-top: 16px;
}

.office-worktime-card-tabs-r019 {
    margin-bottom: 18px;
}

.office-worktime-archive {
    margin-top: 18px;
}

.office-time-action.is-check-out,
.office-dashboard-time-quick-action.is-check-out {
    background: #f7fbff;
    border-color: #0f6cbd;
    color: #0f6cbd;
    box-shadow: none;
}

.office-time-action.is-check-out:hover:not(:disabled),
.office-dashboard-time-quick-action.is-check-out:hover:not(:disabled) {
    background: #edf6fd;
}

.office-diary-note-actions-r018 {
    margin-top: 14px;
}

.office-diary-note-actions-r018 .office-button {
    min-height: 38px;
}

.office-table-actions-column .office-icon-button .office-svg-icon,
.office-table-actions-column .office-svg-icon {
    width: 18px;
    height: 18px;
}

.office-dialog-body > .office-settings-section-heading + .office-table-frame,
.office-dialog-body > .office-inline-section-heading + .office-table-frame {
    margin-top: 16px;
}

/* r020 final layout consolidation */
.office-project-overview-layout-r020{display:grid;grid-template-columns:minmax(0,1.6fr) minmax(260px,.7fr);gap:18px;align-items:start}
.office-project-summary-card-r020,.office-project-kpi-column-r020{min-width:0}
.office-project-summary-list-r020{display:grid;gap:0;margin:0}
.office-project-summary-list-r020>div{display:grid;grid-template-columns:minmax(150px,32%) minmax(0,1fr);gap:18px;padding:12px 0;border-bottom:1px solid var(--office-border)}
.office-project-summary-list-r020>div:last-child{border-bottom:0}.office-project-summary-list-r020 dt{color:var(--office-text-muted);font-size:12px}.office-project-summary-list-r020 dd{margin:0;font-weight:650}
.office-project-kpi-column-r020{display:grid;gap:12px}.office-project-kpi-column-r020 .office-kpi-card{height:auto;min-height:94px}
.office-period-navigator-r020{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.office-period-navigator-r020 strong,.office-period-navigator-r020 h2{margin:0 0 0 10px;min-width:140px;text-align:left}
.office-worktime-archive-launch-r020{display:flex;justify-content:center;margin:18px 0}.office-worktime-archive-r020{margin-top:0}
.office-absence-overview-heading-r020{margin-bottom:16px}
.office-contract-selector-r020{display:flex;gap:8px;flex-wrap:wrap;margin:0 0 18px}.office-contract-selector-r020 .office-button{min-width:160px;justify-content:space-between}
.office-contract-empty-r020 .office-empty-state-icon{width:58px;height:58px}.office-contract-empty-r020 .office-empty-state-icon .office-svg-icon{width:26px;height:26px}
.office-offer-section-heading-r020{align-items:center;margin-bottom:14px}.office-offer-section-heading-r020 .office-offer-section-delete-r016{margin-left:auto}.office-offer-section-fields-r020{margin-bottom:18px}.office-offer-section-title-input-r020{font-weight:650}
.office-offer-final-actions-r020{display:flex;justify-content:flex-end;gap:10px;flex-wrap:wrap;margin:18px 0 24px}.office-offer-import-note-r020{margin-top:16px}
.office-offer-special-heading-r016{align-items:center}.office-offer-special-heading-r016>.office-button{margin-left:auto}
.office-profile-data-card>.office-settings-section-heading{margin-bottom:18px}.office-profile-vehicle-list{margin-top:0}
.office-invoice-manual-add-r020{display:flex;justify-content:flex-start;margin-top:12px}.office-invoice-manual-lines-r020 .office-table-frame{margin-top:12px}.office-invoice-hoai-r020 .office-table-frame{margin-top:14px}
.office-pill-switch-r019{display:inline-flex;align-items:center;gap:9px;min-height:40px;padding:6px 12px;border:1px solid var(--office-border);border-radius:999px;background:var(--office-surface);color:var(--office-text-secondary)}.office-pill-switch-r019>span{width:28px;height:16px;border-radius:999px;background:#cfd5da;position:relative}.office-pill-switch-r019>span:after{content:"";position:absolute;top:2px;left:2px;width:12px;height:12px;border-radius:50%;background:#fff;transition:.15s}.office-pill-switch-r019.is-active{border-color:color-mix(in srgb,var(--office-primary) 45%,var(--office-border));background:color-mix(in srgb,var(--office-primary) 7%,#fff);color:var(--office-primary)}.office-pill-switch-r019.is-active>span{background:var(--office-primary)}.office-pill-switch-r019.is-active>span:after{transform:translateX(12px)}
@media(max-width:900px){.office-project-overview-layout-r020{grid-template-columns:1fr}.office-project-kpi-column-r020{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:620px){.office-project-summary-list-r020>div{grid-template-columns:1fr;gap:4px}.office-project-kpi-column-r020{grid-template-columns:1fr}.office-period-navigator-r020 strong,.office-period-navigator-r020 h2{width:100%;margin-left:0;order:5}.office-offer-final-actions-r020>.office-button{width:100%;justify-content:center}}

/* r021 AVA / Leistungsverzeichnisse */
.office-boq-kpis{margin-bottom:18px}.office-boq-total-footer{display:flex;gap:22px;justify-content:flex-end;flex-wrap:wrap;width:100%}.office-boq-total-footer span{white-space:nowrap}.office-boq-detail-sidebar{position:fixed;right:0;top:0;bottom:0;width:min(520px,92vw);z-index:80;background:var(--office-surface,#fff);border-left:1px solid var(--office-border,#dfe4e8);box-shadow:-12px 0 32px rgba(26,39,52,.12);padding:22px;overflow:auto}.office-boq-detail-head{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin-bottom:18px}.office-boq-detail-head h2{margin:2px 0 0}.office-boq-detail-head small{color:var(--office-muted,#6b7785)}.office-boq-issue-actions{display:flex;gap:7px;flex-wrap:wrap;margin:16px 0}.office-boq-issue-actions>strong{width:100%;margin-bottom:3px}.office-boq-issue-actions .is-active{font-weight:700}.office-ava-grid-empty{grid-column:1/-1;padding:38px;display:flex;flex-direction:column;align-items:center;gap:6px;color:var(--office-muted,#6b7785)}

/* r021 AVA overview and create workflow */
.office-boq-create-dialog{max-width:760px}
.office-boq-kpis{margin-bottom:18px}
.office-boq-kpis .office-kpi-card{min-height:86px}

/* r021 AVA editor quick actions */
.office-boq-item-row.has-color-yellow{box-shadow:inset 4px 0 #d7a800}.office-boq-item-row.has-color-red{box-shadow:inset 4px 0 #c43131}.office-boq-item-row.has-color-green{box-shadow:inset 4px 0 #3b8b58}.office-boq-item-row.has-color-blue{box-shadow:inset 4px 0 #3979b8}.office-boq-item-row.has-color-gray{box-shadow:inset 4px 0 #8a9299}.office-boq-item-row.is-omitted{opacity:.55;text-decoration:line-through}.office-boq-item-type{display:inline-flex;min-width:18px;margin-right:5px;color:var(--office-text-muted);font-size:11px;font-weight:800}.office-boq-row-meta{display:flex;align-items:center;gap:6px}.office-boq-issue-dot{display:inline-grid;place-items:center;width:20px;height:20px;border-radius:50%;background:#fff2cc;color:#7a5700;font-weight:800}.office-boq-color-dot,.office-boq-color-choice{display:inline-block;width:16px;height:16px;border-radius:50%;border:1px solid rgba(0,0,0,.14)}.office-boq-color-dot.has-color-yellow,.office-boq-color-choice.has-color-yellow{background:#f1cf55}.office-boq-color-dot.has-color-red,.office-boq-color-choice.has-color-red{background:#d86b6b}.office-boq-color-dot.has-color-green,.office-boq-color-choice.has-color-green{background:#65a979}.office-boq-color-dot.has-color-blue,.office-boq-color-choice.has-color-blue{background:#6a9ed1}.office-boq-color-dot.has-color-gray,.office-boq-color-choice.has-color-gray{background:#a6adb3}.office-boq-row-actions{display:flex;justify-content:flex-end}.office-boq-quick-menu{position:relative}.office-boq-quick-menu summary{list-style:none;cursor:pointer}.office-boq-quick-menu summary::-webkit-details-marker{display:none}.office-boq-quick-menu-panel{position:absolute;right:0;top:34px;z-index:35;width:220px;padding:7px;background:var(--office-surface,#fff);border:1px solid var(--office-border);border-radius:10px;box-shadow:0 12px 30px rgba(26,39,52,.16)}.office-boq-quick-menu-panel>button{display:flex;width:100%;padding:8px 10px;border:0;border-radius:7px;background:transparent;text-align:left;cursor:pointer}.office-boq-quick-menu-panel>button:hover{background:var(--office-surface-muted,#f5f7f8)}.office-boq-quick-menu-panel>button.is-danger{color:#b42318}.office-boq-menu-label{display:block;padding:8px 10px 3px;color:var(--office-text-muted);font-size:11px;font-weight:700;text-transform:uppercase}.office-boq-menu-colors{display:flex;gap:7px;padding:6px 10px}.office-boq-color-choice{cursor:pointer}.office-boq-color-clear{width:18px;height:18px;border:0;background:transparent;cursor:pointer}.office-boq-tree-title{min-width:0}.office-boq-level-1{font-weight:700}.office-boq-level-2{background:color-mix(in srgb,var(--office-surface-muted,#f5f7f8) 70%,#fff)}.office-boq-level-3,.office-boq-level-4,.office-boq-level-5{font-size:13px}

/* r021 AVA block 3b: position detail sidebar */
.office-boq-detail-scrim{position:fixed;inset:0;z-index:79;border:0;background:rgba(28,37,45,.12)}
.office-boq-detail-sidebar{width:min(610px,96vw);padding:0;display:flex;flex-direction:column}
.office-boq-detail-head{position:sticky;top:0;z-index:2;margin:0;padding:20px 22px 16px;background:var(--office-surface,#fff);border-bottom:1px solid var(--office-border,#dfe4e8)}
.office-boq-detail-sidebar>.office-boq-detail-section{padding:18px 22px;border-bottom:1px solid var(--office-border,#dfe4e8)}
.office-boq-detail-section h3{margin:0 0 12px;font-size:14px}.office-boq-detail-section-head{display:flex;align-items:flex-start;justify-content:space-between;gap:14px;margin-bottom:12px}.office-boq-detail-section-head h3{margin-bottom:3px}.office-boq-detail-section-head p{margin:0;color:var(--office-text-muted);font-size:12px}
.office-boq-detail-sidebar .office-form-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.office-boq-detail-sidebar .office-field.is-wide{grid-column:1/-1}
.office-boq-bidder-field{display:grid;grid-template-columns:minmax(150px,1.4fr) 100px 90px auto auto;align-items:end;gap:9px;padding:10px 0;border-top:1px solid var(--office-border,#e4e8eb)}.office-boq-bidder-field:first-of-type{border-top:0}.office-boq-bidder-field-actions{display:flex;align-items:center;gap:5px;padding-bottom:1px}.office-empty-inline{padding:12px;border:1px dashed var(--office-border);border-radius:8px;color:var(--office-text-muted);font-size:13px}
.office-boq-detail-colors{display:flex;align-items:center;gap:8px;margin-top:14px}.office-boq-detail-colors>span{margin-right:4px;font-size:13px;font-weight:700}.office-boq-detail-colors .is-selected{outline:2px solid var(--office-text,#20272d);outline-offset:2px}
.office-boq-detail-sticky-actions{position:sticky;bottom:0;z-index:2;display:flex;justify-content:flex-end;gap:8px;margin-top:auto;padding:14px 22px;background:var(--office-surface,#fff);border-top:1px solid var(--office-border,#dfe4e8)}
@media(max-width:760px){.office-boq-detail-sidebar .office-form-grid{grid-template-columns:1fr}.office-boq-detail-sidebar .office-field.is-wide{grid-column:auto}.office-boq-bidder-field{grid-template-columns:1fr 1fr}.office-boq-bidder-field-actions{grid-column:1/-1}}

/* r021 AVA: Revisionen und Ausschreibungsstände */
.office-boq-process-dialog{width:min(820px,calc(100vw - 32px));max-height:min(820px,calc(100vh - 48px));overflow:auto;}
.office-boq-process-create{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:12px;align-items:end;margin-bottom:18px;}
.office-boq-process-list{display:grid;gap:8px;margin-top:18px;}
.office-boq-process-list>h3{margin:0 0 4px;font-size:14px;}
.office-boq-process-row{display:grid;grid-template-columns:70px 140px minmax(0,1fr) auto;gap:12px;align-items:center;padding:10px 12px;border:1px solid var(--office-border,#e5e7eb);border-radius:10px;background:var(--office-surface,#fff);font-size:13px;}
.office-boq-process-row>span:nth-child(3){min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
@media(max-width:760px){.office-boq-process-create{grid-template-columns:1fr}.office-boq-process-row{grid-template-columns:58px 1fr}.office-boq-process-row>span:nth-child(3){grid-column:1/-1;white-space:normal}.office-boq-process-row>.office-status-pill{justify-self:start}}


/* r021 AVA – Preisspiegel / Bieterangebote */
.office-boq-bids{border:1px solid var(--office-border);border-radius:var(--office-radius-lg);overflow:hidden;background:var(--office-surface)}
.office-boq-bids-toolbar{border:0;border-bottom:1px solid var(--office-border);border-radius:0}
.office-boq-bids-toolbar .office-table-toolbar-primary>div{display:grid;gap:2px}.office-boq-toolbar-subtitle{color:var(--office-text-muted);font-size:12px;font-weight:400}
.office-boq-bid-summary-grid{padding:12px;display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:8px;border-bottom:1px solid var(--office-border)}
.office-boq-bid-summary-card{min-width:0;padding:12px 13px;border:1px solid var(--office-border);border-radius:9px;display:grid;gap:4px;background:var(--office-surface-soft);color:var(--office-text);text-align:left;cursor:pointer}.office-boq-bid-summary-card:hover{border-color:var(--office-border-strong);background:var(--office-surface)}.office-boq-bid-summary-card.is-selected{border-color:rgba(15,108,189,.28);background:rgba(15,108,189,.055)}
.office-boq-bid-summary-card span,.office-boq-bid-summary-card small{overflow:hidden;color:var(--office-text-muted);font-size:12px;text-overflow:ellipsis;white-space:nowrap}.office-boq-bid-summary-card strong{font-size:17px;font-weight:600;font-variant-numeric:tabular-nums}
.office-boq-comparison-scroll{max-width:100%;overflow:auto}.office-boq-comparison-table{min-width:1100px}.office-boq-comparison-table th:first-child,.office-boq-comparison-table td:first-child{position:sticky;left:0;z-index:3;min-width:300px}.office-boq-comparison-table thead th:first-child{z-index:6}.office-boq-comparison-table td.is-best{background:rgba(35,134,54,.055);color:#237a37;font-weight:600}.office-boq-comparison-table td.is-high{background:rgba(217,54,62,.045);color:#9d3036}.office-boq-comparison-table td.is-muted{color:var(--office-text-muted);font-style:italic}
.office-boq-bid-sidebar{width:min(760px,calc(100vw - 28px))}.office-boq-bid-price-list{display:grid;gap:9px}.office-boq-bid-price-row{padding:12px;border:1px solid var(--office-border);border-radius:9px;display:grid;grid-template-columns:minmax(180px,1.4fr) minmax(110px,.6fr) minmax(110px,.6fr) auto;gap:9px;align-items:end;background:var(--office-surface-soft)}.office-boq-bid-price-title{min-width:0;display:grid;gap:2px;align-self:center}.office-boq-bid-price-title strong{font-size:12px}.office-boq-bid-price-title span{overflow:hidden;color:var(--office-text-secondary);font-size:12px;text-overflow:ellipsis;white-space:nowrap}.office-boq-bid-price-row .office-field.is-wide{grid-column:1/-2}.office-boq-bid-price-row>.office-button{justify-self:end}
@media(max-width:760px){.office-boq-bid-summary-grid{grid-template-columns:1fr}.office-boq-bid-price-row{grid-template-columns:1fr 1fr}.office-boq-bid-price-title,.office-boq-bid-price-row .office-field.is-wide{grid-column:1/-1}.office-boq-bid-price-row>.office-button{grid-column:1/-1;justify-self:stretch}.office-boq-bid-sidebar{width:100%}}


/* r021 AVA Office-UI correction ------------------------------------------------ */
.office-specifications-page .office-page-heading { align-items:flex-end; }
.office-local-tab-icon { width:16px; height:16px; margin-right:6px; }
.office-boq-heading-icon { width:18px; height:18px; margin-right:8px; vertical-align:-3px; color:var(--office-text-secondary); }
.office-boq-number-note { margin-top:18px; }
.office-ava-toolbar-controls.is-left { justify-content:flex-start; }
.office-boq-tree-title { gap:8px; overflow:visible; }
.office-boq-node-oz { flex:0 0 auto; color:var(--office-text-secondary); font-variant-numeric:tabular-nums; }
.office-boq-inline-input,.office-boq-inline-number,.office-boq-inline-select { width:100%; min-width:0; height:32px; border:1px solid transparent; border-radius:6px; background:transparent; color:inherit; font:inherit; outline:0; }
.office-boq-inline-input { padding:0 7px; }
.office-boq-inline-input.is-title { font-weight:650; }
.office-boq-inline-number { padding:0 7px; text-align:right; font-variant-numeric:tabular-nums; }
.office-boq-inline-select { padding:0 26px 0 7px; }
.office-boq-inline-input:hover,.office-boq-inline-number:hover,.office-boq-inline-select:hover { border-color:var(--office-border); background:#fff; }
.office-boq-inline-input:focus,.office-boq-inline-number:focus,.office-boq-inline-select:focus { border-color:#aeb6be; background:#fff; box-shadow:0 0 0 2px rgba(33,33,32,.06); }
.office-boq-inline-title-cell { gap:7px; overflow:visible; }
.office-boq-inline-title-cell strong { flex:0 0 auto; }
.office-boq-inline-title-cell .office-boq-inline-input { flex:1 1 auto; }
.office-boq-inline-cell { padding:4px 7px; }
.office-boq-node-actions { min-width:176px; gap:5px; padding:4px 6px; overflow:visible; }
.office-boq-node-action { min-height:30px; padding:0 8px; gap:5px; font-size:12px; }
.office-boq-node-action .office-svg-icon { width:12px; height:12px; }
.office-boq-row-actions { overflow:visible; }
.office-row-menu-wrap { position:relative; }
.office-row-menu-popover { z-index:980; padding:5px; }
.office-boq-menu-label { display:block; padding:7px 9px 4px; color:var(--office-text-muted); font-size:11px; font-weight:650; }
.office-boq-menu-colors { padding:5px 9px 8px; display:flex; gap:6px; }
.office-rich-editor { overflow:hidden; border:1px solid var(--office-border-strong); border-radius:9px; background:#fff; }
.office-rich-toolbar { min-height:44px; padding:5px 7px; border-bottom:1px solid var(--office-border); display:flex; align-items:center; gap:4px; background:#f8f9fa; flex-wrap:wrap; }
.office-rich-toolbar button { min-height:32px; padding:0 9px; border:1px solid transparent; border-radius:6px; background:transparent; color:var(--office-text-secondary); cursor:pointer; }
.office-rich-toolbar button:hover { border-color:var(--office-border); background:#fff; color:var(--office-text); }
.office-rich-toolbar button.is-icon { width:32px; padding:0; display:grid; place-items:center; }
.office-rich-toolbar button.is-icon .office-svg-icon { width:16px; height:16px; }
.office-rich-toolbar-separator { width:1px; height:22px; margin:0 3px; background:var(--office-border); }
.office-rich-toolbar-spacer { flex:1 1 auto; }
.office-rich-format-select select { height:32px; border:1px solid var(--office-border); border-radius:6px; background:#fff; padding:0 28px 0 8px; }
.office-rich-surface { min-height:190px; padding:14px 16px; outline:0; line-height:1.55; }
.office-rich-surface:focus { box-shadow:inset 0 0 0 1px #aeb6be; }
.office-boq-bidder-field { grid-template-columns:minmax(180px,1.5fr) minmax(110px,.7fr) minmax(100px,.7fr) minmax(120px,.7fr) auto; align-items:end; gap:10px; }
.office-boq-bidder-field .office-checkbox-row { min-width:120px; white-space:nowrap; }
.office-boq-bidder-field-actions { display:flex; align-items:center; gap:5px; white-space:nowrap; }
.office-boq-collapse-head { width:100%; min-height:34px; padding:0; border:0; display:flex; align-items:center; justify-content:space-between; background:transparent; color:var(--office-text); font-size:16px; font-weight:600; text-align:left; cursor:pointer; }
.office-boq-collapse-head .office-svg-icon { width:14px; height:14px; transition:transform var(--office-motion-mid) var(--office-ease-out); }
.office-boq-collapsible:not(.is-open) .office-boq-collapse-head .office-svg-icon { transform:rotate(-90deg); }
.office-boq-collapse-body { padding-top:12px; }
@media(max-width:760px){.office-boq-bidder-field{grid-template-columns:1fr}.office-boq-node-action span:last-child{display:none}.office-boq-node-actions{min-width:auto}}

/* ========================================================================== */
/* Suite r021 – complete AVA module                                            */
/* ========================================================================== */
.office-boq-start-options{margin-top:22px;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}
.office-boq-start-option{min-width:0;min-height:118px;padding:16px;border:1px solid var(--office-border);border-radius:10px;display:grid;grid-template-columns:28px minmax(0,1fr);grid-template-rows:auto auto;align-content:center;gap:3px 10px;background:#fff;color:var(--office-text);text-align:left;cursor:pointer}
.office-boq-start-option:hover,.office-boq-start-option.is-selected{border-color:#bfc6cd;background:#f7f9fb}.office-boq-start-option.is-selected{box-shadow:inset 0 0 0 1px rgba(15,108,189,.24)}
.office-boq-start-option>.office-svg-icon{grid-row:1/3;width:22px;height:22px;color:#5d646b}.office-boq-start-option strong{font-size:14px}.office-boq-start-option small{color:var(--office-text-muted);font-size:12px;line-height:1.35}
.office-boq-start-file{margin-top:16px}.office-boq-number-note{margin-top:18px}
.office-ava-process-panel+.office-ava-process-panel{margin-top:16px}.office-ava-process-panel .office-panel-heading{margin-bottom:16px}
.office-ava-summary-strip{margin:0 0 16px;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}
.office-ava-summary-strip>div{min-height:72px;padding:12px 14px;border:1px solid var(--office-border);border-radius:9px;display:grid;align-content:center;gap:4px;background:var(--office-surface-soft)}
.office-ava-summary-strip span{color:var(--office-text-muted);font-size:12px}.office-ava-summary-strip strong{font-size:17px;font-weight:600}
.office-ava-edit-card{margin-top:16px;padding:16px;border:1px solid var(--office-border);border-radius:10px;background:var(--office-surface-soft)}.office-ava-edit-card h3{margin:0 0 8px}
.office-ava-inline-form{margin-top:16px}.office-ava-tender-recipients{margin:18px 0;padding:14px;border:1px solid var(--office-border);border-radius:9px;background:var(--office-surface-soft)}.office-ava-tender-recipients h3{margin:0}
.office-chip-list{margin-top:10px;display:flex;flex-wrap:wrap;gap:6px}.office-chip{min-height:28px;padding:0 5px 0 10px;border:1px solid var(--office-border);border-radius:999px;display:inline-flex;align-items:center;gap:6px;background:#fff;font-size:12px}.office-chip button{width:20px;height:20px;border:0;border-radius:50%;background:transparent;color:var(--office-text-muted);cursor:pointer}.office-chip button:hover{background:var(--office-hover);color:var(--office-text)}
.office-ava-adjustment-row{margin-top:8px;display:grid;grid-template-columns:110px minmax(120px,1fr) 80px 110px 110px auto 34px;gap:7px;align-items:center}.office-ava-adjustment-row input,.office-ava-adjustment-row select{min-width:0;height:36px;border:1px solid var(--office-border-strong);border-radius:7px;background:#fff}.office-ava-adjustment-row.is-new{padding-top:10px;border-top:1px solid var(--office-border)}
.office-ava-library-dialog{width:min(860px,calc(100vw - 32px))}.office-ava-library-list{margin-top:12px;display:grid;border:1px solid var(--office-border);border-radius:9px;overflow:hidden}.office-ava-library-row{min-height:62px;padding:10px 12px;border:0;border-bottom:1px solid var(--office-border);display:flex;align-items:center;justify-content:space-between;gap:16px;background:#fff;color:var(--office-text);text-align:left;cursor:pointer}.office-ava-library-row:last-child{border-bottom:0}.office-ava-library-row:hover{background:var(--office-hover)}.office-ava-library-row>div{min-width:0;display:grid;gap:3px}.office-ava-library-row strong,.office-ava-library-row span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.office-ava-library-row span,.office-ava-library-row small{color:var(--office-text-muted);font-size:12px}
.office-boq-bidder-field{grid-template-columns:minmax(150px,1.4fr) 110px 100px 110px auto;align-items:end;gap:8px}.office-boq-bidder-field .office-checkbox-row{min-width:105px;white-space:nowrap}.office-boq-bidder-field-actions{display:flex;align-items:center;gap:5px}
.office-rich-editor{border:1px solid var(--office-border-strong);border-radius:9px;overflow:hidden;background:#fff}.office-rich-toolbar{min-height:46px;padding:6px 8px;border-bottom:1px solid var(--office-border);display:flex;align-items:center;gap:4px;background:#f8f9fa}.office-rich-toolbar button,.office-rich-format-select select{min-height:32px;padding:0 9px;border:1px solid transparent;border-radius:6px;background:transparent;color:var(--office-text);font-size:12px;cursor:pointer}.office-rich-toolbar button:hover{border-color:var(--office-border);background:#fff}.office-rich-toolbar button.is-icon{width:32px;padding:0;display:grid;place-items:center}.office-rich-toolbar-spacer{flex:1}.office-rich-surface{min-height:180px;padding:14px 16px;outline:0;line-height:1.55}.office-rich-surface:focus{box-shadow:inset 0 0 0 1px rgba(15,108,189,.28)}
.office-boq-inline-input,.office-boq-inline-number,.office-boq-inline-select{width:100%;min-width:0;height:30px;padding:0 6px;border:1px solid transparent;border-radius:5px;background:transparent;color:inherit}.office-boq-inline-input:hover,.office-boq-inline-number:hover,.office-boq-inline-select:hover{border-color:var(--office-border)}.office-boq-inline-input:focus,.office-boq-inline-number:focus,.office-boq-inline-select:focus{border-color:#aab5c0;background:#fff;outline:0}.office-boq-inline-input.is-title{font-weight:600}
.office-boq-tree-title{gap:8px}.office-boq-node-oz{flex:0 0 auto;color:var(--office-text-secondary);font-variant-numeric:tabular-nums}.office-boq-node-actions{padding-right:8px;gap:5px}.office-boq-node-action{white-space:nowrap}
.office-boq-collapse-head{width:100%;padding:0;border:0;display:flex;align-items:center;justify-content:space-between;background:transparent;color:var(--office-text);font-size:14px;font-weight:650;cursor:pointer}.office-boq-collapse-head .office-svg-icon{width:14px;height:14px;transition:transform .16s ease}.office-boq-collapsible.is-open .office-boq-collapse-head .office-svg-icon{transform:rotate(180deg)}.office-boq-collapse-body{padding-top:14px}
@media(max-width:1100px){.office-boq-start-options{grid-template-columns:repeat(2,minmax(0,1fr))}.office-ava-summary-strip{grid-template-columns:repeat(2,minmax(0,1fr))}.office-ava-adjustment-row{grid-template-columns:1fr 1fr 90px 110px}.office-ava-adjustment-row>*:nth-child(n+5){grid-column:auto}.office-boq-bidder-field{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:700px){.office-boq-start-options,.office-ava-summary-strip{grid-template-columns:1fr}.office-boq-start-option{min-height:92px}.office-ava-adjustment-row,.office-boq-bidder-field{grid-template-columns:1fr}}


/* r021 AVA final workflow completion: change-order positions, measurements, Excel mapping */
.office-ava-split-layout{margin-top:16px;display:grid;grid-template-columns:minmax(250px,.34fr) minmax(0,1fr);gap:16px;align-items:start}
.office-ava-master-list{min-width:0;border:1px solid var(--office-border);border-radius:10px;overflow:hidden;background:var(--office-surface)}
.office-ava-master-row{width:100%;min-height:64px;padding:10px 12px;border:0;border-bottom:1px solid var(--office-border);display:flex;align-items:center;justify-content:space-between;gap:12px;background:#fff;color:var(--office-text);text-align:left;cursor:pointer}
.office-ava-master-row:last-child{border-bottom:0}.office-ava-master-row:hover{background:var(--office-hover)}.office-ava-master-row.is-selected{background:#f0f4f8;box-shadow:inset 3px 0 0 var(--office-primary)}
.office-ava-master-row>span{min-width:0;display:grid;gap:3px}.office-ava-master-row strong,.office-ava-master-row small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.office-ava-master-row small{color:var(--office-text-muted);font-size:12px}.office-ava-master-row b{flex:0 0 auto;font-size:13px;font-weight:650}
.office-ava-detail-workarea{min-width:0;display:grid;gap:14px}.office-ava-edit-card{padding:16px;border:1px solid var(--office-border);border-radius:10px;background:var(--office-surface-soft)}
.office-ava-subheading{display:flex;align-items:flex-end;justify-content:space-between;gap:14px}.office-ava-subheading h3,.office-ava-excel-preview h3{margin:0;font-size:15px}.office-ava-subheading p{margin:4px 0 0;color:var(--office-text-muted);font-size:12px}
.office-ava-inline-actions{display:flex;align-items:flex-end;gap:8px}.office-ava-contract-item-select{min-width:min(360px,34vw)}
.office-ava-position-editor-list{display:grid;gap:10px}.office-ava-position-editor-row{padding:14px;border:1px solid var(--office-border);border-radius:10px;background:#fff}.office-ava-position-editor-title{display:grid;grid-template-columns:auto minmax(0,1fr);align-items:center;gap:10px}.office-ava-position-editor-title>input{height:38px;padding:0 10px;border:1px solid var(--office-border-strong);border-radius:8px}
.office-ava-position-editor-grid{margin-top:12px;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.office-ava-position-editor-actions{margin-top:10px;display:flex;justify-content:flex-end;gap:8px}
.office-ava-measurement-table{min-width:1320px}.office-ava-measurement-table input{width:100%;min-width:90px;height:34px;padding:0 8px;border:1px solid var(--office-border-strong);border-radius:7px}.office-ava-measurement-table tr.is-warning>td{background:rgba(217,54,62,.045)}
.office-ava-excel-dialog{width:min(1180px,calc(100vw - 32px));max-height:min(900px,calc(100vh - 32px))}.office-ava-excel-source-row{display:flex;align-items:flex-end;gap:10px}.office-ava-excel-mapping{margin-top:16px;padding:14px;border:1px solid var(--office-border);border-radius:10px;background:var(--office-surface-soft)}
.office-ava-mapping-grid{margin-top:12px;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.office-ava-excel-preview{margin-top:16px}.office-ava-excel-preview .office-table{min-width:900px}.office-ava-excel-preview h3{margin-bottom:8px}
@media(max-width:980px){.office-ava-split-layout{grid-template-columns:1fr}.office-ava-position-editor-grid,.office-ava-mapping-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.office-ava-contract-item-select{min-width:0}}
@media(max-width:620px){.office-ava-position-editor-grid,.office-ava-mapping-grid{grid-template-columns:1fr}.office-ava-inline-actions,.office-ava-subheading{align-items:stretch;flex-direction:column}.office-ava-excel-dialog{width:calc(100vw - 16px)}}


/* r021 correction loop – Office UI consistency */
.office-context-split{display:inline-flex;align-items:center;gap:0}.office-context-title-link{display:inline-flex;align-items:center;min-height:40px;padding:0 4px 0 8px;color:var(--office-text);font-weight:700;text-decoration:none;border-radius:10px}.office-context-title-link:hover{background:var(--office-surface-soft)}.office-context-chevron-button{display:inline-grid;place-items:center;width:38px;height:40px;padding:0;border:0;background:transparent;border-radius:10px;cursor:pointer}.office-context-chevron-button:hover{background:var(--office-surface-soft)}.office-context-chevron-button .office-svg-icon{width:18px;height:18px}
.office-context-more,.office-row-menu-trigger,.office-context-menu-trigger{width:38px;height:38px;min-width:38px}.office-context-more .office-svg-icon,.office-row-menu-trigger .office-svg-icon,.office-context-menu-trigger .office-svg-icon{width:18px;height:18px}
.office-rich-toolbar{gap:4px;overflow-x:auto}.office-rich-format-button{width:38px;min-width:38px;height:38px;padding:0;font-size:16px}.office-rich-format-select{order:-1}.office-rich-surface{min-height:220px}.office-rich-editor{overflow:hidden}
.office-procurement-workspace.is-focus-mode,.office-procurement-workspace:fullscreen{position:fixed;inset:0;z-index:9999;background:var(--office-page-bg,#f7f8fa);padding:12px;overflow:auto}.office-procurement-workspace.is-focus-mode>.office-context-bar,.office-procurement-workspace.is-focus-mode>.office-mobile-project-navigation,.office-procurement-workspace.is-focus-mode>.office-procurement-summary,.office-procurement-workspace.is-focus-mode>.office-procurement-tabs{display:none}.office-ava-focus-toggle{font-size:22px}.office-ava-toolbar-controls{display:flex;align-items:center;gap:8px}.office-ava-toolbar-button{height:44px;min-height:44px;padding-block:0}.office-ava-toolbar-icon{width:44px;height:44px}.office-ava-toolbar .office-table-search-control{min-width:min(340px,32vw)}
.office-ava-grid-shell{overflow:auto}.office-ava-grid{min-width:980px}.office-boq-row-actions{min-width:70px;padding-right:12px}.office-boq-node-actions{min-width:210px;display:flex;justify-content:flex-end;gap:6px}.office-boq-node-action{height:38px}.office-boq-node-delete{width:38px;height:38px}.office-row-menu-popover{width:max-content;min-width:230px;max-width:min(320px,calc(100vw - 24px))}.office-row-menu-popover .office-popover-action{white-space:nowrap;min-height:40px}.office-row-menu-popover .office-menu-row .office-svg-icon{width:18px;height:18px;flex:0 0 18px}.office-boq-menu-label{white-space:nowrap}.office-live-number-cell{min-height:38px;display:flex;align-items:center;justify-content:flex-end;padding:0 10px;border:1px solid transparent;border-radius:8px;font-variant-numeric:tabular-nums;cursor:text}.office-live-number-cell:hover{background:var(--office-surface-soft)}.office-live-number-cell.is-editing{border-color:var(--office-accent);box-shadow:0 0 0 2px color-mix(in srgb,var(--office-accent) 18%,transparent);background:white}.office-live-number-input{width:100%;border:0;outline:0;background:transparent;text-align:right;font:inherit;padding:0;box-shadow:none}.office-boq-inline-input,.office-boq-inline-select{border-color:transparent;background:transparent;box-shadow:none}.office-boq-inline-input:hover,.office-boq-inline-input:focus,.office-boq-inline-select:hover,.office-boq-inline-select:focus{border-color:var(--office-border);background:white}.office-boq-inline-number::-webkit-inner-spin-button{display:none}
.office-clickable-row{cursor:pointer}.office-clickable-row:hover{background:var(--office-surface-soft)}.office-specifications-page th.is-boq-number{width:140px}.office-specifications-page th.is-boq-external{width:140px}.office-specifications-page th.is-boq-phase{width:125px}.office-specifications-page th.is-boq-status{width:125px}.office-specifications-page th.is-boq-wide{min-width:220px}.office-hidden-boq-footer{display:flex;justify-content:center;padding:16px 0 4px}
.office-offer-head-grid-r021{display:grid;grid-template-columns:minmax(0,2fr) minmax(180px,.8fr) minmax(220px,1fr);gap:16px}.office-offer-section-heading-r020{align-items:center}.office-offer-section-delete-r016{margin-left:auto}.office-offer-section-commercial-r021{display:grid;grid-template-columns:minmax(280px,.85fr) minmax(440px,1.4fr);gap:28px}.office-offer-surcharge-group,.office-offer-adjustment-group{display:grid;grid-template-columns:1fr 1fr;gap:12px}.office-offer-adjustment-group{padding-left:24px;border-left:1px solid var(--office-border)}.office-offer-special-add-r021{padding-top:12px}.office-offer-commercial-layout-r021{display:grid;grid-template-columns:minmax(420px,.9fr) minmax(420px,1fr);gap:36px;align-items:start}.office-offer-commercial-inputs-r021{display:grid;gap:14px}.office-field-with-pills{display:grid;grid-template-columns:1fr auto;gap:8px;align-items:stretch}.office-pill-switch{display:inline-flex;border:1px solid var(--office-border);border-radius:10px;padding:3px;background:var(--office-surface-soft)}.office-pill-switch button{min-width:44px;border:0;border-radius:7px;background:transparent;font:inherit;font-weight:700}.office-pill-switch button.active{background:white;box-shadow:0 1px 3px rgba(0,0,0,.08)}.office-offer-final-totals-r016{margin-top:0}.office-pdf-mode-switch{display:flex;gap:8px;margin-bottom:12px}
.office-offer-special-heading-r016+* table th:nth-child(2),.office-offer-special-heading-r016+* table td:nth-child(2){min-width:180px}.office-offer-special-heading-r016+* table th:nth-child(3),.office-offer-special-heading-r016+* table td:nth-child(3){min-width:320px}.office-offer-special-heading-r016+* table th:nth-child(4),.office-offer-special-heading-r016+* table td:nth-child(4){width:110px}.office-offer-special-heading-r016+* table th:nth-child(5),.office-offer-special-heading-r016+* table td:nth-child(5){width:140px}
/* Zeiterfassung: stable card rhythm + blue punch-out states */
.office-time-page .office-dashboard-panel+ .office-dashboard-panel,.office-time-work-card+.office-dashboard-panel{margin-top:24px}.office-time-punch-out,.office-punch-out-button{background:#eaf4ff;border-color:#2f80d9;color:#1565b3}.office-time-punch-out:hover,.office-punch-out-button:hover{background:#dceeff;border-color:#1e6fc5;color:#0f589d}.office-time-punch-in{background:#edf8f0;border-color:#87b99a;color:#17713b}.office-time-punch-in:hover{background:#e2f3e7;border-color:#6ba982}.office-period-nav button,.office-time-month-nav button.is-chevron{width:44px;height:44px;border:1px solid var(--office-border);border-radius:10px;background:white;display:grid;place-items:center}.office-period-nav button:hover,.office-time-month-nav button.is-chevron:hover{background:var(--office-surface-soft)}
@media(max-width:1100px){.office-offer-head-grid-r021{grid-template-columns:1fr 180px 220px}.office-offer-section-commercial-r021,.office-offer-commercial-layout-r021{grid-template-columns:1fr}.office-offer-adjustment-group{padding-left:0;border-left:0;border-top:1px solid var(--office-border);padding-top:16px}.office-ava-grid{min-width:1050px}.office-ava-toolbar .office-table-search-control{min-width:220px}}


/* r021 final time corrections */
.office-time-action.is-check-out,.office-dashboard-time-quick-action.is-check-out{background:#eaf4ff;border:1px solid #4b91d1;color:#1266ad;box-shadow:none}.office-time-action.is-check-out .office-svg-icon,.office-dashboard-time-quick-action.is-check-out .office-svg-icon{color:#1266ad}.office-time-action.is-check-out:hover:not(:disabled),.office-dashboard-time-quick-action.is-check-out:hover:not(:disabled){background:#dcecff;border-color:#347fbe;color:#0d5798}.office-time-action.is-check-out:hover:not(:disabled) .office-svg-icon,.office-dashboard-time-quick-action.is-check-out:hover:not(:disabled) .office-svg-icon{color:#0d5798}.office-worktime-card-r019+.office-dashboard-panel,.office-worktime-card-r019+.office-worktime-card-r019,.office-worktime-panel+section{margin-top:24px}


/* r021 correction loop final consistency */
.office-period-navigator-r020>.office-icon-button{width:44px;height:44px;border:1px solid var(--office-border,#d9dee3);border-radius:10px;background:#fff;display:inline-grid;place-items:center;flex:0 0 44px}
.office-period-navigator-r020>.office-icon-button:hover{background:var(--office-surface-soft,#f5f6f7);border-color:#c7cdd3}
.office-period-navigator-r020>.office-icon-button .office-svg-icon{width:20px;height:20px}
.office-boq-bidder-field{display:grid;grid-template-columns:minmax(220px,1.6fr) minmax(120px,.65fr) minmax(120px,.65fr);gap:10px;align-items:end;padding:12px 0}
.office-boq-bidder-field-bottom{grid-column:1/-1;display:flex;align-items:center;justify-content:space-between;gap:16px;min-height:46px}
.office-boq-bidder-field-actions{display:flex;align-items:center;gap:8px;margin-left:auto}
.office-boq-bidder-field .office-checkbox-row{margin:0;align-self:center;min-width:0}
.office-boq-bidder-field .office-icon-button{width:42px;height:42px}
.office-boq-row-actions{min-width:64px}
.office-row-menu-popover{width:max-content;min-width:238px;max-width:min(300px,calc(100vw - 32px))}
.office-row-menu-popover .office-popover-action{white-space:nowrap;min-height:40px}
.office-row-menu-popover .office-menu-row{display:grid;grid-template-columns:22px 1fr;align-items:center;gap:10px}
.office-row-menu-popover .office-menu-row .office-svg-icon{width:18px;height:18px}
.office-boq-inline-input,.office-boq-inline-select{border-color:transparent;background:transparent;box-shadow:none}
.office-boq-inline-input:hover,.office-boq-inline-select:hover{background:#fff;border-color:#dce1e5}
.office-boq-inline-input:focus,.office-boq-inline-select:focus{background:#fff;border-color:#6aa8dc;box-shadow:0 0 0 2px rgba(57,139,204,.16)}
.office-time-action.is-check-out,.office-dashboard-time-quick-action.is-check-out{background:#eaf4ff;border:1px solid #4b91d1;color:#1266ad}
.office-time-action.is-check-out:hover,.office-dashboard-time-quick-action.is-check-out:hover{background:#dcecff;border-color:#357fc2;color:#0d5798}
.office-time-action.is-check-out .office-svg-icon,.office-dashboard-time-quick-action.is-check-out .office-svg-icon{color:currentColor}
@media(max-width:760px){.office-boq-bidder-field{grid-template-columns:1fr}.office-boq-bidder-field-bottom{align-items:flex-start;flex-wrap:wrap}.office-boq-bidder-field-actions{margin-left:0;width:100%;justify-content:flex-end}}
.office-time-page .office-worktime-timesheet-card{margin-top:24px}
.office-row-menu-popover.is-context-menu{z-index:10020;transform:none;max-height:min(70vh,620px);overflow:auto}

/* r021 final dashboard punch-out parity 2026-08-26 */
.office-dashboard-time-actions-layout .office-dashboard-time-quick-action.is-check-out {
    background: #eaf4ff;
    border-color: #4b91d1;
    color: #1266ad;
    box-shadow: none;
}
.office-dashboard-time-actions-layout .office-dashboard-time-quick-action.is-check-out .office-svg-icon {
    color: #1266ad;
}
.office-dashboard-time-actions-layout .office-dashboard-time-quick-action.is-check-out:hover:not(:disabled),
.office-time-action.is-check-out:hover:not(:disabled) {
    background: #d7eaff;
    border-color: #347fbe;
    color: #0d5798;
}
.office-dashboard-time-actions-layout .office-dashboard-time-quick-action.is-check-out:hover:not(:disabled) .office-svg-icon,
.office-time-action.is-check-out:hover:not(:disabled) .office-svg-icon {
    color: #0d5798;
}

/* r022 Block 1 – correction loop */
.office-project-overview-layout-r020 + .office-project-cockpit-r018{margin-top:18px}
.office-status-stack{display:flex;align-items:center;gap:6px;flex-wrap:wrap}
.office-contract-hourly-list-r022{display:grid;gap:10px}
.office-contract-hourly-row-r022{display:grid;grid-template-columns:minmax(220px,1.4fr) minmax(180px,.7fr) auto 38px;gap:10px;align-items:end;padding:12px;border:1px solid var(--office-border);border-radius:10px;background:var(--office-surface-soft)}
.office-contract-hourly-origin-r022{min-height:40px;display:flex;align-items:center}
.office-input-with-suffix{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;border:1px solid var(--office-border-strong);border-radius:9px;background:#fff;overflow:hidden}.office-input-with-suffix input{border:0;border-radius:0;box-shadow:none}.office-input-with-suffix>span{padding:0 10px;color:var(--office-text-muted);font-size:.9rem}

.office-period-navigator-r020>.office-icon-button,.office-period-nav button,.office-time-month-nav button.is-chevron{width:38px;height:38px;min-width:38px;min-height:38px;flex:0 0 38px;border-radius:9px}.office-period-navigator-r020>.office-icon-button .office-svg-icon{width:18px;height:18px}
.office-time-action.is-check-out:hover:not(:disabled),.office-dashboard-time-quick-action.is-check-out:hover:not(:disabled),.office-dashboard-time-actions-layout .office-dashboard-time-quick-action.is-check-out:hover:not(:disabled){background:#d7eaff;border-color:#347fbe;color:#0d5798}

.office-diary-photo-panel-r015 .office-settings-section-heading>label.office-button,.office-construction-detail-card>.office-settings-section-heading>.office-module-action-button{margin-left:auto}
.office-diary-note-entry-r018{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px;align-items:center;margin-top:14px}.office-diary-note-entry-r018 .office-input{min-width:0}
.office-diary-note-list-r018{display:grid;gap:0;margin-top:12px;border:1px solid var(--office-border);border-radius:10px;overflow:visible;background:#fff}.office-diary-note-item-r018{display:grid;grid-template-columns:minmax(0,1fr) 38px;gap:12px;align-items:center;min-height:48px;padding:8px 10px 8px 14px;border-bottom:1px solid var(--office-border)}.office-diary-note-item-r018:last-child{border-bottom:0}.office-diary-note-item-r018>span:first-child{min-width:0;white-space:normal;overflow-wrap:anywhere}.office-diary-note-item-r018 .office-context-menu-wrap{justify-self:end}

.office-boq-kpis{grid-template-columns:repeat(5,minmax(145px,1fr));gap:12px;margin-bottom:18px}.office-boq-kpis .office-kpi-card{display:grid;align-content:center;gap:5px;padding:14px 16px;min-height:88px}.office-boq-kpis .office-kpi-card>span{display:block;color:var(--office-text-muted);font-size:.84rem;line-height:1.2}.office-boq-kpis .office-kpi-card>strong{display:block;font-size:1.4rem;line-height:1.1}
.office-boq-archive-toggle-r022{margin:0;min-height:38px;align-items:center}
.office-specifications-page .office-table-frame{width:100%}.office-specifications-page .office-row-menu-popover{overflow:visible}.office-specifications-page .office-row-menu-popover .office-menu-row{padding-left:12px}

.office-procurement-workspace{width:100%;max-width:none;min-width:0}.office-ava-grid-shell{display:flex;flex-direction:column;width:100%;min-height:max(460px,calc(100vh - 360px));max-height:none;overflow:hidden}.office-ava-grid-viewport{flex:1 1 auto;min-height:0;max-height:none;overflow:auto}.office-ava-grid{width:max-content;min-width:100%}
.office-procurement-workspace.is-focus-mode{position:fixed;inset:0;width:100vw;max-width:none;height:100vh;margin:0;padding:12px;z-index:9999;background:var(--office-page-bg,#f7f8fa);overflow:hidden}.office-procurement-workspace.is-focus-mode .office-ava-grid-shell{height:calc(100vh - 116px);min-height:0}.office-procurement-workspace.is-focus-mode .office-ava-grid-viewport{height:100%}
.office-ava-toolbar .office-table-search-control{position:relative}.office-ava-toolbar .office-table-search{padding-right:40px}.office-ava-toolbar .office-table-search-icon{position:absolute;right:11px;top:50%;transform:translateY(-50%);display:grid;place-items:center;pointer-events:none}
.office-row-menu-wrap{position:relative}.office-row-menu-wrap .office-row-menu-popover.is-open:not(.is-context-menu){position:absolute;left:auto;right:0;top:calc(100% + 6px);transform:none;z-index:10020}.office-row-menu-trigger,.office-context-menu-trigger{width:36px;height:36px;min-width:36px;min-height:36px;padding:0}.office-boq-node-actions{min-width:0}.office-boq-node-action{height:36px;min-height:36px}.office-boq-node-delete{width:36px;height:36px}
.office-boq-tree-toggle{width:26px;height:26px;min-width:26px;border:0;background:transparent;border-radius:6px;display:grid;place-items:center;padding:0}.office-boq-tree-toggle:hover{background:var(--office-surface-soft)}.office-boq-tree-toggle .office-svg-icon{width:14px;height:14px;transition:transform .15s ease}.office-boq-tree-toggle[aria-expanded="false"] .office-svg-icon{transform:rotate(-90deg)}

@media(max-width:1050px){.office-boq-kpis{grid-template-columns:repeat(3,minmax(145px,1fr))}.office-contract-hourly-row-r022{grid-template-columns:1fr 1fr auto}.office-contract-hourly-origin-r022{grid-column:1/3}.office-contract-hourly-row-r022>.office-icon-button{grid-column:3;grid-row:1}}
@media(max-width:700px){.office-boq-kpis{grid-template-columns:1fr 1fr}.office-contract-hourly-row-r022{grid-template-columns:1fr}.office-contract-hourly-origin-r022,.office-contract-hourly-row-r022>.office-icon-button{grid-column:auto;grid-row:auto}.office-diary-note-entry-r018{grid-template-columns:1fr}.office-diary-note-entry-r018>.office-button{justify-self:end}}


/* r023 Office UI consolidation: clean component rules, no specificity escalation */
:root{--office-page-gap:16px;--office-control-height:34px;--office-icon-button-size:34px;--office-page-title-size:22px;}
.office-page-heading{margin:0 0 var(--office-page-gap);gap:14px}.office-page-heading h1,.office-construction-detail-heading h1{font-size:var(--office-page-title-size);line-height:1.18;letter-spacing:-.25px}.office-page>.office-context-bar+*{margin-top:14px}.office-page .office-eyebrow{display:none}.office-context-back{width:34px;height:34px}.office-context-back-icon{width:18px;height:18px}.office-context-chevron-button{width:30px;height:30px;min-width:30px;min-height:30px;padding:0}.office-context-chevron{width:12px;height:12px}.office-context-more{width:34px;height:34px;min-width:34px;min-height:34px;padding:0}.office-context-more .office-svg-icon{width:16px;height:16px}.office-context-main{gap:8px}.office-context-path{gap:6px}
.office-row-menu-trigger,.office-context-menu-trigger{width:34px;height:34px;min-width:34px;min-height:34px;padding:0}.office-row-menu-trigger .office-svg-icon{width:16px;height:16px}.office-row-menu-popover[data-office-floating-popover],.office-context-popover[data-office-floating-popover],.office-columns-popover[data-office-floating-popover]{position:fixed;z-index:10020;max-width:min(320px,calc(100vw - 24px));max-height:min(70vh,620px);overflow:auto}.office-table-frame{overflow:visible;border-radius:var(--office-radius-md)}.office-table-viewport{overflow:visible;border-radius:inherit}.office-table thead tr:first-child th:first-child{border-top-left-radius:var(--office-radius-md)}.office-table thead tr:first-child th:last-child{border-top-right-radius:var(--office-radius-md)}@media(max-width:900px){.office-table-frame.is-scrollable .office-table-viewport{overflow:auto}.office-table-frame.is-scrollable{overflow:hidden}}
.office-period-nav,.office-calendar-nav{gap:6px}.office-period-nav button,.office-calendar-nav button,.office-period-chevron{min-height:32px;height:32px}.office-period-chevron{width:32px;min-width:32px;padding:0}.office-period-chevron .office-svg-icon{width:12px;height:12px}
.office-time-stamp-button:hover,.office-time-stamp-button:focus-visible,.office-time-clock-button:hover,.office-time-clock-button:focus-visible{color:var(--office-primary);border-color:var(--office-primary);background:color-mix(in srgb,var(--office-primary) 8%,white)}
.office-actions-right{display:flex;align-items:center;justify-content:space-between}.office-align-right{margin-left:auto}.office-settings-section-heading.office-actions-right>.office-button{margin-left:auto}.office-company-project-time-filter-actions{grid-column:1/-1;display:flex;align-items:center;gap:8px}.office-company-project-time-report{margin-left:auto}.office-time-filter-inline-r023{display:flex;align-items:end;gap:12px;flex-wrap:wrap}.office-compact-filter{min-width:220px}.office-date-range-r023{display:grid;grid-template-columns:1fr 1fr;gap:8px}.office-date-range-r023 label{display:grid;gap:5px}.office-date-range-r023 label>span{font-size:12px;color:var(--office-text-secondary)}
.office-task-plan-actions-r023{display:flex;justify-content:flex-end}.office-file-button-r023{height:34px}.office-file-button-r023 .office-svg-icon,.office-photo-upload-button-r023 .office-svg-icon{width:16px;height:16px}.office-task-description-r023,.office-task-comment-add-r023 input{border:1px solid var(--office-border);border-radius:var(--office-radius-sm);background:var(--office-surface);padding:9px 10px;box-shadow:none}.office-task-comment-add-r023{display:flex;gap:8px;align-items:center}.office-task-comment-add-r023 input{flex:1;min-width:0}.office-task-comment-head-r023{display:flex;align-items:center;justify-content:space-between;gap:12px}.office-history-row-r023{display:grid;grid-template-columns:150px minmax(0,1fr);gap:16px;padding:10px 0;border-bottom:1px solid var(--office-border)}.office-history-row-r023:last-child{border-bottom:0}
.office-external-project-title-r023{font-size:24px;line-height:1.18}.office-external-summary-card{min-height:0;padding-block:12px}.office-external-summary-card strong,.office-external-summary-card span{white-space:nowrap}.office-external-comment-r023 textarea,.office-external-comment-r023 input,.office-external-comment-r023 .office-file-drop-r018{border-radius:var(--office-radius-sm);border:1px solid var(--office-border);box-shadow:none}
.office-offer-section-delete-r016{margin-left:auto}.office-offer-card{min-width:0}.office-offer-values strong{white-space:nowrap;overflow:visible;text-overflow:clip}.office-project-grid,.office-offer-grid{grid-template-columns:repeat(auto-fill,minmax(330px,1fr))}
.office-project-overview-analysis-grid-r018{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}.office-project-overview-analysis-grid-r018>.office-project-analysis-card-r018{min-width:0}.office-project-analysis-card-r018.office-cost-development{max-width:none}
.office-check-picker-r023 .office-combobox-option.is-selected::after{content:'✓';margin-left:auto;color:var(--office-primary);font-weight:700}.office-check-picker-r023 .office-combobox-option .office-svg-icon[style*="plus"]{display:none}
.office-project-cost-planning-r023 .office-settings-section-heading{margin-bottom:14px}.office-choice-cards-r023{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.office-choice-cards-r023.is-four{grid-template-columns:repeat(4,minmax(0,1fr))}.office-choice-card-r023{display:flex;flex-direction:column;gap:4px;text-align:left;padding:14px;border:1px solid var(--office-border);border-radius:var(--office-radius-md);background:var(--office-surface);cursor:pointer}.office-choice-card-r023.is-selected{border-color:var(--office-primary);box-shadow:0 0 0 2px color-mix(in srgb,var(--office-primary) 16%,transparent)}.office-cost-editor-r023{width:min(1500px,calc(100vw - 40px));max-width:none;height:min(900px,calc(100vh - 36px))}.office-cost-toolbar-r023{display:flex;justify-content:space-between;gap:12px;align-items:center;margin-bottom:12px}.office-inline-input-r023{width:100%;border:1px solid transparent;background:transparent;padding:6px 8px;border-radius:6px}.office-inline-input-r023:hover,.office-inline-input-r023:focus{border-color:var(--office-border);background:var(--office-surface)}.office-chevron-button-r023{width:28px;height:28px;border:0;background:transparent;border-radius:6px;display:grid;place-items:center}.office-chevron-button-r023 .office-svg-icon{width:12px;height:12px;transition:transform .16s ease}.office-chevron-button-r023 .office-svg-icon.is-open{transform:rotate(90deg)}.office-cost-level-1 td{font-weight:700}.office-cost-level-2 td:first-of-type,.office-cost-level-2 td:nth-of-type(2){padding-left:18px}.office-cost-level-3 td:first-of-type,.office-cost-level-3 td:nth-of-type(2){padding-left:34px}.office-cost-add-row-r023{display:flex;justify-content:flex-end;margin-top:10px}
.office-boq-node-action,.office-boq-node-delete{height:34px;min-height:34px}.office-boq-node-delete{width:34px}.office-ava-grid-shell{min-height:calc(100vh - 260px)}.office-boq-editor-tree{min-width:980px}
@media(max-width:900px){.office-choice-cards-r023,.office-choice-cards-r023.is-four{grid-template-columns:1fr 1fr}.office-date-range-r023{grid-template-columns:1fr}.office-company-project-time-report{margin-left:0}.office-external-project-title-r023{font-size:21px}}

/* r023 cost overview */
.office-cost-overview-r023{display:grid;gap:16px}.office-cost-kpis-r023{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}.office-cost-kpis-r023 .office-kpi-card{min-width:0}.office-cost-analysis-r023{margin-top:0}@media(max-width:1100px){.office-cost-kpis-r023{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:720px){.office-cost-kpis-r023{grid-template-columns:1fr}}

.office-offer-list-toolbar-r018{align-items:end}.office-offer-project-filter-r023{margin-left:auto;min-width:220px}.office-offer-project-filter-r023 span{font-size:12px}

.office-photo-card-actions-r018{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px}.office-photo-card-actions-r018>.office-button{width:100%;justify-content:center;min-height:32px}.office-diary-report-heading-r019{gap:18px}.office-diary-report-heading-r019 .office-dashboard-panel-tabs{margin-top:8px}.office-diary-note-entry-r018 .office-input{min-height:38px;border:1px solid var(--office-border);border-radius:var(--office-radius-sm);background:var(--office-surface);padding:8px 10px}


/* r023 Block 1 – final component harmonisation (central, no specificity hacks) */
.office-period-navigator-r020>.office-button,
.office-period-navigator-r020>.office-icon-button{height:34px;min-height:34px}
.office-period-navigator-r020>.office-icon-button{width:34px;min-width:34px;flex:0 0 34px;padding:0;border-radius:7px}
.office-period-navigator-r020>.office-icon-button .office-svg-icon{width:13px;height:13px}

.office-dashboard-time-clock.is-check-in,
.office-dashboard-time-clock.is-check-out,
.office-worktime-live-clock.is-check-in,
.office-worktime-live-clock.is-check-out{color:var(--office-primary);background:color-mix(in srgb,var(--office-primary) 8%,var(--office-surface));border-radius:8px}
.office-time-action.is-time-recorded,
.office-dashboard-time-quick-action.is-time-recorded{border-color:var(--office-primary);color:var(--office-primary);background:color-mix(in srgb,var(--office-primary) 8%,var(--office-surface))}
.office-time-action.is-time-recorded:hover,
.office-dashboard-time-quick-action.is-time-recorded:hover{border-color:var(--office-primary-hover);color:var(--office-primary-hover);background:color-mix(in srgb,var(--office-primary) 12%,var(--office-surface))}

.office-boq-kpis{display:grid;grid-template-columns:repeat(5,minmax(145px,1fr));gap:12px;margin-bottom:18px}
.office-boq-kpis .office-kpi-card{min-width:0;min-height:82px;padding:12px 14px;display:grid;align-content:center;gap:4px}
.office-boq-kpis .office-kpi-card>span{display:block;line-height:1.2}
.office-boq-kpis .office-kpi-card>strong{display:block;line-height:1.1}

.office-ava-process-panel>.office-panel-heading{align-items:center}
.office-ava-process-panel>.office-panel-heading>.office-button{margin-left:auto}
.office-ava-process-panel .office-textarea{width:100%;min-height:96px}

@media(max-width:1050px){.office-boq-kpis{grid-template-columns:repeat(3,minmax(145px,1fr))}}
@media(max-width:700px){.office-boq-kpis{grid-template-columns:1fr 1fr}}
.office-cost-chevron-spacer-r023{display:inline-block;width:28px;height:28px}


/* r023 Block 1 – LV work-table rebuild */
.office-boq-process-dialog{position:fixed;left:50%;top:50%;transform:translate(-50%,-50%);z-index:10011;margin:0}
.office-dialog-backdrop{position:fixed;inset:0;z-index:10010;background:rgba(24,32,40,.28)}
.office-boq-start-options{align-items:stretch}.office-boq-start-option{min-height:102px;padding:13px 14px;align-content:center}.office-boq-start-option>.office-svg-icon{width:20px;height:20px;align-self:center}
.office-ava-toolbar{gap:8px}.office-ava-toolbar-controls{gap:6px;flex-wrap:wrap}.office-ava-toolbar-controls.is-left{align-items:center}.office-ava-toolbar-button{min-height:34px;height:34px;padding:0 10px}.office-ava-toolbar-icon{width:34px;height:34px;min-width:34px;min-height:34px}.office-ava-toolbar .office-svg-icon{width:15px;height:15px}
.office-ava-toolbar .office-table-search-control{position:relative;min-width:230px}.office-ava-toolbar .office-table-search{height:34px;padding:0 10px 0 34px}.office-ava-toolbar .office-table-search-icon{left:10px;right:auto;top:50%;width:16px;height:16px;transform:translateY(-50%)}
.office-ava-grid-row{min-height:36px}.office-ava-grid-row> *{min-height:36px;padding-top:4px;padding-bottom:4px}.office-ava-grid-row.is-header> *{min-height:38px;padding-top:7px;padding-bottom:7px}.office-ava-grid-row.is-title> *{min-height:38px}
.office-boq-inline-input,.office-boq-inline-number,.office-boq-inline-select{height:26px;min-height:26px;padding:0 5px;border-color:transparent;background:transparent}.office-boq-inline-input:hover,.office-boq-inline-number:hover,.office-boq-inline-select:hover{border-color:#d7dde2;background:#fff}.office-boq-inline-input:focus,.office-boq-inline-number:focus,.office-boq-inline-select:focus{border-color:var(--office-primary);background:#fff;box-shadow:0 0 0 2px color-mix(in srgb,var(--office-primary) 12%,transparent)}
.office-boq-inline-title-cell{display:flex;align-items:center;gap:6px;min-width:0}.office-boq-item-oz{flex:0 0 auto;font-variant-numeric:tabular-nums}.office-boq-drag-handle{width:22px;height:24px;display:grid;place-items:center;flex:0 0 22px;color:var(--office-text-muted);cursor:grab;border-radius:5px}.office-boq-drag-handle:hover{background:var(--office-surface-soft);color:var(--office-text)}.office-boq-drag-handle:active{cursor:grabbing}.office-boq-drag-handle .office-svg-icon{width:14px;height:14px}
.office-boq-row-actions{display:flex;align-items:center;justify-content:flex-end;gap:4px;min-width:0;padding-left:4px;padding-right:6px}.office-boq-row-tool,.office-boq-row-delete,.office-boq-node-action,.office-boq-node-delete{width:30px;height:30px;min-width:30px;min-height:30px;padding:0;border:1px solid var(--office-border);background:var(--office-surface);border-radius:6px}.office-boq-row-tool .office-svg-icon,.office-boq-row-delete .office-svg-icon,.office-boq-node-action .office-svg-icon,.office-boq-node-delete .office-svg-icon{width:14px;height:14px}.office-boq-row-delete,.office-boq-node-delete{color:var(--office-danger,#b42318)}
.office-boq-node-actions{gap:4px;padding-right:6px}.office-boq-tree-title{display:flex;align-items:center;gap:6px}.office-boq-tree-toggle{width:24px;height:24px;min-width:24px}
.office-boq-item-row.is-preliminary>.office-boq-inline-title-cell,.office-boq-item-row.is-note>.office-boq-inline-title-cell,.office-boq-item-row.is-text>.office-boq-inline-title-cell,.office-boq-item-row.is-execution-description>.office-boq-inline-title-cell{grid-column:1/6}.office-boq-item-row.is-preliminary>*,.office-boq-item-row.is-note>*,.office-boq-item-row.is-text>*,.office-boq-item-row.is-execution-description>*{background:var(--office-surface-soft)}.office-boq-item-row.is-preliminary>.office-boq-inline-title-cell{font-weight:650;border-left:3px solid var(--office-primary)}.office-boq-item-row.is-note>.office-boq-inline-title-cell{font-style:italic}.office-boq-item-row.is-execution-description>.office-boq-inline-title-cell{font-weight:600}
.office-boq-type-badge{flex:0 0 auto;display:inline-flex;align-items:center;height:20px;padding:0 6px;border:1px solid var(--office-border);border-radius:999px;background:#fff;font-size:10px;font-weight:700;letter-spacing:.02em;color:var(--office-text-secondary)}.office-boq-type-badge.is-preliminary{border-color:color-mix(in srgb,var(--office-primary) 45%,var(--office-border));color:var(--office-primary)}
.office-row-menu-popover[data-office-popover]{position:fixed;z-index:10030;max-height:min(70vh,620px);overflow:auto}.office-row-menu-popover[data-office-popover][aria-hidden="true"]{display:none}.office-row-menu-popover[data-office-popover].is-open{display:block}
.office-procurement-workspace.is-preview-mode .office-ava-grid-shell .office-table-toolbar,.office-procurement-workspace.is-preview-mode .office-boq-row-actions,.office-procurement-workspace.is-preview-mode .office-boq-row-meta{display:none}.office-procurement-workspace.is-preview-mode .office-ava-grid{--office-ava-grid-columns:minmax(420px,2.8fr) 90px 80px 115px 125px}.office-procurement-workspace.is-preview-mode .office-ava-grid-row.is-header>div:nth-last-child(-n+2){display:none}.office-procurement-workspace.is-preview-mode .office-boq-inline-input,.office-procurement-workspace.is-preview-mode .office-boq-inline-select{pointer-events:none}.office-procurement-workspace.is-preview-mode .office-boq-drag-handle{display:none}
@media(max-width:900px){.office-ava-grid-viewport{overflow:auto}.office-ava-toolbar-controls.is-left{min-width:760px}.office-ava-toolbar{overflow-x:auto}}
@media print{body *{visibility:hidden}.office-procurement-workspace,.office-procurement-workspace *{visibility:visible}.office-procurement-workspace{position:absolute;inset:0;width:100%;padding:0}.office-context-bar,.office-mobile-project-navigation,.office-procurement-summary,.office-procurement-tabs,.office-ava-grid-shell .office-table-toolbar,.office-boq-row-actions,.office-boq-row-meta,.office-boq-detail-sidebar,.office-boq-detail-scrim{display:none}.office-ava-grid-shell{display:block;min-height:0;overflow:visible}.office-ava-grid-viewport{overflow:visible}.office-ava-grid{width:100%;min-width:0;--office-ava-grid-columns:minmax(360px,2.6fr) 80px 70px 100px 110px}.office-ava-grid-row.is-header>div:nth-last-child(-n+2){display:none}.office-boq-inline-input,.office-boq-inline-select{border:0;padding:0}.office-boq-drag-handle{display:none}}

/* r023 Block 1 LV continuation: live-grid, upload and AVA process refinements */
input[type="file"]:not([hidden]){
    min-height:var(--office-control-height,34px);
    width:100%;
    padding:4px 6px;
    border:1px solid var(--office-border);
    border-radius:var(--office-radius-sm);
    background:var(--office-surface);
    color:var(--office-text);
    font:inherit;
}
input[type="file"]:not([hidden])::file-selector-button{
    min-height:30px;
    margin:-1px 10px -1px -2px;
    padding:0 12px;
    border:1px solid var(--office-border);
    border-radius:7px;
    background:var(--office-surface);
    color:var(--office-text);
    font:600 .86rem/1 var(--office-font-family,Arial,sans-serif);
    cursor:pointer;
}
input[type="file"]:not([hidden])::file-selector-button:hover{background:var(--office-hover);border-color:var(--office-border-strong)}
.office-file-upload-control{min-height:34px;height:34px;padding:0 11px;border:1px solid var(--office-border);border-radius:8px;background:var(--office-surface);display:inline-flex;align-items:center;gap:8px;cursor:pointer;font-weight:600}.office-file-upload-control:hover{background:var(--office-hover);border-color:var(--office-border-strong)}.office-file-upload-control .office-svg-icon{width:16px;height:16px}

.office-procurement-workspace .office-ava-grid-shell{height:calc(100dvh - 250px);min-height:480px;max-height:calc(100dvh - 190px);overflow:hidden}
.office-procurement-workspace .office-ava-grid-viewport{min-height:0;overflow:auto;overscroll-behavior:contain;scrollbar-gutter:stable both-edges;scrollbar-width:thin;touch-action:pan-x pan-y}
.office-procurement-workspace .office-ava-grid{min-width:900px;width:max-content}
.office-procurement-workspace .office-ava-grid-row{min-height:32px}
.office-procurement-workspace .office-ava-grid-row>*{min-height:32px;padding-top:2px;padding-bottom:2px}
.office-procurement-workspace .office-ava-grid-row.is-header{position:sticky;top:0;z-index:8}
.office-procurement-workspace .office-ava-grid-row.is-header>*{min-height:34px;padding-top:5px;padding-bottom:5px;background:var(--office-table-head-bg,#f6f7f8)}
.office-procurement-workspace .office-ava-grid-row.is-title>*{min-height:34px}
.office-boq-inline-title-cell{min-width:0;display:flex;align-items:center;gap:6px}
.office-boq-inline-input,.office-boq-inline-select,.office-live-number-cell{min-height:26px;height:26px;border-radius:5px;font-size:.88rem}
.office-boq-inline-input{padding:2px 5px}
.office-boq-inline-select{padding:1px 22px 1px 5px}
.office-live-number-cell{padding:0 5px}
.office-boq-drag-handle{width:20px;height:24px;flex:0 0 20px;display:grid;place-items:center;cursor:grab;opacity:.55}.office-boq-drag-handle:active{cursor:grabbing}.office-boq-drag-handle .office-svg-icon{width:14px;height:14px}.office-boq-item-row:hover .office-boq-drag-handle{opacity:1}
.office-boq-tree-toggle{position:relative;z-index:3;cursor:pointer;pointer-events:auto}.office-boq-tree-title{position:relative;z-index:2}
.office-boq-row-actions{gap:3px;padding-left:3px;padding-right:4px}.office-boq-row-delete,.office-row-menu-trigger{width:28px;height:28px;min-width:28px;min-height:28px;border:1px solid var(--office-border);border-radius:6px;background:var(--office-surface)}.office-boq-row-delete .office-svg-icon,.office-row-menu-trigger .office-svg-icon{width:14px;height:14px}
.office-ava-grid-row.is-preliminary .office-boq-inline-title-cell,.office-ava-grid-row.is-note .office-boq-inline-title-cell,.office-ava-grid-row.is-execution-description .office-boq-inline-title-cell,.office-ava-grid-row.is-text .office-boq-inline-title-cell{grid-column:1/6}
.office-ava-grid-row.is-preliminary .office-boq-row-meta,.office-ava-grid-row.is-note .office-boq-row-meta,.office-ava-grid-row.is-execution-description .office-boq-row-meta,.office-ava-grid-row.is-text .office-boq-row-meta{grid-column:6}
.office-ava-grid-row.is-preliminary .office-boq-row-actions,.office-ava-grid-row.is-note .office-boq-row-actions,.office-ava-grid-row.is-execution-description .office-boq-row-actions,.office-ava-grid-row.is-text .office-boq-row-actions{grid-column:7}
.office-ava-grid-row.is-preliminary>*{background:color-mix(in srgb,#e8b931 10%,var(--office-surface))}.office-ava-grid-row.is-note>*{background:color-mix(in srgb,#5e8ec7 8%,var(--office-surface))}.office-ava-grid-row.is-execution-description>*{background:color-mix(in srgb,#6c8f6c 9%,var(--office-surface))}
.office-boq-type-badge{flex:0 0 auto;font-size:.68rem;line-height:1;padding:3px 6px;border-radius:999px;border:1px solid var(--office-border);font-weight:700;letter-spacing:.01em}
.office-ava-toolbar-controls.is-left{display:flex;align-items:center;gap:5px;flex-wrap:wrap}.office-ava-toolbar-button{min-height:32px;height:32px;padding-inline:9px}.office-ava-toolbar-icon{width:32px;height:32px;min-width:32px;min-height:32px}
.office-ava-toolbar .office-table-search-control{min-width:240px}.office-ava-toolbar .office-table-search{height:32px;padding-left:32px;padding-right:9px}.office-ava-toolbar .office-table-search-icon{left:9px;right:auto}.office-ava-toolbar .office-table-search-icon .office-svg-icon{width:14px;height:14px}
.office-row-menu-popover[data-office-floating-popover]{overflow:auto;overscroll-behavior:contain}
.office-panel-heading-actions{display:flex;align-items:center;gap:8px;margin-left:auto}
.office-ava-contractor-invoice-create{margin-bottom:14px}
@media(max-width:900px){.office-procurement-workspace .office-ava-grid-shell{height:auto;max-height:none;min-height:460px}.office-procurement-workspace .office-ava-grid-viewport{max-height:70dvh}}

/* r023 Block 1 final correction gate – shared Office UI rules */
:root{--office-page-title-size:20px}
.office-project-page-heading{margin:0 0 var(--office-page-gap);gap:12px}
.office-project-page-heading h1{font-size:var(--office-page-title-size);line-height:1.18;letter-spacing:-.2px;margin:0}
.office-project-page-heading p{margin-top:4px}
.office-context-back{width:36px;height:36px;min-width:36px;min-height:36px;padding:0}
.office-context-back-icon{width:20px;height:20px}
.office-context-chevron-button{width:26px;height:30px;min-width:26px;min-height:30px;padding:0}
.office-context-chevron-button .office-svg-icon,.office-context-chevron{width:10px;height:10px}
.office-context-more{width:30px;height:30px;min-width:30px;min-height:30px;padding:0}
.office-context-more .office-svg-icon{width:14px;height:14px}
.office-context-title-link{min-height:34px;padding-left:6px;padding-right:3px}
.office-context-main{align-items:center;gap:7px}.office-context-path{align-items:center;gap:5px}

/* KPI cards: one vertical hierarchy everywhere */
.office-kpi-card{display:grid;grid-template-columns:1fr;align-content:center;align-items:start;gap:5px;min-width:0;padding:14px 16px}
.office-kpi-card>span,.office-kpi-card>strong,.office-kpi-card>small{display:block;min-width:0}
.office-kpi-card>span{font-size:.8rem;line-height:1.2;color:var(--office-text-muted);font-weight:650}
.office-kpi-card>strong{font-size:1.35rem;line-height:1.15;font-variant-numeric:tabular-nums;overflow-wrap:anywhere}
.office-kpi-card>small{font-size:.74rem;line-height:1.25;color:var(--office-text-muted)}
.office-cost-kpis-r023 .office-kpi-card,.office-boq-kpis .office-kpi-card{min-height:86px}

/* Project cockpit: balanced two-column desktop layout */
.office-project-overview-layout-r020{grid-template-columns:minmax(0,1fr) minmax(300px,1fr);gap:16px}
.office-project-kpi-column-r020{grid-template-columns:repeat(2,minmax(0,1fr));align-content:start}
.office-project-kpi-column-r020 .office-project-kpi-r018{min-height:104px}
.office-project-analysis-grid-r018{grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:16px}
.office-project-analysis-card-r018{min-width:0}
@media(max-width:1100px){.office-project-overview-layout-r020,.office-project-analysis-grid-r018{grid-template-columns:1fr}.office-project-kpi-column-r020{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:640px){.office-project-kpi-column-r020{grid-template-columns:1fr}}

/* Section actions must be visually anchored right */
.office-settings-section-heading.office-actions-right,.office-diary-tasks-heading-r023{display:flex;align-items:flex-start;justify-content:space-between;gap:16px}
.office-settings-section-heading.office-actions-right>:last-child,.office-diary-tasks-heading-r023>:last-child{margin-left:auto;flex:0 0 auto}
.office-project-invoices-panel>.office-settings-section-heading>.office-button,.office-project-cost-planning-r023>.office-settings-section-heading>.office-button{margin-left:auto}

/* Compact filters can intentionally hide their visual label */
.office-filter-without-title>span.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.office-filter-without-title{align-self:flex-end}
.office-filter-without-title select{min-height:var(--office-control-height)}

/* All Office table frames: clean corners, stable header, popovers must not create table scrollbars */
.office-table-frame{border:1px solid var(--office-border);border-radius:var(--office-radius-md);background:var(--office-surface);isolation:isolate}
.office-table-viewport{border-radius:inherit}
.office-table{border-collapse:separate;border-spacing:0;width:100%}
.office-table thead tr:first-child th:first-child{border-top-left-radius:calc(var(--office-radius-md) - 1px)}
.office-table thead tr:first-child th:last-child{border-top-right-radius:calc(var(--office-radius-md) - 1px)}
.office-table tbody tr:last-child td:first-child{border-bottom-left-radius:calc(var(--office-radius-md) - 1px)}
.office-table tbody tr:last-child td:last-child{border-bottom-right-radius:calc(var(--office-radius-md) - 1px)}
.office-table-frame>.office-table-viewport{overflow-x:auto;overflow-y:visible;scrollbar-gutter:auto}
.office-popover[data-office-floating-popover]{position:fixed;z-index:2147483000;max-height:min(70vh,620px);overflow:auto;overscroll-behavior:contain}
.office-popover[data-office-floating-popover]:popover-open{display:block}

/* Specifications overview: real KPI cards + purposeful column widths */
.office-specifications-page .office-boq-kpis{display:grid;grid-template-columns:repeat(5,minmax(150px,1fr));gap:12px;margin-bottom:16px}
.office-specifications-page .office-table{table-layout:fixed;min-width:1120px}
.office-specifications-page th.is-boq-number{width:118px}
.office-specifications-page th.is-boq-external{width:118px}
.office-specifications-page th.is-boq-unit{width:132px}
.office-specifications-page th.is-boq-name{width:auto}
.office-specifications-page th.is-boq-phase{width:126px}
.office-specifications-page th.is-boq-status{width:126px}
.office-specifications-page th.office-table-actions-column{width:62px}
.office-specifications-page td:nth-child(5){font-weight:600}
@media(max-width:1050px){.office-specifications-page .office-boq-kpis{grid-template-columns:repeat(3,minmax(150px,1fr))}}
@media(max-width:700px){.office-specifications-page .office-boq-kpis{grid-template-columns:1fr 1fr}}

/* LV live worktable: one grid definition for header, structure and positions */
.office-procurement-workspace .office-ava-grid-shell{height:calc(100dvh - 238px);min-height:500px;max-height:calc(100dvh - 170px);overflow:hidden;border:1px solid var(--office-border);border-radius:var(--office-radius-md);background:var(--office-surface)}
.office-procurement-workspace .office-ava-grid-viewport{height:100%;min-height:0;overflow:auto;overscroll-behavior:contain;scrollbar-gutter:stable;touch-action:pan-x pan-y}
.office-procurement-workspace .office-ava-grid{width:100%;min-width:1040px;max-width:none;align-content:start}
.office-procurement-workspace .office-ava-grid-row{grid-template-columns:var(--office-ava-grid-columns);width:100%;min-width:1040px;min-height:30px}
.office-procurement-workspace .office-ava-grid-row>*{box-sizing:border-box;min-height:30px;padding:2px 7px;overflow:hidden}
.office-procurement-workspace .office-ava-grid-row.is-header{position:sticky;top:0;z-index:12}
.office-procurement-workspace .office-ava-grid-row.is-header>*{min-height:34px;padding:6px 7px;background:var(--office-table-head-bg);font-size:.78rem}
.office-procurement-workspace .office-ava-grid-row.is-title>*{min-height:32px}
.office-boq-tree-title,.office-boq-inline-title-cell{min-width:0;overflow:hidden}
.office-boq-tree-title .office-boq-inline-input,.office-boq-inline-title-cell .office-boq-inline-input{flex:1 1 auto;min-width:80px;width:100%}
.office-boq-inline-input,.office-boq-inline-select,.office-live-number-cell{height:25px;min-height:25px;font-size:.84rem}
.office-boq-tree-toggle{width:22px;height:22px;min-width:22px;min-height:22px;border:0;background:transparent;display:grid;place-items:center;border-radius:5px}
.office-boq-tree-toggle:hover{background:var(--office-surface-hover)}
.office-boq-tree-toggle .office-svg-icon{width:11px;height:11px;transition:transform .15s ease}
.office-boq-tree-toggle[aria-expanded="false"] .office-svg-icon{transform:rotate(-90deg)}
.office-boq-drag-handle{width:20px;height:22px;flex:0 0 20px}
.office-boq-row-meta{justify-content:center;padding-left:3px;padding-right:3px}
.office-boq-row-actions,.office-boq-node-actions{justify-content:flex-end;gap:3px;padding:1px 4px;min-width:0}
.office-boq-row-delete,.office-boq-node-delete,.office-row-menu-trigger{width:26px;height:26px;min-width:26px;min-height:26px;border:1px solid var(--office-border);border-radius:6px;background:var(--office-surface)}
.office-boq-row-delete .office-svg-icon,.office-boq-node-delete .office-svg-icon,.office-row-menu-trigger .office-svg-icon{width:13px;height:13px}
.office-ava-grid-row.is-preliminary .office-boq-inline-title-cell,.office-ava-grid-row.is-note .office-boq-inline-title-cell,.office-ava-grid-row.is-execution-description .office-boq-inline-title-cell,.office-ava-grid-row.is-text .office-boq-inline-title-cell{grid-column:1/6}
.office-ava-grid-row.is-preliminary .office-boq-row-meta,.office-ava-grid-row.is-note .office-boq-row-meta,.office-ava-grid-row.is-execution-description .office-boq-row-meta,.office-ava-grid-row.is-text .office-boq-row-meta{grid-column:6}
.office-ava-grid-row.is-preliminary .office-boq-row-actions,.office-ava-grid-row.is-note .office-boq-row-actions,.office-ava-grid-row.is-execution-description .office-boq-row-actions,.office-ava-grid-row.is-text .office-boq-row-actions{grid-column:7}

/* Honorar > Auftrag: same Office panel/form language as other project sections */
.office-project-contract-panel-r019{display:grid;gap:16px}
.office-contract-editor-r023{display:grid;gap:16px}
.office-contract-editor-r023>.office-form-grid,.office-contract-subsection-r019{margin:0;padding:16px;border:1px solid var(--office-border);border-radius:var(--office-radius-md);background:var(--office-surface)}
.office-contract-subsection-r019 .office-settings-section-heading{margin-bottom:12px}
.office-contract-editor-footer-r019{margin-top:0;padding-top:14px;border-top:1px solid var(--office-border)}

/* Project costs: stable KPI hierarchy and Office heading */
.office-cost-overview-r023 .office-cost-kpis-r023{align-items:stretch}
.office-project-cost-planning-r023>.office-settings-section-heading{padding-bottom:14px;border-bottom:1px solid var(--office-border)}
.office-project-cost-planning-r023>.office-settings-section-heading h2{font-size:18px;margin:0 0 4px}

/* Bautagebuch: spacing and right aligned task action */
.office-diary-report-heading-r023{align-items:flex-end;margin-bottom:18px}
.office-diary-report-heading-r023>.office-dashboard-panel-tabs{margin-left:auto;margin-top:10px}
.office-diary-tasks-heading-r023>.office-module-action-button{margin-left:auto}
.office-diary-note-entry-r018{margin-top:4px}

/* Date/control upload standard remains compact system-wide */
input[type="file"]:not([hidden]){min-height:34px;border:1px solid var(--office-border);border-radius:8px;background:var(--office-surface);font:inherit}
input[type="file"]:not([hidden])::file-selector-button{min-height:30px;border:1px solid var(--office-border);border-radius:7px;background:var(--office-surface);font:600 .86rem/1 var(--office-font-family,Arial,sans-serif)}


/* r023 Block 1 completion audit 2026-08-26: final cross-module corrections */
/* Canonical page hierarchy, including project sub-pages */
.office-page-heading h1,
.office-project-page-heading h1,
.office-construction-detail-heading h1,
.office-settings-heading h1{font-size:20px;line-height:1.18;letter-spacing:-.2px;margin-top:0}
.office-project-page-heading{margin-top:0;margin-bottom:14px}
.office-project-page-heading p,.office-page-heading p{margin-top:4px}

/* Context header proportions: back is deliberately stronger, chevron subordinate, menu compact */
.office-context-back{width:36px;height:36px;min-width:36px;min-height:36px;display:inline-grid;place-items:center}
.office-context-back .office-context-back-icon{width:21px;height:21px}
.office-context-chevron-button{width:25px;height:30px;min-width:25px;min-height:30px;display:inline-grid;place-items:center}
.office-context-chevron-button .office-context-chevron{width:9px;height:9px}
.office-context-more{width:29px;height:29px;min-width:29px;min-height:29px;display:inline-grid;place-items:center}
.office-context-more .office-svg-icon{width:13px;height:13px}
.office-context-path,.office-context-main{align-items:center}

/* Project cockpit and project costs: same card rhythm and widths */
.office-project-overview-layout-r020,
.office-project-analysis-grid-r018{grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:16px;align-items:start}
.office-project-analysis-grid-r018{margin-top:16px}
.office-project-analysis-card-r018{height:100%;min-width:0}
.office-cost-kpis-r023{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}
.office-cost-kpis-r023 .office-kpi-card{display:flex;flex-direction:column;justify-content:center;align-items:flex-start;gap:5px;min-height:88px;text-align:left}
.office-cost-kpis-r023 .office-kpi-card>span{order:1;width:100%}
.office-cost-kpis-r023 .office-kpi-card>strong{order:2;width:100%;white-space:normal}
.office-cost-kpis-r023 .office-kpi-card>small{order:3;width:100%}
@media(max-width:1100px){.office-cost-kpis-r023{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:640px){.office-cost-kpis-r023{grid-template-columns:1fr}}

/* Primary section actions are always right aligned */
.office-actions-right{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;width:100%}
.office-actions-right>:first-child{min-width:0}
.office-actions-right>:last-child{margin-left:auto;flex:0 0 auto}
.office-project-invoices-panel>.office-actions-right,
.office-project-cost-planning-r023>.office-actions-right{display:flex;justify-content:space-between}

/* Cost planning heading is a canonical Office heading */
.office-project-cost-planning-r023>.office-panel-heading{margin:0 0 14px;padding:0 0 14px;border-bottom:1px solid var(--office-border)}
.office-project-cost-planning-r023>.office-panel-heading h2{font-size:18px;line-height:1.2;margin:0 0 4px}

/* LV overview, global and project scoped */
.office-specifications-page .office-table-frame,
.office-project-boq-panel-r023 .office-table-frame{overflow:visible;border-radius:10px}
.office-specifications-page .office-table,
.office-project-boq-panel-r023 .office-table{table-layout:fixed;min-width:980px}
.office-project-boq-panel-r023 th.is-boq-number,.office-project-boq-panel-r023 td:nth-child(1),
.office-specifications-page th.is-boq-number{width:118px}
.office-project-boq-panel-r023 th.is-boq-external,.office-project-boq-panel-r023 td:nth-child(2),
.office-specifications-page th.is-boq-external{width:118px}
.office-project-boq-panel-r023 th.is-boq-unit,.office-project-boq-panel-r023 td:nth-child(3),
.office-specifications-page th.is-boq-unit{width:132px}
.office-project-boq-panel-r023 th.is-boq-name,.office-specifications-page th.is-boq-name{width:auto}
.office-project-boq-panel-r023 th.is-boq-phase,.office-specifications-page th.is-boq-phase{width:126px}
.office-project-boq-panel-r023 th.is-boq-status,.office-specifications-page th.is-boq-status{width:126px}
.office-project-boq-panel-r023 th.office-table-actions-column{width:78px}
.office-specifications-page .office-table thead tr:first-child th:first-child,
.office-project-boq-panel-r023 .office-table thead tr:first-child th:first-child{border-top-left-radius:9px}
.office-specifications-page .office-table thead tr:first-child th:last-child,
.office-project-boq-panel-r023 .office-table thead tr:first-child th:last-child{border-top-right-radius:9px}

/* Live LV grid: fixed geometry, compact working rows and direct wheel/touch scrolling */
.office-procurement-workspace .office-ava-grid-shell{height:calc(100dvh - 220px);min-height:520px;max-height:none;overflow:hidden}
.office-procurement-workspace .office-ava-grid-viewport{height:100%;max-height:100%;overflow:auto;overscroll-behavior:contain;scrollbar-gutter:stable both-edges;pointer-events:auto}
.office-procurement-workspace .office-ava-grid{width:100%;min-width:1080px;max-width:none}
.office-procurement-workspace .office-ava-grid-row{display:grid;grid-template-columns:var(--office-ava-grid-columns);width:100%;min-width:1080px;align-items:stretch}
.office-procurement-workspace .office-ava-grid-row>*{min-width:0;max-width:none;box-sizing:border-box}
.office-procurement-workspace .office-ava-grid-row:not(.is-header)>*{min-height:29px;padding-top:2px;padding-bottom:2px}
.office-procurement-workspace .office-ava-grid-row.is-header>*{height:34px;min-height:34px;display:flex;align-items:center}
.office-boq-inline-title-cell,.office-boq-tree-title{display:flex;align-items:center;gap:5px;white-space:nowrap}
.office-boq-inline-title-cell .office-boq-inline-input,.office-boq-tree-title .office-boq-inline-input{min-width:0;max-width:100%;height:25px}
.office-boq-drag-handle{cursor:grab;display:inline-grid;place-items:center;border:0;background:transparent;border-radius:5px}
.office-boq-drag-handle:active{cursor:grabbing}
.office-boq-drag-handle .office-svg-icon{width:14px;height:14px}
.office-boq-row-actions,.office-boq-node-actions{display:flex;align-items:center;justify-content:flex-end;overflow:visible}
.office-boq-row-meta{display:flex;align-items:center;justify-content:center}
.office-boq-tree-toggle{cursor:pointer;position:relative;z-index:2}
.office-boq-tree-toggle[aria-expanded="false"] .office-svg-icon{transform:rotate(-90deg)}
.office-boq-tree-toggle[aria-expanded="true"] .office-svg-icon{transform:rotate(0deg)}

/* All floating menus live in browser top layer where supported, never in table clipping context */
.office-popover[data-office-floating-popover]{position:fixed;z-index:2147483640;overflow:auto;max-height:min(70dvh,620px);margin:0;inset:auto;box-sizing:border-box}
.office-table-frame,.office-table-viewport,.office-dashboard-panel,.office-dialog-body{--office-popover-z:2147483640}

/* Diary corrections: visible breathing room + right task action */
.office-diary-report-heading-r023{display:flex;flex-wrap:wrap;align-items:flex-end;justify-content:space-between;row-gap:12px;margin-bottom:18px;padding-top:4px}
.office-diary-report-heading-r023 .office-dashboard-panel-tabs{margin-top:12px}
.office-diary-tasks-heading-r023{display:flex;align-items:flex-start;justify-content:space-between;width:100%}
.office-diary-tasks-heading-r023>.office-module-action-button{margin-left:auto}

/* File uploads follow Office control sizing everywhere */
.office-file-upload-control,input[type="file"]:not([hidden]){min-height:34px;border-radius:8px}
.office-file-upload-control .office-svg-icon{width:14px;height:14px}

/* r023: every Office popover is a floating/top-layer overlay; no table/card clipping */
.office-popover[data-office-popover]{position:fixed;z-index:2147483640;max-height:min(70dvh,620px);overflow:auto;overscroll-behavior:contain;margin:0;inset:auto;box-sizing:border-box}
.office-popover[data-office-popover]:popover-open{display:block}

/* Blazor conditional comboboxes also escape dialog/card/table clipping */
.office-combobox-popover{position:fixed;z-index:2147483640;max-height:min(70dvh,620px);overflow:auto;overscroll-behavior:contain}
.office-invoice-service-period-r023 .office-date-range-r023{width:100%;grid-template-columns:minmax(0,1fr) minmax(0,1fr)}

.office-hospitality-person-create-r023{display:flex;justify-content:flex-end;margin-top:12px}.office-selection-check{margin-left:auto;font-weight:800}.office-hospitality-new-template-r023{margin-top:4px;border-top:1px solid var(--office-border)}
/* r023 completion: external task upload follows the shared Office upload control. */
.office-external-photo-upload-r023 {
  width: 100%;
  min-height: 36px;
  justify-content: flex-start;
}
.office-external-photo-upload-r023 .office-svg-icon {
  width: 14px;
  height: 14px;
  flex: 0 0 14px;
}

/* r023 AG Grid LV workspace */
.office-boq-ag-workspace{border:1px solid var(--office-border,#d9e0e7);border-radius:12px;background:#fff;overflow:hidden;box-shadow:0 1px 2px rgba(16,24,40,.04)}
.office-boq-ag-workspace .office-table-toolbar{border-bottom:1px solid var(--office-border,#d9e0e7);border-radius:0}
.office-boq-ag-grid{width:100%;height:min(68vh,760px);min-height:460px;--ag-font-family:Inter,Arial,sans-serif;--ag-font-size:13px;--ag-grid-size:5px;--ag-row-height:36px;--ag-header-height:38px;--ag-border-color:#d9e0e7;--ag-row-border-color:#edf0f3;--ag-header-background-color:#f7f9fb;--ag-header-foreground-color:#344054;--ag-odd-row-background-color:#fff;--ag-row-hover-color:#f5f9ff;--ag-selected-row-background-color:#eaf3ff;--ag-input-focus-border-color:#1677d2;--ag-accent-color:#1677d2}
.office-boq-ag-grid .ag-root-wrapper{border:0;border-radius:0}
.office-boq-ag-grid .ag-header-cell{font-weight:600}
.office-boq-ag-grid .ag-cell{display:flex;align-items:center;padding-left:8px;padding-right:8px}
.office-boq-ag-grid .ag-right-aligned-cell{justify-content:flex-end;font-variant-numeric:tabular-nums}
.office-boq-ag-grid .office-ag-row-node{font-weight:600;background:#f8fafc}
.office-boq-ag-grid .office-ag-row-preliminaryremark,.office-boq-ag-grid .office-ag-row-note,.office-boq-ag-grid .office-ag-row-executiondescription{background:#fbfcfd}
.office-ag-hierarchy{display:flex;align-items:center;gap:7px;width:100%;min-width:0;padding-left:calc(var(--depth,0)*18px)}
.office-ag-chevron,.office-ag-chevron-spacer{width:20px;height:20px;flex:0 0 20px;display:inline-grid;place-items:center}
.office-ag-chevron{border:0;background:transparent;border-radius:5px;font-size:18px;line-height:1;cursor:pointer;color:#475467;padding:0}
.office-ag-chevron:hover{background:#eaf0f6}
.office-ag-oz{font-variant-numeric:tabular-nums;color:#667085;flex:0 0 auto;min-width:52px}
.office-ag-title{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0}
.office-ag-type{margin-left:auto;border:1px solid #d0d5dd;border-radius:999px;padding:2px 7px;font-size:11px;font-weight:500;color:#475467;background:#fff;flex:0 0 auto}
.office-ag-actions{display:flex;align-items:center;justify-content:flex-end;gap:4px;width:100%}
.office-ag-action{width:28px;height:28px;border:1px solid #d0d5dd;border-radius:7px;background:#fff;color:#344054;display:grid;place-items:center;cursor:pointer;font-size:17px;line-height:1}
.office-ag-action:hover{background:#f2f4f7}.office-ag-action.is-danger{color:#b42318}
.office-boq-ag-grid .ag-row.is-selected{background:#eaf3ff}
.office-boq-ag-grid .ag-cell-inline-editing{padding:0 6px;background:#fff;box-shadow:inset 0 0 0 2px #1677d2}
.office-boq-ag-workspace>.office-boq-total-footer{border-top:1px solid #d9e0e7}
@media(max-width:900px){.office-boq-ag-grid{height:62vh;min-height:400px}.office-ag-type{display:none}}


/* r023 correction pass 2026-08-27: close the remaining visual/runtime gaps. */
/* Dialogs must not establish a transformed containing block; fixed Office popovers are viewport anchored. */
.office-dialog,
.office-dialog-layer.is-open .office-dialog{transform:none;}

/* Hospitality: all three pickers use the same Office combobox language and readable spacing. */
.office-hospitality-occasion-picker-r023,
.office-hospitality-participant-combo-r019-final,
.office-hospitality-form-r018 .office-inline-combobox{position:relative;width:100%;}
.office-hospitality-template-popover-r023,
.office-hospitality-restaurant-popover-r019,
.office-hospitality-participant-popover-r019-final{min-width:280px;max-width:min(680px,calc(100vw - 24px));padding:10px;border:1px solid var(--office-border);border-radius:12px;background:var(--office-surface);box-shadow:var(--office-shadow-popover);}
.office-hospitality-template-popover-r023 .office-combobox-options,
.office-hospitality-restaurant-popover-r019 .office-combobox-options,
.office-hospitality-participant-popover-r019-final .office-combobox-options{display:grid;gap:4px;}
.office-hospitality-template-popover-r023 .office-combobox-option,
.office-hospitality-restaurant-popover-r019 .office-combobox-option,
.office-hospitality-participant-popover-r019-final .office-combobox-option{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:12px;width:100%;min-height:48px;padding:9px 12px;border:0;border-radius:9px;background:transparent;text-align:left;}
.office-hospitality-template-popover-r023 .office-combobox-option:hover,
.office-hospitality-restaurant-popover-r019 .office-combobox-option:hover,
.office-hospitality-participant-popover-r019-final .office-combobox-option:hover,
.office-hospitality-template-popover-r023 .office-combobox-option.is-selected,
.office-hospitality-restaurant-popover-r019 .office-combobox-option.is-selected,
.office-hospitality-participant-popover-r019-final .office-combobox-option.is-selected{background:var(--office-primary-soft);}
.office-hospitality-template-popover-r023 .office-combobox-option span:first-child,
.office-hospitality-restaurant-popover-r019 .office-combobox-option span:first-child,
.office-hospitality-participant-popover-r019-final .office-combobox-option span:first-child{display:grid;gap:2px;min-width:0;}
.office-hospitality-template-popover-r023 small,
.office-hospitality-restaurant-popover-r019 small,
.office-hospitality-participant-popover-r019-final small{display:block;color:var(--office-text-muted);font-weight:400;white-space:normal;}
.office-hospitality-participant-heading-r018{margin-top:28px;margin-bottom:14px;}
.office-hospitality-participant-combo-r019-final{margin-bottom:10px;}
.office-hospitality-selected-persons-r019-final{margin-top:12px;margin-bottom:12px;}
.office-hospitality-person-create-r023{margin-top:14px;padding-top:12px;border-top:1px solid var(--office-border);}

/* Bautagebuch tasks: checkbox and text share one row; empty state task icon is visibly framed. */
.office-diary-task-suggestion-list-r019 .office-checkbox-field{display:grid;grid-template-columns:20px minmax(0,1fr);align-items:center;gap:10px;min-height:54px;}
.office-diary-task-suggestion-list-r019 .office-checkbox-field>input{grid-column:1;grid-row:1;margin:0;align-self:center;}
.office-diary-task-suggestion-list-r019 .office-checkbox-field>span{grid-column:2;grid-row:1;display:grid;gap:2px;min-width:0;}
.office-diary-task-suggestion-list-r019 .office-checkbox-field strong,
.office-diary-task-suggestion-list-r019 .office-checkbox-field small{display:block;line-height:1.25;}
.office-diary-report-heading-r023{padding-top:10px;row-gap:16px;}
.office-diary-report-heading-r023 .office-dashboard-panel-tabs{margin-top:14px;}

/* Context header hierarchy: strong back action, readable chevron, compact more menu. */
.office-context-back{width:40px;height:40px;min-width:40px;min-height:40px;}
.office-context-back .office-context-back-icon{width:24px;height:24px;}
.office-context-chevron-button{width:28px;height:32px;min-width:28px;min-height:32px;}
.office-context-chevron-button .office-context-chevron{width:12px;height:12px;}
.office-context-more{width:28px;height:28px;min-width:28px;min-height:28px;padding:0;}
.office-context-more .office-svg-icon{width:13px;height:13px;}

/* Project LV overview: fill available desktop width without a needless scrollbar; keep full labels readable. */
.office-project-boq-table-r023>.office-table-viewport{overflow:visible;}
.office-project-boq-panel-r023 .office-table{width:100%;min-width:0;table-layout:fixed;}
.office-project-boq-panel-r023 .office-table-column-header{min-width:0;gap:4px;}
.office-project-boq-panel-r023 .office-table-column-label{overflow:visible;text-overflow:clip;white-space:normal;line-height:1.15;}
.office-project-boq-panel-r023 th.is-boq-number{width:138px;}
.office-project-boq-panel-r023 th.is-boq-external{width:138px;}
.office-project-boq-panel-r023 th.is-boq-unit{width:150px;}
.office-project-boq-panel-r023 th.is-boq-phase{width:160px;}
.office-project-boq-panel-r023 th.is-boq-status{width:150px;}
.office-project-boq-panel-r023 th.office-table-actions-column{width:112px;}
@media(max-width:1000px){
  .office-project-boq-table-r023>.office-table-viewport{overflow-x:auto;overflow-y:visible;}
  .office-project-boq-panel-r023 .office-table{min-width:960px;}
}

/* Honorar overview and invoices use the same panel/spacing rhythm as Angebote. */
.office-project-fee-overview-r023{padding:24px 26px;}
.office-project-fee-overview-r023>.office-settings-section-heading{margin-bottom:18px;}
.office-project-invoices-panel>.office-settings-section-heading{margin-bottom:18px;}

/* Auftrag: primary action right aligned and empty-state icon gets the shared Office visual tile. */
.office-contract-heading-r023{display:flex;align-items:flex-start;justify-content:space-between;width:100%;gap:16px;}
.office-contract-heading-r023>.office-module-action-button{margin-left:auto;flex:0 0 auto;}
.office-contract-empty-r020 .office-empty-state-icon{display:grid;place-items:center;width:58px;height:58px;border:1px solid var(--office-border);border-radius:14px;background:var(--office-surface-soft);color:var(--office-text-muted);}

/* Cost planning list: designation acts like a proper Office table link, never a native button. */
.office-cost-estimate-name-r023{appearance:none;border:0;background:transparent;padding:0;margin:0;color:var(--office-primary);font:inherit;font-weight:650;text-align:left;cursor:pointer;}
.office-cost-estimate-name-r023:hover{text-decoration:underline;}
.office-cost-estimate-name-r023:focus-visible{outline:2px solid color-mix(in srgb,var(--office-primary) 35%,transparent);outline-offset:3px;border-radius:4px;}


/* r023 collection correction pass: shared pickers, header, invoices, offer controls and LV runtime. */
.office-combobox-popover{right:auto;bottom:auto;min-width:0;box-sizing:border-box;}
.office-hospitality-picker-r023{position:relative;width:100%;}
.office-hospitality-picker-popover-r023{padding:10px;border:1px solid var(--office-border);border-radius:12px;background:var(--office-surface);box-shadow:var(--office-shadow-popover);}
.office-hospitality-picker-popover-r023 .office-combobox-options{display:grid;gap:4px;}
.office-hospitality-picker-popover-r023 .office-combobox-option{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:12px;min-height:46px;padding:9px 12px;}
.office-hospitality-picker-popover-r023 .office-combobox-create{min-height:42px;margin-top:4px;}
.office-hospitality-participant-heading-r018{margin-top:30px;margin-bottom:14px;}
.office-hospitality-participant-combo-r019-final{margin-bottom:12px;}
.office-hospitality-selected-persons-r019-final{display:flex;flex-wrap:wrap;gap:8px;margin:12px 0;}
.office-hospitality-person-create-r023{margin-top:14px;padding-top:12px;border-top:1px solid var(--office-border);}

.office-context-bar{min-height:66px;padding-bottom:0;display:flex;align-items:center;border-bottom:1px solid rgba(33,33,32,.12);}
.office-context-main,.office-context-path{align-items:center;}
.office-context-back{width:42px;height:42px;min-width:42px;min-height:42px;}
.office-context-back .office-context-back-icon{width:25px;height:25px;}
.office-context-title-link{min-height:42px;display:inline-flex;align-items:center;}
.office-context-chevron-button{width:30px;height:34px;min-width:30px;min-height:34px;}
.office-context-chevron-button .office-context-chevron{width:14px;height:14px;}
.office-context-more{width:30px;height:30px;min-width:30px;min-height:30px;}
.office-context-more .office-svg-icon{width:11px;height:11px;}

.office-offer-phase-select-cell{text-align:center;vertical-align:middle;}
.office-offer-phase-checkbox{appearance:auto;width:16px;height:16px;min-width:16px;min-height:16px;margin:0 auto;padding:0;border:0;border-radius:3px;box-shadow:none;display:block;accent-color:var(--office-primary);}
.office-offer-section-heading-actions-r023{display:flex;align-items:center;justify-content:space-between;width:100%;}
.office-offer-section-heading-actions-r023>.office-offer-section-delete-r016{margin-left:auto;flex:0 0 auto;}

.office-invoice-service-period-r023>.office-date-range-r023 label{display:block;}
.office-invoice-service-period-r023>.office-date-range-r023 label>span{display:none;}

.office-boq-ag-grid .office-ag-empty{color:var(--office-text-muted);font-size:13px;}


/* r023 round 4: final shared overlay, header and invoice alignment */
.office-combobox-popover[popover]{margin:0;border:1px solid var(--office-border,#d9e0e7);padding:10px;background:var(--office-surface,#fff);border-radius:14px;box-shadow:0 18px 48px rgba(15,23,42,.18);}
.office-combobox-popover[popover]::backdrop{background:transparent;}
.office-combobox-create{display:flex;align-items:center;gap:10px;width:100%;min-height:42px;padding:9px 12px;border:0;background:transparent;color:var(--office-accent,#006fc9);text-decoration:none;font:inherit;font-weight:600;text-align:left;border-radius:9px;cursor:pointer;}
.office-combobox-create:hover{background:var(--office-surface-hover,#f3f6f9);}
.office-combobox-create .office-svg-icon{width:16px;height:16px;flex:0 0 16px;}
.office-context-bar.is-contextual{min-height:72px;height:72px;padding-top:0;padding-bottom:0;display:flex;align-items:center;}
.office-context-bar.is-contextual .office-context-main{min-height:72px;height:72px;display:flex;align-items:center;}
.office-context-bar.is-contextual .office-context-path,.office-context-bar.is-contextual .office-context-split,.office-context-bar.is-contextual .office-context-menu-wrap{align-items:center;}
.office-context-bar.is-contextual .office-context-title-link{display:inline-flex;align-items:center;min-height:40px;line-height:1.15;}
.office-context-bar.is-contextual .office-context-more .office-svg-icon{width:13px;height:13px;}
.office-invoice-period-final-row-r024{display:grid;grid-template-columns:minmax(0,2fr) minmax(240px,1fr);gap:16px;align-items:end;}
.office-invoice-period-final-row-r024 .office-invoice-final-field-r024{min-width:0;}
.office-invoice-period-final-row-r024 .office-pill-switch-r019{width:100%;min-height:54px;}
@media(max-width:900px){.office-invoice-period-final-row-r024{grid-template-columns:1fr;}.office-context-bar.is-contextual,.office-context-bar.is-contextual .office-context-main{height:auto;min-height:60px;}}


/* r023 correction pass round 5: collected fixes after AG Grid r3. */
/* Comboboxes: fixed viewport anchoring; no browser top-layer auto centering. */
.office-combobox-popover{position:fixed;right:auto;bottom:auto;min-width:0;box-sizing:border-box;transform:none;animation:none;}
.office-combobox-popover[popover]{position:fixed;margin:0;}
.office-selection-check{width:16px;height:16px;flex:0 0 16px;color:var(--office-primary);}
.office-check-picker-r023 .office-combobox-option.is-selected::after{content:none;}
.office-hospitality-template-textarea-r024{width:100%;min-height:92px;padding:10px 12px;border:1px solid var(--office-border);border-radius:var(--office-radius-md);background:var(--office-surface);color:var(--office-text);font:inherit;line-height:1.4;resize:vertical;}
.office-hospitality-template-textarea-r024:focus{outline:2px solid color-mix(in srgb,var(--office-primary) 22%,transparent);outline-offset:1px;border-color:var(--office-primary);}

/* Context header: one real vertical axis; compact more-menu glyph. */
.office-context-bar.is-contextual{height:72px;min-height:72px;padding-top:0;padding-bottom:0;display:flex;align-items:center;}
.office-context-bar.is-contextual .office-context-main{height:72px;min-height:72px;margin:0;padding-top:0;padding-bottom:0;display:flex;align-items:center;}
.office-context-bar.is-contextual .office-context-path{height:72px;display:flex;align-items:center;gap:6px;}
.office-context-bar.is-contextual .office-context-menu-wrap,.office-context-bar.is-contextual .office-context-split{display:inline-flex;align-items:center;align-self:center;}
.office-context-bar.is-contextual .office-context-title-link{height:40px;min-height:40px;display:inline-flex;align-items:center;line-height:1;}
.office-context-bar.is-contextual .office-context-back{align-self:center;display:inline-grid;place-items:center;}
.office-context-bar.is-contextual .office-context-more{align-self:center;display:inline-grid;place-items:center;width:30px;height:30px;min-width:30px;min-height:30px;padding:0;}
.office-context-bar.is-contextual .office-context-more .office-svg-icon{width:9px;height:9px;}
.office-context-bar.is-contextual .office-context-chevron-button{align-self:center;}

/* Stand-alone AVA dialogs use fixed centering even though Office dialogs avoid transforms. */
.office-boq-process-dialog{transform:translate(-50%,-50%);opacity:1;}

/* Invoice service period + final invoice: one aligned row, no outer pill frame. */
.office-invoice-period-final-row-r024{grid-template-columns:minmax(0,2fr) minmax(220px,.72fr);align-items:end;}
.office-invoice-final-field-r024 .office-pill-switch-r019{width:auto;min-height:54px;border:0;background:transparent;padding:0;box-shadow:none;border-radius:0;justify-content:flex-start;}
.office-invoice-final-field-r024>span{margin-bottom:6px;}

/* Offer HOAI phase selection: compact Office checkbox rather than oversized native control. */
.office-offer-phase-select-cell,.office-offer-phase-row-r016 td:first-child{text-align:center;vertical-align:middle;}
.office-offer-phase-checkbox{appearance:none;width:18px;height:18px;min-width:18px;min-height:18px;margin:0 auto;padding:0;border:1px solid var(--office-border-strong);border-radius:4px;background:#fff center/13px 13px no-repeat;display:block;box-shadow:none;cursor:pointer;}
.office-offer-phase-checkbox:checked{background-color:var(--office-primary);border-color:var(--office-primary);background-image:url('/icons/office/actions/check.svg');}
.office-offer-phase-row-r016{height:42px;}
.office-offer-phase-row-r016 td{padding-top:7px;padding-bottom:7px;}

/* LV overview KPIs are real cards and overview table closes cleanly on the right edge. */
.office-specifications-page .office-boq-kpis{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:12px;}
.office-specifications-page .office-boq-kpis .office-kpi-card{background:var(--office-surface);border:1px solid var(--office-border);border-radius:var(--office-radius-lg);box-shadow:0 7px 18px rgba(15,23,42,.035);min-height:92px;padding:14px 16px;}
.office-specifications-page .office-table-frame{width:100%;overflow:hidden;border:1px solid var(--office-border);border-radius:var(--office-radius-lg);}
.office-specifications-page .office-table-frame>.office-table{width:100%;table-layout:fixed;margin:0;}
.office-specifications-page .office-table th,.office-specifications-page .office-table td{box-sizing:border-box;}
.office-specifications-page .office-table th:nth-child(1),.office-specifications-page .office-table td:nth-child(1){width:145px;}
.office-specifications-page .office-table th:nth-child(2),.office-specifications-page .office-table td:nth-child(2){width:210px;}
.office-specifications-page .office-table th:nth-child(3),.office-specifications-page .office-table td:nth-child(3){width:145px;}
.office-specifications-page .office-table th:nth-child(4),.office-specifications-page .office-table td:nth-child(4){width:145px;}
.office-specifications-page .office-table th:nth-child(5),.office-specifications-page .office-table td:nth-child(5){width:auto;}
.office-specifications-page .office-table th:nth-child(6),.office-specifications-page .office-table td:nth-child(6){width:130px;}
.office-specifications-page .office-table th:nth-child(7),.office-specifications-page .office-table td:nth-child(7){width:125px;}
.office-specifications-page .office-table th:nth-child(8),.office-specifications-page .office-table td:nth-child(8){width:135px;}
.office-specifications-page .office-table th:nth-child(9),.office-specifications-page .office-table td:nth-child(9){width:125px;}
.office-specifications-page .office-table th:nth-child(10),.office-specifications-page .office-table td:nth-child(10){width:72px;}
@media(max-width:1450px){.office-specifications-page .office-table-frame{overflow-x:auto;}.office-specifications-page .office-table-frame>.office-table{min-width:1280px;}}
@media(max-width:1000px){.office-specifications-page .office-boq-kpis{grid-template-columns:repeat(2,minmax(0,1fr));}}

/* New LV start-mode cards: aligned icon/title header, more room for explanatory copy. */
.office-boq-start-option{min-height:132px;padding:14px;grid-template-columns:24px minmax(0,1fr);grid-template-rows:auto 1fr;align-content:start;align-items:start;gap:8px 10px;}
.office-boq-start-option>.office-svg-icon{grid-column:1;grid-row:1;width:20px;height:20px;margin-top:1px;align-self:start;}
.office-boq-start-option>strong{grid-column:2;grid-row:1;align-self:start;line-height:1.2;}
.office-boq-start-option>small{grid-column:1/-1;grid-row:2;display:block;padding-top:2px;line-height:1.4;}

/* LV toolbar: icon-only insertion group, framed special tools, correct search/right actions. */
.office-ava-toolbar .office-ava-insert-icon{width:36px;height:36px;min-width:36px;min-height:36px;border:1px solid var(--office-border);border-radius:9px;background:var(--office-surface);}
.office-ava-toolbar .office-ava-insert-icon:hover{background:var(--office-surface-soft);border-color:var(--office-border-strong);}
.office-ava-toolbar .office-ava-insert-icon .office-svg-icon{width:17px;height:17px;}
.office-ava-toolbar .office-ava-history-icon{border:0;background:transparent;}
.office-ava-toolbar .office-ava-preview-button{border:1px solid var(--office-border);background:var(--office-surface);border-radius:9px;}
.office-ava-toolbar .office-ava-focus-toggle{border:0;background:transparent;}
.office-procurement-workspace.is-focus-mode .office-ava-focus-toggle .office-svg-icon{transform:rotate(180deg);}
.office-ava-focus-toggle .office-svg-icon{transition:transform .18s ease;}
.office-ava-search-r024{position:relative;}
.office-ava-search-r024 .office-table-search{padding-left:12px;padding-right:38px;}
.office-ava-search-r024 .office-table-search-icon{position:absolute;right:11px;left:auto;top:50%;transform:translateY(-50%);pointer-events:none;}
.office-ava-toolbar-controls.is-left{gap:6px;}
.office-boq-ag-workspace{overflow:hidden;}
.office-boq-ag-grid{min-width:0;}

/* AG Grid: stable full-size working surface. */
.office-boq-ag-grid .ag-root-wrapper,.office-boq-ag-grid .ag-root-wrapper-body,.office-boq-ag-grid .ag-root{width:100%;height:100%;}
.office-boq-ag-grid .ag-body-viewport{overflow:auto;}
.office-boq-ag-grid .ag-center-cols-viewport{min-height:100%;}

/* Diary PDF/action spacing. */
.office-diary-heading-r015 .office-time-list-actions{display:flex;justify-content:flex-end;gap:8px;}


/* r023 round 6: latest collected corrections */
.office-context-bar.is-contextual .office-context-title-link{transform:translateY(-2px)}
.office-context-bar.is-contextual .office-context-more .office-svg-icon{width:7px;height:7px}
.office-combobox-popover[popover]{inset:auto;margin:0;box-sizing:border-box}
.office-combobox-popover:popover-open{display:block}
.office-invoice-period-final-row-r024{align-items:start}
.office-invoice-final-field-r024{display:flex;flex-direction:column;justify-content:flex-start}
.office-invoice-final-field-r024 .office-pill-switch-r019{min-height:44px;height:44px;margin-top:0;border:0;background:transparent;box-shadow:none;padding:0}
.office-offer-phase-row-r016 td:first-child{width:56px;text-align:center}
.office-offer-phase-checkbox{appearance:none;width:16px;height:16px;min-width:16px;min-height:16px;margin:0 auto;border:1px solid var(--office-border-strong);border-radius:4px;background:#fff center/11px 11px no-repeat;box-shadow:none}
.office-offer-phase-checkbox:checked{background-color:var(--office-primary);border-color:var(--office-primary);background-image:url('/icons/office/actions/check.svg')}
.office-specifications-page .office-table-frame{overflow:hidden;border-radius:var(--office-radius-lg);border:1px solid var(--office-border)}
.office-specifications-page .office-table{width:100%;table-layout:fixed}
.office-specifications-page th,.office-specifications-page td{min-width:0}
.office-specifications-page th.is-boq-number{width:130px}
.office-specifications-page th.is-boq-external{width:130px}
.office-specifications-page th.is-boq-unit{width:145px}
.office-specifications-page th.is-boq-name{width:auto}
.office-specifications-page th.is-boq-phase{width:120px}
.office-specifications-page th.is-boq-status{width:125px}
.office-specifications-page th:nth-child(8){width:132px}
.office-specifications-page th:nth-child(9){width:118px}
.office-specifications-page th:nth-child(10){width:72px}
.office-specifications-page .office-table-column-header-label{white-space:nowrap;overflow:visible;text-overflow:clip}
.office-specifications-page .office-table-column-header{gap:5px}
.office-specifications-page .office-table-column-header-actions{flex:0 0 auto}
.office-boq-start-option{min-height:126px;padding:14px;display:grid;grid-template-columns:24px minmax(0,1fr);grid-template-rows:auto 1fr;align-content:start;align-items:start;gap:8px 10px}
.office-boq-start-option>.office-svg-icon{grid-column:1;grid-row:1;width:20px;height:20px;margin-top:0}
.office-boq-start-option>strong{grid-column:2;grid-row:1;align-self:center;line-height:1.2}
.office-boq-start-option>small{grid-column:1/-1;grid-row:2;padding-top:2px;line-height:1.35}
.office-gaeb-exchange-help-r023{margin-top:14px;margin-bottom:18px}
.office-gaeb-upload-block-r023{margin-top:4px;margin-bottom:12px}
.office-gaeb-actions-r023{margin-top:12px}
.office-boq-ag-grid{min-height:520px;height:calc(100vh - 300px);max-height:780px}
.office-boq-ag-grid .ag-body-viewport,.office-boq-ag-grid .ag-center-cols-viewport{overflow:auto}
.office-ava-toolbar .office-ava-insert-icon{border:1px solid var(--office-border);background:var(--office-surface)}
.office-ava-toolbar .office-ava-preview-button{border:1px solid var(--office-border);background:var(--office-surface)}
.office-ava-toolbar .office-ava-focus-toggle{border:0;background:transparent}
.office-procurement-workspace.is-focus-mode .office-ava-focus-toggle .office-svg-icon,
.office-procurement-workspace:fullscreen .office-ava-focus-toggle .office-svg-icon{transform:rotate(180deg)}
.office-ava-search-r024 .office-table-search-icon{left:auto;right:12px}
.office-ava-search-r024 .office-table-search{padding-left:14px;padding-right:40px}


/* r023 final context-header alignment: one common optical axis, centered between dividers. */
.office-context-bar.is-contextual{height:96px;min-height:96px;padding:0;display:flex;align-items:center;}
.office-context-bar.is-contextual .office-context-main{height:auto;min-height:0;display:flex;align-items:center;}
.office-context-bar.is-contextual .office-context-path,
.office-context-bar.is-contextual .office-context-split,
.office-context-bar.is-contextual .office-context-menu-wrap{display:flex;align-items:center;}
.office-context-bar.is-contextual .office-context-title-link{height:42px;min-height:42px;display:inline-flex;align-items:center;line-height:1;}
.office-context-bar.is-contextual .office-context-back,
.office-context-bar.is-contextual .office-context-chevron-button,
.office-context-bar.is-contextual .office-context-more{align-self:center;}
.office-context-bar.is-contextual .office-context-more .office-svg-icon{width:10px;height:10px;}
@media(max-width:900px){.office-context-bar.is-contextual{height:72px;min-height:72px;}}
.office-quick-capture-card{display:grid;gap:18px}.office-quick-capture-text{width:100%;min-height:130px;padding:14px;border:1px solid var(--office-border);border-radius:var(--office-radius-md);background:var(--office-surface);font:inherit;resize:vertical}.office-quick-capture-actions{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.office-quick-capture-page .office-inline-actions{display:flex;gap:6px;flex-wrap:wrap}.office-quick-capture-page .office-inline-actions .office-button{min-height:34px;padding:6px 10px}
/* Quick-access icon surfaces follow the Office white icon standard. */
.office-quick-section .office-quick-icon,.office-dashboard-quick-card .office-quick-icon,.office-dashboard-quick-item .office-quick-icon{background:#fff;border-color:transparent;}


/* r023 FINAL SYSTEM CONSOLIDATION — authoritative last-layer rules */
/* Context header: one axis, one centered row between separators. */
.office-context-bar.is-contextual{height:96px;min-height:96px;padding:0;display:flex;align-items:center;border-bottom:1px solid rgba(33,33,32,.12)}
.office-context-bar.is-contextual .office-context-main{height:100%;min-height:0;margin:0;display:flex;align-items:center;gap:8px}
.office-context-bar.is-contextual .office-context-path,.office-context-bar.is-contextual .office-context-split,.office-context-bar.is-contextual .office-context-menu-wrap{height:auto;display:inline-flex;align-items:center;align-self:center}
.office-context-bar.is-contextual .office-context-title-link{height:auto;min-height:34px;display:inline-flex;align-items:center;line-height:1.15;transform:none}
.office-context-bar.is-contextual .office-context-back,.office-context-bar.is-contextual .office-context-chevron-button,.office-context-bar.is-contextual .office-context-more{align-self:center;display:inline-grid;place-items:center}
.office-context-bar.is-contextual .office-context-more{width:30px;height:30px;min-width:30px;min-height:30px;padding:0}
.office-context-bar.is-contextual .office-context-more .office-svg-icon{width:8px;height:8px}
@media(max-width:900px){.office-context-bar.is-contextual{height:72px;min-height:72px}}

/* Floating overlays are viewport-fixed and never participate in table/dialog layout. */
.office-combobox-popover,.office-popover[data-office-floating-popover],.office-popover[data-office-popover]{position:fixed;inset:auto;margin:0;transform:none;z-index:2147483000;box-sizing:border-box;overflow:auto;overscroll-behavior:contain}

/* Offer phase selection: native compact Office checkbox, no black SVG-on-blue artifact. */
.office-offer-phase-checkbox{appearance:auto;width:18px;height:18px;min-width:18px;min-height:18px;margin:0 auto;padding:0;border:0;background:none;box-shadow:none;display:block;accent-color:var(--office-primary)}
.office-offer-phase-row-r016>td:first-child{width:54px;text-align:center}

/* Quick access icons use the same white icon surface as the rest of Office. */
.office-quick-access-icon,.office-dashboard-quick-link-icon,.office-quick-action-icon{background:#fff;border-color:var(--office-border)}

/* Quick Capture */
.office-quick-capture-card{display:grid;gap:18px}
.office-quick-capture-kind-r023{margin-top:2px}
.office-quick-capture-text{min-height:150px}
.office-quick-capture-actions-r023{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.office-quick-capture-inbox-r023{margin-top:18px}
.office-quick-capture-targets-r023{gap:6px;flex-wrap:wrap}
.office-quick-capture-targets-r023 .office-button:disabled{opacity:.45;cursor:not-allowed}

/* Functional Blazor LV worktable; no external CDN/runtime dependency. */
.office-boq-live-table-wrap{height:calc(100dvh - 300px);min-height:520px;overflow:auto;overscroll-behavior:contain;background:#fff;border-top:1px solid var(--office-border)}
.office-boq-live-table{width:100%;min-width:1040px;border-collapse:separate;border-spacing:0;table-layout:fixed;font-size:13px}
.office-boq-live-table thead{position:sticky;top:0;z-index:4;background:#f7f9fb}
.office-boq-live-table th{height:36px;padding:0 8px;border:0;border-bottom:1px solid var(--office-border);font-weight:700;text-align:left;white-space:nowrap}
.office-boq-live-table td{height:34px;padding:2px 7px;border:0;border-bottom:1px solid #edf0f3;vertical-align:middle;background:#fff}
.office-boq-live-table tr:hover td{background:#f8fbff}.office-boq-live-table tr.is-selected td{background:#eaf3ff}
.office-boq-live-table th.is-drag,.office-boq-live-table td.is-drag{width:34px;padding:0;text-align:center}.office-boq-live-table th.is-number,.office-boq-live-table td.is-number{width:90px}.office-boq-live-table th.is-unit,.office-boq-live-table td.is-unit{width:82px}.office-boq-live-table th.is-money,.office-boq-live-table td.is-money{width:116px;text-align:right}.office-boq-live-table th.is-tools,.office-boq-live-table td.is-tools{width:92px}
.office-boq-live-node td{font-weight:650;background:#f8fafc}
.office-boq-live-title{display:flex;align-items:center;gap:6px;padding-left:calc(7px + var(--boq-depth,0)*18px)}
.office-boq-live-chevron,.office-boq-live-spacer{width:20px;height:20px;min-width:20px;display:inline-grid;place-items:center;border:0;background:transparent;padding:0}.office-boq-live-chevron .office-svg-icon{width:12px;height:12px;transition:transform .15s ease}.office-boq-live-chevron[aria-expanded="false"] .office-svg-icon{transform:rotate(-90deg)}
.office-boq-live-oz{min-width:54px;color:var(--office-text-muted);font-variant-numeric:tabular-nums}
.office-boq-live-input,.office-boq-live-select{width:100%;min-width:0;height:28px;border:1px solid transparent;border-radius:6px;background:transparent;padding:3px 6px;font:inherit;color:inherit}.office-boq-live-input:hover,.office-boq-live-select:hover{border-color:var(--office-border);background:#fff}.office-boq-live-input:focus,.office-boq-live-select:focus{outline:0;border-color:var(--office-primary);box-shadow:0 0 0 2px rgba(15,108,189,.12);background:#fff}.office-boq-live-input.is-title{flex:1}.office-boq-live-input.is-number,.office-boq-live-input.is-money{text-align:right;font-variant-numeric:tabular-nums}
.office-boq-live-type-pill{margin-left:auto;border:1px solid var(--office-border);border-radius:999px;padding:2px 7px;color:var(--office-text-muted);font-size:11px;background:#fff;white-space:nowrap}
.office-boq-live-actions{display:flex;justify-content:flex-end;align-items:center;gap:4px}.office-boq-live-actions .office-icon-button{width:28px;height:28px;min-width:28px;min-height:28px}.office-boq-live-warning{width:15px;height:15px}.office-boq-live-empty{height:420px;display:grid;place-items:center;color:var(--office-text-muted)}
.office-boq-live-type-preliminaryremark td,.office-boq-live-type-note td,.office-boq-live-type-executiondescription td{background:#fbfcfd}

/* LV overview: readable desktop columns and a closed right edge. */
.office-specifications-page .office-table-frame{overflow:hidden;border:1px solid var(--office-border);border-radius:10px}
.office-specifications-page .office-table{width:100%;min-width:0;table-layout:fixed}
.office-specifications-page .office-table th:nth-child(1){width:138px}.office-specifications-page .office-table th:nth-child(2){width:210px}.office-specifications-page .office-table th:nth-child(3){width:132px}.office-specifications-page .office-table th:nth-child(4){width:150px}.office-specifications-page .office-table th:nth-child(5){width:auto}.office-specifications-page .office-table th:nth-child(6){width:118px}.office-specifications-page .office-table th:nth-child(7){width:118px}.office-specifications-page .office-table th:nth-child(8){width:138px}.office-specifications-page .office-table th:nth-child(9){width:116px}.office-specifications-page .office-table th:nth-child(10){width:78px}
.office-specifications-page .office-table-column-label{white-space:normal;overflow:visible;text-overflow:clip}
.office-specifications-page .office-table th,.office-specifications-page .office-table td{min-width:0}

/* Diary report card follows the same internal title spacing as Gewerke/Aufgaben. */
.office-diary-report-card-r019>.office-settings-section-heading{margin:0 0 12px;padding:0;gap:18px}
.office-diary-report-card-r019>.office-settings-section-heading h2{margin:0}.office-diary-report-card-r019>.office-settings-section-heading p{margin:4px 0 0}

/* Email dialogs: compact metadata, large editor, right-aligned AI action. */
.office-construction-send-dialog-r015 .office-dialog-body{gap:10px}
.office-construction-send-dialog-r015 .office-richtext-editor{min-height:360px}
.office-task-mail-heading-r015{display:flex;align-items:center;justify-content:space-between;margin:2px 0 0}.office-task-mail-heading-r015>.office-button{margin-left:auto}
.office-mail-recipient-row-r023{display:grid;grid-template-columns:82px minmax(0,1fr);align-items:center;gap:10px}.office-mail-recipient-row-r023>span{font-weight:600;color:var(--office-text-muted)}
.office-email-recipient-picker-r023{width:100%}.office-email-recipient-popover-r023{padding:10px;border:1px solid var(--office-border);border-radius:12px;background:#fff;box-shadow:var(--office-shadow-popover)}.office-email-recipient-custom-r023{display:grid;grid-template-columns:1fr auto;gap:8px;padding:8px}
.office-construction-send-dialog-r015 .office-checkbox-row{margin:4px 0}.office-construction-send-dialog-r015 .office-share-link-r015{margin-top:2px;padding:8px 10px}

/* PDF master refinements */
.report-repeat-header{margin-bottom:6mm}.report-repeat-header h1{margin:0 0 1mm}.report-repeat-header .subtitle{margin:0}
.report-task-table .task-nr{width:9%}.report-task-table .task-title{width:57%}.report-task-table .task-status{width:20%}.report-task-table .task-due{width:14%}

.office-quick-icon{background:#fff;border-color:var(--office-border);}

/* r023 FINAL RELEASE GATE — authoritative UI corrections */
/* Context row: all controls share one exact center axis; the complete row is centered between separators. */
.office-context-bar.is-contextual{
  height:96px;min-height:96px;padding:0;margin:0;display:flex;align-items:center;
  border-top:0;border-bottom:1px solid rgba(33,33,32,.12);
}
.office-context-bar.is-contextual .office-context-main{
  height:100%;min-height:0;margin:0;padding:0;display:flex;align-items:center;gap:8px;
}
.office-context-bar.is-contextual .office-context-path{
  height:40px;display:flex;align-items:center;gap:6px;margin:0;padding:0;
}
.office-context-bar.is-contextual .office-context-menu-wrap,
.office-context-bar.is-contextual .office-context-split{
  height:40px;display:inline-flex;align-items:center;align-self:center;margin:0;padding:0;
}
.office-context-bar.is-contextual .office-context-title-link{
  height:34px;min-height:34px;padding-top:0;padding-bottom:0;display:inline-flex;align-items:center;
  line-height:34px;transform:none;vertical-align:middle;
}
.office-context-bar.is-contextual .office-context-back{
  width:34px;height:34px;min-width:34px;min-height:34px;display:inline-grid;place-items:center;align-self:center;margin:0;
}
.office-context-bar.is-contextual .office-context-back-icon{width:18px;height:18px}
.office-context-bar.is-contextual .office-context-chevron-button{
  width:30px;height:30px;min-width:30px;min-height:30px;display:inline-grid;place-items:center;align-self:center;margin:0;padding:0;
}
.office-context-bar.is-contextual .office-context-chevron{width:14px;height:14px}
.office-context-bar.is-contextual .office-context-more{
  width:30px;height:30px;min-width:30px;min-height:30px;display:inline-grid;place-items:center;align-self:center;margin:0;padding:0;
}
.office-context-bar.is-contextual .office-context-more .office-svg-icon{width:7px;height:7px}
@media(max-width:900px){.office-context-bar.is-contextual{height:72px;min-height:72px}}

/* All Blazor combobox menus are top-layer viewport overlays; never affect dialog/table scrolling. */
.office-combobox-popover[popover],.office-popover[popover]{
  position:fixed;inset:auto;margin:0;box-sizing:border-box;transform:none;max-width:calc(100vw - 20px);
}
.office-combobox-popover[popover]::backdrop,.office-popover[popover]::backdrop{background:transparent}

/* Offer selection: fixed compact Office checkbox with a high-contrast white tick. */
.office-offer-phase-checkbox{
  -webkit-appearance:none;appearance:none;width:18px;height:18px;min-width:18px;min-height:18px;
  margin:0 auto;padding:0;border:1px solid var(--office-border-strong);border-radius:4px;background:#fff;
  box-shadow:none;display:block;cursor:pointer;vertical-align:middle;
}
.office-offer-phase-checkbox:checked{
  background-color:var(--office-primary);border-color:var(--office-primary);
  background-image:url('/icons/office/actions/check-white.svg');background-repeat:no-repeat;background-position:center;background-size:13px 13px;
}
.office-offer-phase-checkbox:focus-visible{outline:2px solid color-mix(in srgb,var(--office-primary) 35%,transparent);outline-offset:2px}
.office-offer-phase-row-r016>td:first-child{width:54px;text-align:center}

/* Quick Capture final spacing and multiple attachment action. */
.office-quick-capture-card{display:grid;gap:18px}
.office-quick-capture-kind-r023{margin-top:4px;margin-bottom:2px}
.office-quick-capture-actions-r023{margin-top:2px}
.office-quick-capture-inbox-r023{margin-top:22px}
.office-quick-capture-targets-r023 .office-button:disabled{opacity:.38;filter:grayscale(1);cursor:not-allowed}

/* Dashboard quick icons: white icon surface throughout. */
.office-quick-icon{background:#fff;border-color:var(--office-border)}

/* Live LV table is a real scrollable worktable, independent of external JavaScript/CDNs. */
.office-boq-ag-workspace{min-width:0}
.office-boq-live-table-wrap{
  width:100%;height:calc(100dvh - 300px);min-height:520px;overflow:auto;overscroll-behavior:contain;
  scrollbar-gutter:stable;background:#fff;border:1px solid var(--office-border);border-radius:0 0 10px 10px;
}
.office-boq-live-table{width:100%;min-width:980px;border-collapse:separate;border-spacing:0;table-layout:fixed;font-size:13px}
.office-boq-live-table thead{position:sticky;top:0;z-index:5;background:#f7f9fb}
.office-boq-live-table th{height:36px;padding:0 8px;border-bottom:1px solid var(--office-border);font-weight:700;white-space:nowrap}
.office-boq-live-table td{height:34px;padding:2px 7px;border-bottom:1px solid #edf0f3;vertical-align:middle;background:#fff}
.office-boq-live-table th.is-drag,.office-boq-live-table td.is-drag{width:34px}
.office-boq-live-table th.is-number,.office-boq-live-table td.is-number{width:92px}
.office-boq-live-table th.is-unit,.office-boq-live-table td.is-unit{width:84px}
.office-boq-live-table th.is-money,.office-boq-live-table td.is-money{width:118px}
.office-boq-live-table th.is-tools,.office-boq-live-table td.is-tools{width:92px}
.office-boq-live-empty{height:360px;display:grid;place-items:center;color:var(--office-text-muted)}
@media(max-width:1100px){.office-boq-live-table{min-width:900px}.office-boq-live-table-wrap{overflow:auto}}

/* r023 final packaging consolidation: no native top-layer for Blazor-owned comboboxes.
   Viewport-fixed positioning is sufficient and preserves the owner/trigger relationship. */
.office-combobox-popover{position:fixed;inset:auto;margin:0;transform:none;z-index:2147483000;box-sizing:border-box}

/* Context navigation: exact shared 36px optical axis inside the centered header row. */
.office-context-bar.is-contextual .office-context-path,
.office-context-bar.is-contextual .office-context-menu-wrap,
.office-context-bar.is-contextual .office-context-split{height:36px;min-height:36px;align-items:center}
.office-context-bar.is-contextual .office-context-title-link{height:36px;min-height:36px;line-height:36px;align-items:center;padding:0;transform:none}
.office-context-bar.is-contextual .office-context-title-link,
.office-context-bar.is-contextual .office-context-back,
.office-context-bar.is-contextual .office-context-chevron-button,
.office-context-bar.is-contextual .office-context-more{align-self:center}

/* Diary report card uses the exact same internal heading rhythm as all construction cards. */
.office-diary-report-card-r019>.office-diary-report-heading-r023{margin:0 0 12px;padding:0;row-gap:12px;align-items:flex-start}
.office-diary-report-card-r019>.office-diary-report-heading-r023 .office-dashboard-panel-tabs{margin-top:0;align-self:flex-start}

/* r024 intermediate correction round */
/* Project context header: fixed geometry and typography; no page-local offsets. */
.office-context-bar.is-contextual{height:112px;min-height:112px;padding:0 10px;display:flex;align-items:center;border-bottom:1px solid var(--office-border)}
.office-context-bar.is-contextual .office-context-main{height:100%;display:flex;align-items:center;gap:10px}
.office-context-bar.is-contextual .office-context-path,.office-context-bar.is-contextual .office-context-split,.office-context-bar.is-contextual .office-context-menu-wrap{display:inline-flex;align-items:center}
.office-context-bar.is-contextual .office-context-back{width:34px;height:34px;min-width:34px;display:inline-grid;place-items:center}
.office-context-bar.is-contextual .office-context-back-icon{width:22px;height:22px}
.office-context-bar.is-contextual .office-context-title-link,.office-context-bar.is-contextual .office-context-label{font-size:16px;font-weight:600;line-height:1.2;min-height:36px;display:inline-flex;align-items:center}
.office-context-bar.is-contextual .office-context-chevron-button{width:28px;height:34px;display:inline-grid;place-items:center}
.office-context-bar.is-contextual .office-context-chevron{width:16px;height:16px}
.office-context-bar.is-contextual .office-context-separator{font-size:20px;line-height:1;color:var(--office-text-muted);display:inline-flex;align-items:center;margin:0 2px}
.office-context-bar.is-contextual .office-context-more{width:30px;height:30px;min-width:30px;min-height:30px;padding:0;display:inline-grid;place-items:center}
.office-context-bar.is-contextual .office-context-more .office-svg-icon{width:16px;height:16px}
.office-context-bar.is-contextual + .office-page-heading{margin-top:24px}
@media(max-width:900px){.office-context-bar.is-contextual{height:82px;min-height:82px}.office-context-bar.is-contextual .office-context-title-link,.office-context-bar.is-contextual .office-context-label{font-size:15px}}
/* Offer hourly table follows the Special Services master. */
.office-offer-hourly-table-r024{margin-top:16px}
.office-offer-hourly-table-r024 input:not([type=checkbox]),.office-offer-hourly-table-r024 select{width:100%;min-height:44px;border:1px solid var(--office-border);border-radius:var(--office-radius-md);background:var(--office-surface);padding:0 12px;font:inherit;color:var(--office-text)}
.office-offer-hourly-table-r024 input[type=checkbox]{appearance:none;width:16px;height:16px;min-width:16px;min-height:16px;margin:0 auto;border:1px solid var(--office-border-strong);border-radius:4px;background:#fff center/11px 11px no-repeat;display:block}
.office-offer-hourly-table-r024 input[type=checkbox]:checked{background-color:var(--office-primary);border-color:var(--office-primary);background-image:url('/icons/office/actions/check.svg')}
/* Hospitality editor: denser upload and two-column desktop rows. */
.office-hospitality-editor-r024 .office-file-upload-control{min-height:64px}
.office-hospitality-editor-r024 .office-hospitality-top-row-r024,.office-hospitality-editor-r024 .office-hospitality-place-row-r024{display:grid;grid-template-columns:1fr 1fr;gap:18px}
@media(max-width:760px){.office-hospitality-editor-r024 .office-hospitality-top-row-r024,.office-hospitality-editor-r024 .office-hospitality-place-row-r024{grid-template-columns:1fr}}
.office-hospitality-editor-r024{width:min(96vw,1500px);height:min(94dvh,1120px);max-height:94dvh}
.office-hospitality-editor-r024 .office-dialog-body{overflow:auto}
.office-hospitality-editor-r024 .office-hospitality-file-drop-r019{min-height:72px;padding:12px 18px}
.office-hospitality-editor-r024 .office-hospitality-picker-r023{width:100%}
.office-hospitality-editor-r024 .office-hospitality-picker-popover-r023{width:var(--office-popover-anchor-width,100%);min-width:100%;max-width:min(760px,calc(100vw - 40px))}
.office-quick-capture-details-r024{padding:0;overflow:hidden}
.office-quick-capture-details-r024>summary{list-style:none;cursor:pointer;min-height:58px;padding:0 20px;display:flex;align-items:center;justify-content:space-between}
.office-quick-capture-details-r024>summary::-webkit-details-marker{display:none}.office-quick-capture-details-r024>summary .office-svg-icon{width:16px;height:16px;transition:transform .15s ease}.office-quick-capture-details-r024[open]>summary .office-svg-icon{transform:rotate(180deg)}
.office-quick-capture-details-body-r024{padding:0 20px 20px}
@media(max-width:900px){.office-quick-capture-details-r024[open]:not(:focus-within){} .office-quick-capture-actions-r023{display:grid;grid-template-columns:1fr 1fr}.office-quick-capture-actions-r023 .is-primary{grid-column:1/-1}}
.office-external-task-portal-r020{background:#f5f6f8;min-height:100dvh;padding:24px}
.office-external-portal-shell-r020{max-width:1440px;margin:0 auto}
.office-external-brand-header-r020,.office-external-task-list-card-r020{background:#fff;border:1px solid var(--office-border);border-radius:18px}
.office-external-task-heading-r020 h1{font-size:clamp(28px,3vw,42px);line-height:1.12;margin:.25rem 0 .4rem}
.office-external-task-list-card-r020{padding:22px 24px}.office-external-task-table-wrap-r020{border:1px solid var(--office-border);border-radius:12px;overflow:hidden}.office-external-task-table-r020{width:100%;border-collapse:collapse;background:#fff}.office-external-task-table-r020 th{background:#f7f8fa}.office-external-task-table-r020 th,.office-external-task-table-r020 td{padding:14px 16px;border-bottom:1px solid var(--office-border);text-align:left}
.office-mail-pdf-card-r024{display:flex;align-items:center;gap:12px;padding:12px 14px;border:1px solid var(--office-border);border-radius:var(--office-radius-md);background:var(--office-surface-soft)}.office-mail-pdf-card-r024>.office-svg-icon{width:22px;height:22px}.office-mail-pdf-card-r024>div{display:grid;gap:2px;flex:1}.office-mail-pdf-card-r024 small{color:var(--office-text-muted)}
.office-boq-start-option-r024{grid-template-rows:48px 1fr}.office-boq-start-option-r024>strong{min-height:48px;display:flex;align-items:flex-start;padding-top:2px}.office-boq-start-option-r024>small{align-self:start}
.office-invoice-final-field-r024 .office-invoice-final-pill-r024{min-height:44px;height:44px;width:max-content}

/* r024 intermediate-02 — definitive project context header geometry.
   This is intentionally the final authority: one compact row, centered between topbar and divider. */
.office-project-workspace{margin-top:-30px}
.office-context-bar.is-contextual{height:82px;min-height:82px;padding:0 10px;margin:0;display:flex;align-items:center;border-bottom:1px solid var(--office-border)}
.office-context-bar.is-contextual .office-context-main{height:100%;min-height:0;margin:0;padding:0;display:flex;align-items:center;gap:10px}
.office-context-bar.is-contextual .office-context-path{height:40px;min-height:40px;display:flex;align-items:center;gap:8px;margin:0;padding:0}
.office-context-bar.is-contextual .office-context-menu-wrap,.office-context-bar.is-contextual .office-context-split{height:40px;min-height:40px;display:inline-flex;align-items:center;margin:0;padding:0}
.office-context-bar.is-contextual .office-context-back{width:36px;height:36px;min-width:36px;min-height:36px;margin:0 2px 0 0;padding:0;display:inline-grid;place-items:center;align-self:center}
.office-context-bar.is-contextual .office-context-back-icon{width:25px;height:25px}
.office-context-bar.is-contextual .office-context-title-link,.office-context-bar.is-contextual .office-context-label{height:36px;min-height:36px;padding:0;display:inline-flex;align-items:center;font-size:17px;font-weight:650;line-height:36px;transform:none}
.office-context-bar.is-contextual .office-context-chevron-button{width:26px;height:34px;min-width:26px;min-height:34px;margin:0 0 0 6px;padding:0;display:inline-grid;place-items:center;align-self:center}
.office-context-bar.is-contextual .office-context-chevron{width:14px;height:14px}
.office-context-bar.is-contextual .office-context-separator{height:36px;display:inline-flex;align-items:center;margin:0 2px;font-size:18px;line-height:36px;color:var(--office-text-muted)}
.office-context-bar.is-contextual .office-context-more{width:30px;height:30px;min-width:30px;min-height:30px;margin:0 0 0 2px;padding:0;display:inline-grid;place-items:center;align-self:center}
.office-context-bar.is-contextual .office-context-more .office-svg-icon{width:9px;height:9px}
.office-project-workspace>.office-project-page-heading{margin-top:22px;margin-bottom:14px}
@media(max-width:900px){.office-project-workspace{margin-top:0}.office-context-bar.is-contextual{height:72px;min-height:72px}.office-context-bar.is-contextual .office-context-title-link,.office-context-bar.is-contextual .office-context-label{font-size:16px}.office-context-bar.is-contextual .office-context-back-icon{width:23px;height:23px}.office-project-workspace>.office-project-page-heading{margin-top:18px}}

/* r024 intermediate-03: one project-header coordinate system + structured personal settings. */
.office-project-workspace{margin-top:0}
.office-project-workspace>.office-context-bar.is-contextual{height:82px;min-height:82px;padding-left:0;padding-right:0;margin-left:0;margin-right:0}
.office-project-workspace>.office-context-bar.is-contextual .office-context-main{margin-left:0;padding-left:0}
.office-project-workspace>.office-context-bar.is-contextual .office-context-back{margin-left:0}
.office-project-workspace>.office-project-page-heading{margin-top:24px;margin-bottom:18px}
.office-project-workspace>.office-project-page-heading+.office-local-tabs{margin-top:0}
.office-personal-settings-stack-r024{display:grid;gap:20px;margin-top:4px}
.office-personal-settings-card-r024{padding:24px 26px}
.office-personal-settings-card-r024>.office-settings-section-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:20px;margin:0 0 20px}
.office-personal-settings-card-r024>.office-settings-section-heading h2{margin:0 0 5px;font-size:19px}.office-personal-settings-card-r024>.office-settings-section-heading p{margin:0;color:var(--office-text-muted)}
.office-selection-count-r024{white-space:nowrap;padding:7px 10px;border-radius:999px;background:var(--office-surface-soft);color:var(--office-text-muted);font-size:13px;font-weight:650}
.office-quick-access-picker-r024{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}
.office-quick-access-choice-r024{min-height:70px;border:1px solid var(--office-border);border-radius:12px;background:var(--office-surface);padding:10px 12px;display:grid;grid-template-columns:38px 1fr 24px;align-items:center;gap:10px;text-align:left;color:var(--office-text);font:inherit;font-weight:650;cursor:pointer}
.office-quick-access-choice-r024:hover:not(:disabled){border-color:var(--office-border-strong);background:var(--office-surface-soft)}.office-quick-access-choice-r024.is-selected{border-color:var(--office-primary);box-shadow:0 0 0 1px color-mix(in srgb,var(--office-primary) 22%,transparent)}.office-quick-access-choice-r024:disabled{opacity:.45;cursor:not-allowed}.office-quick-access-check-r024{text-align:center;color:var(--office-primary);font-size:18px}.office-settings-save-note-r024{margin:14px 0 0;color:var(--office-text-muted);font-size:13px}
@media(max-width:1050px){.office-quick-access-picker-r024{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:620px){.office-quick-access-picker-r024{grid-template-columns:1fr}.office-personal-settings-card-r024>.office-settings-section-heading{display:grid}}

/* r024 intermediate 04: hospitality proportions + final-invoice checkbox */
.office-hospitality-editor-r024{width:min(1180px,calc(100vw - 48px));height:min(94dvh,1120px);max-height:94dvh}
.office-invoice-period-final-row-r024{grid-template-columns:minmax(0,2fr) minmax(220px,.72fr);align-items:end}
.office-invoice-final-field-r024{min-height:44px;display:flex;align-items:center;gap:10px;padding-bottom:10px}
.office-invoice-final-field-r024>span{margin:0}
@media(max-width:900px){.office-hospitality-editor-r024{width:min(96vw,1180px)}.office-invoice-period-final-row-r024{grid-template-columns:1fr}}

/* r024 intermediate-05 — single authoritative context-header geometry.
   Project and LV workspaces use the exact same header box; child workspaces may not offset it. */
.office-project-workspace > .office-context-bar.is-contextual,
.office-procurement-workspace > .office-context-bar.is-contextual {
    box-sizing:border-box;
    width:100%;
    height:82px;
    min-height:82px;
    margin:0;
    padding:0;
    display:flex;
    align-items:center;
    border-bottom:1px solid var(--office-border);
}
.office-project-workspace > .office-context-bar.is-contextual > .office-context-main,
.office-procurement-workspace > .office-context-bar.is-contextual > .office-context-main {
    box-sizing:border-box;
    width:100%;
    height:82px;
    min-height:82px;
    margin:0;
    padding:0;
    display:flex;
    align-items:center;
    gap:10px;
}
.office-project-workspace > .office-context-bar.is-contextual .office-context-path,
.office-procurement-workspace > .office-context-bar.is-contextual .office-context-path,
.office-project-workspace > .office-context-bar.is-contextual .office-context-split,
.office-procurement-workspace > .office-context-bar.is-contextual .office-context-split,
.office-project-workspace > .office-context-bar.is-contextual .office-context-menu-wrap,
.office-procurement-workspace > .office-context-bar.is-contextual .office-context-menu-wrap {
    height:40px;
    min-height:40px;
    margin:0;
    padding:0;
    display:inline-flex;
    align-items:center;
    align-self:center;
}
.office-project-workspace > .office-context-bar.is-contextual .office-context-path,
.office-procurement-workspace > .office-context-bar.is-contextual .office-context-path { gap:8px; }
.office-project-workspace > .office-context-bar.is-contextual .office-context-title-link,
.office-procurement-workspace > .office-context-bar.is-contextual .office-context-title-link,
.office-project-workspace > .office-context-bar.is-contextual .office-context-label,
.office-procurement-workspace > .office-context-bar.is-contextual .office-context-label {
    height:36px;
    min-height:36px;
    margin:0;
    padding:0;
    display:inline-flex;
    align-items:center;
    line-height:36px;
    transform:none;
}
.office-project-workspace > .office-context-bar.is-contextual .office-context-back,
.office-procurement-workspace > .office-context-bar.is-contextual .office-context-back,
.office-project-workspace > .office-context-bar.is-contextual .office-context-chevron-button,
.office-procurement-workspace > .office-context-bar.is-contextual .office-context-chevron-button,
.office-project-workspace > .office-context-bar.is-contextual .office-context-more,
.office-procurement-workspace > .office-context-bar.is-contextual .office-context-more { align-self:center; }
/* The LV content starts after, never inside, the context header. */
.office-procurement-workspace > .office-procurement-summary { margin-top:24px; }
@media(max-width:900px){
    .office-project-workspace > .office-context-bar.is-contextual,
    .office-procurement-workspace > .office-context-bar.is-contextual,
    .office-project-workspace > .office-context-bar.is-contextual > .office-context-main,
    .office-procurement-workspace > .office-context-bar.is-contextual > .office-context-main {height:72px;min-height:72px}
    .office-procurement-workspace > .office-procurement-summary {margin-top:18px}
}

/* r024 intermediate-06 — structural context header reset. One coordinate system only. */
.office-project-workspace,
.office-procurement-workspace { margin-top:0 !important; }
.office-project-workspace > .office-context-bar.is-contextual,
.office-procurement-workspace > .office-context-bar.is-contextual {
  box-sizing:border-box !important; position:relative !important; inset:auto !important;
  width:100% !important; height:72px !important; min-height:72px !important;
  margin:0 !important; padding:0 !important; transform:none !important;
  display:flex !important; align-items:center !important; border-bottom:1px solid var(--office-border) !important;
}
.office-project-workspace > .office-context-bar.is-contextual > .office-context-main,
.office-procurement-workspace > .office-context-bar.is-contextual > .office-context-main {
  box-sizing:border-box !important; height:100% !important; min-height:0 !important;
  margin:0 !important; padding:0 !important; transform:none !important;
  display:flex !important; align-items:center !important;
}
.office-project-workspace > .office-context-bar.is-contextual .office-context-path,
.office-procurement-workspace > .office-context-bar.is-contextual .office-context-path {
  height:auto !important; min-height:0 !important; margin:0 !important; padding:0 !important;
  display:flex !important; align-items:center !important; gap:8px !important; transform:none !important;
}
.office-project-workspace > .office-project-page-heading { margin-top:22px !important; }
.office-procurement-workspace > .office-procurement-summary { margin-top:22px !important; }

/* r024 intermediate-06 — consistent checkbox master in offer/invoice tables. */
.office-offer-hourly-table-r024 input[type="checkbox"],
.office-invoice-final-field-r024 input[type="checkbox"] { width:18px !important; height:18px !important; margin:0 !important; accent-color:var(--office-primary); }
.office-invoice-final-field-r024 { display:inline-flex !important; flex-direction:row !important; align-items:center !important; justify-content:flex-start !important; gap:9px !important; padding:0 !important; min-height:44px !important; }
.office-invoice-final-field-r024 > span { order:2; white-space:nowrap; }
.office-invoice-final-field-r024 > input { order:1; }

/* r024 intermediate-06 — iOS: prevent automatic focus zoom without disabling user zoom. */
@media(max-width:900px){
  input, textarea, select, [contenteditable="true"] { font-size:16px !important; }
  .office-quick-capture-details-r024 > summary { min-height:54px; padding:0 14px; }
  .office-quick-capture-details-body-r024 { padding:0 12px 14px; }
  .office-quick-capture-details-r024 .office-table-frame { overflow:visible; border:0; background:transparent; }
  .office-quick-capture-details-r024 table,
  .office-quick-capture-details-r024 tbody { display:block; width:100%; }
  .office-quick-capture-details-r024 thead { display:none; }
  .office-quick-capture-details-r024 tr { display:grid; grid-template-columns:1fr; gap:5px; margin:0 0 10px; padding:12px; border:1px solid var(--office-border); border-radius:12px; background:var(--office-surface); }
  .office-quick-capture-details-r024 td { display:block; width:auto !important; min-width:0 !important; padding:0 !important; border:0 !important; white-space:normal !important; }
  .office-quick-capture-details-r024 td:first-child { color:var(--office-text-muted); font-size:12px; }
  .office-quick-capture-details-r024 td:nth-child(2) { font-weight:650; }
  .office-quick-capture-details-r024 td:nth-child(5) { color:var(--office-text-muted); font-size:12px; }
}
.office-qc-thumb-r024 { width:62px; height:48px; object-fit:cover; border-radius:8px; border:1px solid var(--office-border); display:block; }
.office-qc-pending-r024 { display:flex; gap:8px; flex-wrap:wrap; }
.office-qc-pending-item-r024 { position:relative; width:72px; height:58px; border:1px solid var(--office-border); border-radius:9px; overflow:hidden; display:grid; place-items:center; background:var(--office-surface-soft); }
.office-qc-pending-item-r024 img { width:100%; height:100%; object-fit:cover; }
.office-qc-pending-item-r024 > button { position:absolute; top:2px; right:2px; width:22px; height:22px; min-width:22px; background:rgba(255,255,255,.92); }

/* r024 LV V2 — rebuilt AG Grid working table ---------------------------------
   One browser-owned grid, authenticated CRUD API, Office UI. */
.office-boq-toolbar-v2{position:relative;z-index:2;background:var(--office-surface);}
.office-boq-toolbar-v2 .office-ava-toolbar-controls{min-width:0;}
.office-boq-toolbar-v2 .office-ava-insert-icon{width:34px;height:34px;min-width:34px;min-height:34px;border-radius:8px;}
.office-boq-toolbar-v2 .office-ava-insert-icon .office-svg-icon{width:16px;height:16px;}
.office-boq-toolbar-v2 .office-ava-history-icon{width:30px;height:30px;min-width:30px;min-height:30px;}
.office-boq-toolbar-v2 .office-ava-history-icon .office-svg-icon{width:14px;height:14px;}
.office-boq-grid-v2{position:relative;min-width:0;background:var(--office-surface);}
.office-boq-grid-v2.is-loading::after{content:"";position:absolute;inset:0 0 42px 0;background:rgba(255,255,255,.34);pointer-events:none;z-index:4;}
.office-boq-grid-v2 .office-boq-ag-grid{height:clamp(520px,calc(100vh - 315px),780px);min-height:520px;max-height:none;border:0;}
.office-boq-grid-v2 .ag-root-wrapper{border:0!important;border-radius:0!important;}
.office-boq-grid-v2 .ag-header{border-bottom:1px solid var(--office-border);}
.office-boq-grid-v2 .ag-header-cell{font-size:13px;font-weight:600;color:var(--office-text);}
.office-boq-grid-v2 .ag-row{border-bottom-color:var(--office-border-soft,#edf0f3);}
.office-boq-grid-v2 .ag-cell{font-size:13px;color:var(--office-text);}
.office-boq-grid-v2 .office-ag-row-node{font-weight:600;background:#f8fafc;}
.office-boq-grid-v2 .office-ag-row-node .ag-cell{border-top:1px solid #e4e8ed;}
.office-boq-grid-v2 .office-ag-row-item.is-selected,
.office-boq-grid-v2 .office-ag-row-node.is-selected{background:var(--office-primary-soft,#eaf3ff)!important;}
.office-boq-grid-v2 .office-ag-row-preliminaryremark,
.office-boq-grid-v2 .office-ag-row-note,
.office-boq-grid-v2 .office-ag-row-executiondescription,
.office-boq-grid-v2 .office-ag-row-text{background:#fbfcfd;}
.office-ag-hierarchy-v2{padding-left:calc(var(--depth,0)*18px);gap:6px;}
.office-ag-hierarchy-v2 .office-ag-chevron{width:20px;height:20px;min-width:20px;min-height:20px;display:grid;place-items:center;}
.office-ag-hierarchy-v2 .office-ag-chevron .office-svg-icon{width:11px;height:11px;transition:transform .15s ease;}
.office-ag-hierarchy-v2 .office-ag-chevron.is-collapsed .office-svg-icon{transform:rotate(-90deg);}
.office-ag-hierarchy-v2 .office-ag-oz{min-width:58px;font-size:12px;color:var(--office-text-muted);}
.office-ag-hierarchy-v2 .office-ag-title{font-size:13px;}
.office-boq-grid-v2 .office-ag-type{font-size:10px;line-height:1.2;padding:2px 6px;border-radius:999px;background:#fff;}
.office-ag-drag-icon{display:grid;place-items:center;width:100%;height:100%;opacity:.5;cursor:grab;}
.office-ag-drag-icon .office-svg-icon{width:13px;height:13px;}
.office-ag-more-button{width:28px;height:28px;min-width:28px;min-height:28px;padding:0;border:1px solid var(--office-border);border-radius:7px;background:var(--office-surface);display:grid;place-items:center;cursor:pointer;color:var(--office-text-muted);}
.office-ag-more-button:hover{background:var(--office-surface-soft);border-color:var(--office-border-strong);color:var(--office-text);}
.office-ag-more-button .office-svg-icon{width:11px;height:11px;}
.office-ag-warning{width:18px;height:18px;border-radius:999px;display:grid;place-items:center;background:#fff7e6;color:#a15c00;border:1px solid #f0d29a;font-size:11px;font-weight:700;}
.office-boq-row-menu{position:fixed;z-index:2147483642;width:230px;padding:7px;background:var(--office-surface);border:1px solid var(--office-border);border-radius:10px;box-shadow:var(--office-shadow-popover);}
.office-boq-row-menu .office-menu-row{width:100%;min-height:34px;border-radius:7px;}
.office-boq-row-menu .office-menu-row .office-svg-icon{width:14px;height:14px;}
.office-boq-row-menu .office-menu-row.is-danger{color:var(--office-danger,#c62828);}
.office-boq-grid-status{position:absolute;right:12px;bottom:48px;z-index:5;min-height:0;padding:0 9px;border-radius:7px;background:rgba(255,255,255,.94);box-shadow:0 2px 8px rgba(16,24,40,.08);font-size:12px;line-height:28px;color:var(--office-text-muted);pointer-events:none;}
.office-boq-grid-status:empty{display:none;}
.office-boq-grid-status.is-error{display:block;color:#b42318;background:#fff6f5;border:1px solid #fecdca;}
.office-ag-empty-v2{display:grid;place-items:center;gap:5px;color:var(--office-text-muted);font-size:13px;text-align:center;}
.office-ag-empty-v2 strong{color:var(--office-text);font-weight:600;}
.office-boq-total-footer-v2{min-height:42px;display:flex;justify-content:flex-end;align-items:center;gap:28px;padding:0 16px;border-top:1px solid var(--office-border);background:#fbfcfd;font-size:12px;color:var(--office-text-muted);}
.office-boq-total-footer-v2 strong{margin-left:6px;color:var(--office-text);font-size:13px;font-variant-numeric:tabular-nums;}
.office-boq-grid-v2 .ag-cell-inline-editing{background:#fff!important;box-shadow:inset 0 0 0 2px var(--office-primary)!important;padding-left:6px!important;padding-right:6px!important;}
.office-boq-grid-v2 .ag-cell-inline-editing input,
.office-boq-grid-v2 .ag-cell-inline-editing select{font:inherit;color:var(--office-text);}
@media(max-width:1100px){
  .office-boq-toolbar-v2 .office-table-toolbar-main{flex-wrap:wrap;gap:8px;}
  .office-boq-toolbar-v2 .office-ava-toolbar-controls.is-left{flex-wrap:wrap;}
  .office-boq-toolbar-v2 .office-ava-toolbar-controls.is-right{width:100%;justify-content:flex-end;}
}
@media(max-width:700px){
  .office-boq-grid-v2 .office-boq-ag-grid{height:62vh;min-height:430px;}
  .office-boq-total-footer-v2{justify-content:flex-start;gap:14px;overflow-x:auto;}
  .office-boq-toolbar-v2 .office-ava-toolbar-button span:last-child{display:none;}
  .office-boq-toolbar-v2 .office-ava-toolbar-button{width:34px;min-width:34px;height:34px;padding:0;display:grid;place-items:center;}
  .office-boq-toolbar-v2 .office-ava-search-r024{flex:1 1 220px;}
}

/* r024 intermediate-10: AG Grid LV complete workspace */
.office-boq-grid-v2 .ag-row.has-color-yellow{box-shadow:inset 4px 0 #d7a800}
.office-boq-grid-v2 .ag-row.has-color-red{box-shadow:inset 4px 0 #c43131}
.office-boq-grid-v2 .ag-row.has-color-green{box-shadow:inset 4px 0 #3b8b58}
.office-boq-grid-v2 .ag-row.has-color-blue{box-shadow:inset 4px 0 #3979b8}
.office-boq-grid-v2 .ag-row.has-color-gray{box-shadow:inset 4px 0 #8a9299}
.office-boq-grid-v2 .ag-row.is-omitted{opacity:.52;text-decoration:line-through}
.office-boq-grid-v2 .office-ag-text-link{display:block;width:100%;min-width:0;padding:0;border:0;background:transparent;color:var(--office-text-muted);font:inherit;font-size:12px;text-align:left;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;cursor:pointer}
.office-boq-grid-v2 .office-ag-text-link.has-content{color:var(--office-text)}
.office-boq-grid-v2 .office-ag-text-link:hover{color:var(--office-primary);text-decoration:underline}
.office-boq-grid-v2 .office-boq-color-dot{flex:0 0 10px;width:10px;height:10px;margin-left:2px}
.office-boq-row-menu{max-height:min(72vh,660px);overflow:auto}
.office-boq-menu-colors .office-boq-color-choice.is-selected,.office-boq-detail-colors .office-boq-color-choice.is-selected{outline:2px solid var(--office-text);outline-offset:2px}
.office-boq-detail-sidebar-v2{z-index:10040}
.office-boq-detail-sidebar-v2 + *{min-width:0}
.office-boq-detail-sidebar-v2 .office-boq-detail-section{flex:0 0 auto}
.office-boq-detail-inline-actions{display:flex;align-items:center;gap:6px;flex-wrap:wrap;justify-content:flex-end}
.office-boq-rich-editor-v2{overflow:hidden;border:1px solid var(--office-border);border-radius:9px;background:var(--office-surface)}
.office-boq-rich-toolbar-v2{display:flex;align-items:center;gap:3px;padding:6px;border-bottom:1px solid var(--office-border);background:var(--office-surface-soft)}
.office-boq-rich-toolbar-v2 button{min-width:30px;height:28px;padding:0 7px;border:0;border-radius:6px;background:transparent;color:var(--office-text);font-weight:700;cursor:pointer}
.office-boq-rich-toolbar-v2 button:hover{background:var(--office-surface)}
.office-boq-rich-content-v2{min-height:150px;padding:12px 13px;outline:0;font-size:13px;line-height:1.5}
.office-boq-rich-content-v2:empty::before{content:attr(data-placeholder);color:var(--office-text-muted);pointer-events:none}
.office-boq-surcharge-section-v2 .office-boq-surcharge-basis-v2{display:grid;gap:10px;padding:12px;margin-top:10px;border:1px solid var(--office-border);border-radius:10px;background:var(--office-surface-soft)}
.office-boq-surcharge-dynamic-v2{display:contents}
.office-boq-surcharge-basis-v2>.office-boq-bidder-field-actions{justify-content:flex-end}
.office-boq-detail-sidebar-v2 input,.office-boq-detail-sidebar-v2 select,.office-boq-detail-sidebar-v2 textarea{width:100%;min-height:40px;border:1px solid var(--office-border);border-radius:8px;background:var(--office-surface);color:var(--office-text);font:inherit;padding:8px 10px;box-sizing:border-box}
.office-boq-detail-sidebar-v2 textarea{resize:vertical;min-height:84px}
.office-boq-detail-sidebar-v2 input:disabled{background:var(--office-surface-soft);color:var(--office-text-muted)}
.office-boq-detail-sidebar-v2 .office-checkbox-row input[type=checkbox]{width:16px;min-height:16px;height:16px;padding:0}
@media(max-width:760px){.office-boq-detail-sidebar-v2{width:100vw}.office-boq-detail-inline-actions{justify-content:flex-start}}

/* r024 intermediate-11: LV interaction polish -------------------------------- */
.office-procurement-workspace,
.office-boq-ag-workspace,
.office-boq-grid-v2,
.office-boq-grid-v2 .office-boq-ag-grid,
.office-boq-grid-v2 .ag-root-wrapper,
.office-boq-grid-v2 .ag-root-wrapper-body,
.office-boq-grid-v2 .ag-root { width:100%; max-width:100%; min-width:0; box-sizing:border-box; }
.office-boq-ag-workspace { overflow:hidden; }
.office-boq-grid-v2 .ag-body-horizontal-scroll { max-width:100%; }
.office-boq-grid-v2 .ag-row { transition:background-color .12s ease, box-shadow .12s ease, opacity .12s ease; }
.office-boq-grid-v2 .ag-row:hover { background-color:#f5f9ff; }
.office-boq-grid-v2 .ag-row-selected { background:var(--office-primary-soft,#eaf3ff)!important; }
.office-boq-grid-v2 .ag-row-drag { opacity:0; transition:opacity .12s ease; }
.office-boq-grid-v2 .ag-row:hover .ag-row-drag,
.office-boq-grid-v2 .ag-row-selected .ag-row-drag { opacity:.72; }
.office-boq-grid-v2 .office-ag-action-cell .office-ag-more-button { opacity:0; transform:scale(.92); transition:opacity .12s ease, transform .12s ease, background-color .12s ease; }
.office-boq-grid-v2 .ag-row:hover .office-ag-action-cell .office-ag-more-button,
.office-boq-grid-v2 .ag-row-selected .office-ag-action-cell .office-ag-more-button,
.office-boq-grid-v2 .office-ag-more-button:focus-visible { opacity:1; transform:scale(1); }
.office-ag-hierarchy-v2 { width:100%; min-width:0; }
.office-ag-hierarchy-v2 .office-ag-title { min-width:0; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.office-ag-hierarchy-v2 .office-ag-chevron { border:0; background:transparent; border-radius:5px; color:var(--office-text-muted); }
.office-ag-hierarchy-v2 .office-ag-chevron:hover { background:var(--office-surface-soft); color:var(--office-text); }
.office-ag-hierarchy-v2 .office-ag-chevron .office-svg-icon { transform:none!important; }
.office-ag-quick-add { margin-left:auto; flex:0 0 auto; display:inline-flex; align-items:center; gap:5px; min-height:26px; padding:0 7px; border:1px solid var(--office-border); border-radius:7px; background:var(--office-surface); color:var(--office-text-muted); font:inherit; font-size:11px; opacity:0; pointer-events:none; transform:translateX(4px); transition:opacity .12s ease,transform .12s ease,background-color .12s ease; }
.office-ag-quick-add .office-svg-icon { width:12px; height:12px; }
.office-boq-grid-v2 .ag-row:hover .office-ag-quick-add,
.office-boq-grid-v2 .ag-row-selected .office-ag-quick-add { opacity:1; pointer-events:auto; transform:none; }
.office-ag-quick-add:hover { background:var(--office-surface-soft); color:var(--office-text); }
.office-boq-grid-v2 .ag-row.is-drop-before .ag-cell { border-top:3px solid var(--office-primary)!important; }
.office-boq-grid-v2 .ag-row.is-drop-after .ag-cell { border-bottom:3px solid var(--office-primary)!important; }
.office-boq-grid-v2 .ag-row.is-drop-inside { background:var(--office-primary-soft,#eaf3ff)!important; box-shadow:inset 0 0 0 2px var(--office-primary); }
body.office-boq-row-dragging .ag-dnd-ghost { display:none!important; }
.office-ag-quantity-cell { width:100%; display:flex; align-items:center; justify-content:flex-end; gap:5px; }
.office-ag-formula-indicator { width:20px; height:20px; min-width:20px; border:0; border-radius:5px; background:transparent; color:var(--office-text-muted); display:grid; place-items:center; cursor:pointer; }
.office-ag-formula-indicator:hover { background:var(--office-surface-soft); color:var(--office-primary); }
.office-ag-formula-indicator .office-svg-icon { width:12px; height:12px; }

.office-boq-quantity-control { display:grid; grid-template-columns:minmax(0,1fr) 38px; gap:6px; align-items:center; }
.office-boq-quantity-button { width:38px; height:40px; min-width:38px; min-height:40px; border-radius:8px; }
.office-boq-quantity-button.has-calculation { border-color:var(--office-primary); color:var(--office-primary); background:var(--office-primary-soft,#eaf3ff); }
.office-boq-quantity-modal-root { position:fixed; inset:0; z-index:2147483644; display:grid; place-items:center; padding:24px; }
.office-boq-quantity-modal-scrim { position:absolute; inset:0; width:100%; height:100%; border:0; background:rgba(15,23,42,.42); }
.office-boq-quantity-modal { position:relative; z-index:1; width:min(920px,calc(100vw - 48px)); max-height:min(86vh,820px); overflow:auto; border:1px solid var(--office-border); border-radius:14px; background:var(--office-surface); box-shadow:var(--office-shadow-popover); }
.office-boq-quantity-modal-head { position:sticky; top:0; z-index:2; display:flex; align-items:center; justify-content:space-between; gap:18px; padding:18px 20px 14px; border-bottom:1px solid var(--office-border); background:var(--office-surface); }
.office-boq-quantity-modal-head small { color:var(--office-text-muted); }
.office-boq-quantity-modal-head h2 { margin:3px 0 0; font-size:20px; }
.office-boq-quantity-help { padding:12px 20px 0; }
.office-link-button { border:0; background:transparent; color:var(--office-primary); font:inherit; font-weight:600; cursor:pointer; padding:4px 0; }
.office-boq-quantity-help-text { margin:5px 0 0; padding:9px 11px; border-radius:8px; background:var(--office-surface-soft); color:var(--office-text-muted); font-size:12px; }
.office-boq-quantity-table { margin:14px 20px 0; border:1px solid var(--office-border); border-radius:10px; overflow:hidden; }
.office-boq-quantity-row { display:grid; grid-template-columns:minmax(180px,1.2fr) 120px minmax(180px,1fr) 38px; align-items:center; min-height:48px; border-top:1px solid var(--office-border); }
.office-boq-quantity-row:first-child { border-top:0; }
.office-boq-quantity-row.is-header { min-height:38px; background:var(--office-surface-soft); }
.office-boq-quantity-row > * { min-width:0; margin:0; padding:8px 10px; box-sizing:border-box; }
.office-boq-quantity-row input { width:100%; height:36px; border:1px solid var(--office-border); border-radius:7px; padding:6px 8px; font:inherit; box-sizing:border-box; }
.office-boq-quantity-result { font-variant-numeric:tabular-nums; }
.office-boq-quantity-result.is-error { color:var(--office-danger,#c62828); }
.office-boq-quantity-add { margin:10px 20px 0; }
.office-boq-quantity-total { display:flex; justify-content:space-between; align-items:center; margin:14px 20px 0; padding:14px 16px; border-radius:9px; background:var(--office-surface-soft); font-size:16px; }
.office-boq-quantity-total-value { font-variant-numeric:tabular-nums; }
.office-boq-quantity-modal-actions { position:sticky; bottom:0; display:flex; justify-content:flex-end; gap:8px; margin-top:16px; padding:14px 20px; border-top:1px solid var(--office-border); background:var(--office-surface); }
.office-boq-issue-chips { display:flex; flex-wrap:wrap; gap:7px; }
.office-boq-issue-chip { min-height:30px; display:inline-flex; align-items:center; gap:5px; padding:0 9px; border:1px solid var(--office-border); border-radius:999px; background:var(--office-surface); color:var(--office-text-muted); font:inherit; font-size:12px; cursor:pointer; transition:border-color .12s ease,background-color .12s ease,color .12s ease; }
.office-boq-issue-chip:hover { border-color:var(--office-border-strong); color:var(--office-text); }
.office-boq-issue-chip.is-active { border-color:#e1a654; background:#fff8e8; color:#8a5200; }
.office-boq-issue-chip-mark { width:16px; height:16px; border-radius:999px; display:grid; place-items:center; background:#d99028; color:#fff; font-size:10px; font-weight:800; }
.office-boq-detail-help { margin:8px 0 0; color:var(--office-text-muted); font-size:12px; line-height:1.4; }
.office-personal-checkbox-r024 { align-items:flex-start; gap:9px; }
.office-personal-checkbox-r024 small { display:block; margin-top:2px; color:var(--office-text-muted); font-weight:400; }
@media(max-width:700px){
  .office-boq-quantity-modal-root{padding:8px}.office-boq-quantity-modal{width:calc(100vw - 16px);max-height:92vh;border-radius:12px}.office-boq-quantity-row{grid-template-columns:1fr 88px}.office-boq-quantity-row.is-header>*:nth-child(3),.office-boq-quantity-row.is-header>*:nth-child(4){display:none}.office-boq-quantity-row>input:nth-child(3){grid-column:1/-1;border-top:1px solid var(--office-border)}
}

/* r024 intermediate-11 — LV final interaction/layout pass */
.office-boq-ag-workspace{width:100%;max-width:100%;min-width:0;overflow:hidden;box-sizing:border-box}
.office-boq-ag-workspace>.office-table-toolbar,.office-boq-ag-workspace .office-table-toolbar{max-width:100%;min-width:0;box-sizing:border-box}
.office-boq-ag-workspace .office-table-toolbar-primary,.office-boq-ag-workspace .office-table-toolbar-secondary{min-width:0}
.office-boq-grid-v2{overflow:hidden;border-radius:0 0 12px 12px}
.office-boq-grid-v2 .ag-root-wrapper-body,.office-boq-grid-v2 .ag-body,.office-boq-grid-v2 .ag-body-viewport{min-width:0;max-width:100%}
.office-boq-grid-v2 .ag-center-cols-viewport,.office-boq-grid-v2 .ag-center-cols-container{min-width:0}
.office-boq-grid-v2 .ag-pinned-right-cols-container,.office-boq-grid-v2 .ag-pinned-right-header{background:var(--office-surface);box-shadow:-1px 0 0 var(--office-border)}
.office-boq-grid-v2 .ag-cell{transition:background-color .1s ease,border-color .1s ease,box-shadow .1s ease}
.office-boq-grid-v2 .ag-row-drag{cursor:grab}
.office-boq-grid-v2 .ag-row-drag:active{cursor:grabbing}
.office-boq-grid-v2 .ag-row[data-office-drop-label]{z-index:2}
.office-boq-grid-v2 .ag-row[data-office-drop-label]::after{content:attr(data-office-drop-label);position:absolute;right:54px;top:50%;transform:translateY(-50%);z-index:5;padding:3px 7px;border-radius:6px;background:var(--office-primary);color:#fff;font-size:10px;font-weight:600;line-height:1.2;pointer-events:none;box-shadow:0 2px 8px rgba(0,0,0,.12)}
.office-boq-grid-v2 .ag-row.is-drop-before .ag-cell{border-top:3px solid var(--office-primary)!important;border-bottom-color:transparent!important}
.office-boq-grid-v2 .ag-row.is-drop-after .ag-cell{border-bottom:3px solid var(--office-primary)!important;border-top-color:transparent!important}
.office-boq-grid-v2 .ag-row.is-drop-inside .ag-cell{border-top-color:transparent!important;border-bottom-color:transparent!important}
.office-boq-grid-v2 .ag-cell-inline-editing{transition:none!important}
.office-boq-grid-v2 .office-ag-more-button{width:28px!important;height:28px!important;min-width:28px!important;min-height:28px!important;padding:0!important}
.office-boq-grid-v2 .office-ag-more-button .office-svg-icon{width:13px!important;height:13px!important}
.office-boq-row-menu{z-index:2147483600}
.office-boq-quantity-modal-root.has-formula-error .office-boq-quantity-total-value{color:var(--office-danger,#c62828)}
@media(max-width:1100px){.office-boq-ag-workspace .office-table-toolbar{overflow-x:auto;overflow-y:hidden;scrollbar-width:thin}.office-boq-ag-workspace .office-table-toolbar-inner{min-width:max-content}}


/* r024 intermediate-12 — LV interaction corrections */
.office-boq-grid-v2 .ag-cell,
.office-boq-grid-v2 .ag-cell-wrapper,
.office-boq-grid-v2 .ag-cell-value{
  min-width:0!important;
  max-width:100%;
  overflow:hidden!important;
  text-overflow:ellipsis;
  white-space:nowrap;
}
.office-boq-grid-v2 .office-ag-hierarchy-v2{
  min-width:0;
  max-width:100%;
  overflow:hidden;
}
.office-boq-grid-v2 .office-ag-hierarchy-v2 .office-ag-title{
  flex:1 1 auto;
  min-width:0;
  max-width:100%;
  overflow:hidden!important;
  text-overflow:ellipsis;
  white-space:nowrap;
}
.office-boq-grid-v2 .office-ag-text-link{
  display:block!important;
  width:100%!important;
  max-width:100%!important;
  min-width:0!important;
  overflow:hidden!important;
  text-overflow:ellipsis!important;
  white-space:nowrap!important;
}
.office-boq-grid-v2 .office-ag-quick-add{
  min-height:22px!important;
  height:22px!important;
  padding:0 5px!important;
  gap:3px!important;
  border-radius:6px!important;
  font-size:10px!important;
  line-height:1!important;
}
.office-boq-grid-v2 .office-ag-quick-add .office-svg-icon{width:10px!important;height:10px!important}
.office-boq-grid-v2 .office-ag-chevron .office-svg-icon{
  width:11px!important;
  height:11px!important;
  transform:rotate(0deg)!important;
  transform-origin:center!important;
  transition:transform .14s ease!important;
}
.office-boq-grid-v2 .office-ag-chevron.is-collapsed .office-svg-icon{
  transform:rotate(-90deg)!important;
}
.office-boq-grid-v2 .office-ag-action-cell{
  overflow:visible!important;
  display:flex!important;
  align-items:center!important;
  justify-content:center!important;
  padding:0 4px!important;
}
.office-boq-grid-v2 .office-ag-action-cell .office-ag-more-button{
  opacity:0!important;
  pointer-events:none;
  width:26px!important;height:26px!important;min-width:26px!important;min-height:26px!important;
  transform:scale(.94);
}
.office-boq-grid-v2 .ag-row:hover .office-ag-action-cell .office-ag-more-button,
.office-boq-grid-v2 .ag-row.ag-row-hover .office-ag-action-cell .office-ag-more-button,
.office-boq-grid-v2 .ag-row-selected .office-ag-action-cell .office-ag-more-button,
.office-boq-grid-v2 .office-ag-action-cell .office-ag-more-button:focus-visible{
  opacity:1!important;
  pointer-events:auto;
  transform:scale(1);
}
.office-boq-grid-v2 .office-ag-more-button .office-svg-icon{width:11px!important;height:11px!important}
.office-boq-row-menu{
  width:238px!important;
  max-height:none!important;
  overflow:visible!important;
  padding:6px!important;
  border-radius:9px!important;
}
.office-boq-row-menu .office-menu-row{
  min-height:30px!important;
  padding:4px 7px!important;
  gap:8px!important;
  font-size:12px!important;
  line-height:1.2!important;
}
.office-boq-row-menu .office-menu-row .office-svg-icon{width:13px!important;height:13px!important;flex:0 0 13px}
.office-boq-row-menu .office-popover-divider{margin:5px 0!important}
.office-boq-menu-label{font-size:10px!important;margin:3px 6px!important}
.office-boq-row-menu .has-submenu .office-boq-submenu-chevron{margin-left:auto;width:10px!important;height:10px!important}
.office-boq-row-submenu{z-index:2147483601!important}
.office-boq-menu-colors{padding:4px 5px!important;gap:6px!important}

/* r024 intermediate-13 — LV focus/menu/action-column cleanup */
/* Normal navigation should read as one calm selected row, not as AG Grid focus/range rectangles. */
.office-boq-grid-v2 .ag-cell-focus:not(.ag-cell-inline-editing),
.office-boq-grid-v2 .ag-cell-range-selected:not(.ag-cell-inline-editing),
.office-boq-grid-v2 .ag-cell-range-top:not(.ag-cell-inline-editing),
.office-boq-grid-v2 .ag-cell-range-right:not(.ag-cell-inline-editing),
.office-boq-grid-v2 .ag-cell-range-bottom:not(.ag-cell-inline-editing),
.office-boq-grid-v2 .ag-cell-range-left:not(.ag-cell-inline-editing){
  outline:none!important;
  box-shadow:none!important;
  border-top-color:transparent!important;
  border-right-color:transparent!important;
  border-bottom-color:transparent!important;
  border-left-color:transparent!important;
}
.office-boq-grid-v2 .ag-cell-inline-editing{
  outline:none!important;
  box-shadow:inset 0 0 0 2px var(--office-primary)!important;
}
.office-boq-grid-v2 .ag-range-selection-border,
.office-boq-grid-v2 .ag-selection-handle,
.office-boq-grid-v2 .ag-fill-handle{
  display:none!important;
}

/* The AG Grid column definition owns the pinned action-column width.
   Do not override AG Grid's pinned-container geometry with CSS: that caused
   the action column to be clipped or disappear at the right edge. */
.office-boq-grid-v2 .ag-pinned-right-header,
.office-boq-grid-v2 .ag-pinned-right-cols-viewport,
.office-boq-grid-v2 .ag-pinned-right-cols-container{
  z-index:8!important;
  background:var(--office-surface)!important;
  box-shadow:-1px 0 0 var(--office-border);
}
.office-boq-grid-v2 .office-ag-action-cell{
  overflow:visible!important;
  display:flex!important;
  align-items:center!important;
  justify-content:center!important;
  padding:0 5px!important;
}

/* Three-column submenu row: icon | label | chevron. Prevent the chevron from wrapping below. */
.office-boq-row-menu .office-menu-row.has-submenu{
  display:grid!important;
  grid-template-columns:13px minmax(0,1fr) 10px!important;
  align-items:center!important;
  column-gap:8px!important;
  white-space:nowrap!important;
}
.office-boq-row-menu .office-menu-row.has-submenu > span:not(.office-svg-icon){
  min-width:0!important;
  overflow:hidden!important;
  text-overflow:ellipsis!important;
  white-space:nowrap!important;
}
.office-boq-row-menu .office-menu-row.has-submenu .office-boq-submenu-chevron{
  grid-column:3!important;
  width:10px!important;
  height:10px!important;
  min-width:10px!important;
  min-height:10px!important;
  margin:0!important;
  justify-self:end!important;
  align-self:center!important;
}


/* r024 intermediate-14 — LV sidebar/menu/columns + Quick Capture compact actions */

/* Edit mode: only the editor input is outlined, never the entire AG Grid cell. */
.office-boq-grid-v2 .ag-cell-inline-editing{
  outline:none!important;
  box-shadow:none!important;
  border-color:transparent!important;
  background:transparent!important;
  padding:0!important;
}
.office-boq-grid-v2 .ag-cell-inline-editing .ag-cell-edit-wrapper,
.office-boq-grid-v2 .ag-cell-inline-editing .ag-input-wrapper,
.office-boq-grid-v2 .ag-cell-inline-editing .ag-input-field{
  width:100%!important;
  height:100%!important;
  min-width:0!important;
  border:0!important;
  box-shadow:none!important;
  background:transparent!important;
}
.office-boq-grid-v2 .ag-cell-inline-editing input,
.office-boq-grid-v2 .ag-cell-inline-editing select,
.office-boq-grid-v2 .ag-cell-inline-editing .ag-input-field-input{
  width:calc(100% - 8px)!important;
  height:30px!important;
  min-height:30px!important;
  margin:4px!important;
  padding:0 8px!important;
  box-sizing:border-box!important;
  border:1px solid var(--office-primary)!important;
  border-radius:6px!important;
  outline:none!important;
  box-shadow:0 0 0 1px color-mix(in srgb,var(--office-primary) 18%,transparent)!important;
  background:var(--office-surface)!important;
}

/* AG Grid owns pinned widths; keep the action viewport inside the grid and let
   only the button fade, never the pinned column itself. */
.office-boq-grid-v2 .ag-root-wrapper,
.office-boq-grid-v2 .ag-root-wrapper-body,
.office-boq-grid-v2 .ag-body{
  width:100%!important;
  max-width:100%!important;
  min-width:0!important;
}
.office-boq-grid-v2 .ag-pinned-right-cols-viewport{
  overflow:hidden!important;
}
.office-boq-grid-v2 .ag-pinned-right-cols-container{
  overflow:visible!important;
}
.office-boq-grid-v2 .office-ag-action-cell .office-ag-more-button{
  opacity:.18!important;
  pointer-events:auto!important;
}
.office-boq-grid-v2 .ag-row:hover .office-ag-action-cell .office-ag-more-button,
.office-boq-grid-v2 .ag-row.ag-row-hover .office-ag-action-cell .office-ag-more-button,
.office-boq-grid-v2 .ag-row-selected .office-ag-action-cell .office-ag-more-button,
.office-boq-grid-v2 .office-ag-action-cell .office-ag-more-button:focus-visible{
  opacity:1!important;
}

/* Column settings directly in the table header, Phase0-like but in Office UI. */
.office-ag-header-inner{
  width:100%;
  min-width:0;
  height:100%;
  display:flex;
  align-items:center;
  gap:4px;
}
.office-ag-header-label{
  flex:1 1 auto;
  min-width:0;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
}
.office-ag-header-menu-button{
  flex:0 0 22px;
  width:22px;
  height:22px;
  min-width:22px;
  min-height:22px;
  padding:0;
  border:0;
  border-radius:5px;
  background:transparent;
  display:grid;
  place-items:center;
  opacity:.38;
  color:var(--office-text-muted);
  cursor:pointer;
}
.office-ag-header-menu-button .office-svg-icon{width:10px;height:10px}
.office-boq-grid-v2 .ag-header-cell:hover .office-ag-header-menu-button,
.office-ag-header-menu-button:focus-visible{opacity:1;background:var(--office-surface-soft)}
.office-boq-column-menu{width:270px!important;max-height:none!important;overflow:visible!important}
.office-boq-column-toggle .office-boq-column-check{
  width:13px;
  min-width:13px;
  text-align:center;
  font-size:12px;
  font-weight:700;
  color:var(--office-primary);
}
.office-boq-column-toggle:disabled{opacity:.62;cursor:default}

/* Menus: enough width for long German labels without turning into a huge scroll panel. */
.office-boq-row-menu:not(.office-boq-column-menu){width:262px!important}
.office-boq-row-menu .office-menu-row{
  min-width:0!important;
  overflow:hidden!important;
}
.office-boq-row-menu .office-menu-row > span:not(.office-svg-icon){
  min-width:0!important;
  overflow:hidden!important;
  text-overflow:ellipsis!important;
  white-space:nowrap!important;
}
.office-boq-menu-colors{
  padding-left:26px!important;
  padding-right:6px!important;
}

/* Quantity/formula editor: inputs have a real cell gutter instead of touching
   the formula-column grid lines. */
.office-boq-quantity-row:not(.is-header) > input{
  width:calc(100% - 16px)!important;
  height:36px!important;
  min-height:36px!important;
  margin:6px 8px!important;
  padding:6px 9px!important;
  box-sizing:border-box!important;
}

/* Quick Capture desktop action bar: compact icons with immediate hover labels. */
.office-qc-actions-desktop-r024{
  display:flex;
  align-items:center;
  gap:5px;
  overflow:visible;
  white-space:nowrap;
}
.office-qc-action-icon-r024{
  position:relative;
  width:30px;
  height:30px;
  min-width:30px;
  min-height:30px;
  padding:0;
  border:1px solid var(--office-border);
  border-radius:7px;
  background:var(--office-surface);
  color:var(--office-text-muted);
  display:grid;
  place-items:center;
  list-style:none;
  cursor:pointer;
}
.office-qc-action-icon-r024::-webkit-details-marker{display:none}
.office-qc-action-icon-r024 .office-svg-icon{width:14px;height:14px}
.office-qc-action-icon-r024:hover:not(:disabled),
.office-qc-action-icon-r024:focus-visible{background:var(--office-surface-soft);color:var(--office-text);border-color:var(--office-border-strong)}
.office-qc-action-icon-r024:disabled{opacity:.38;cursor:not-allowed}
.office-qc-action-icon-r024[data-label]::after{
  content:attr(data-label);
  position:absolute;
  left:50%;
  bottom:calc(100% + 6px);
  transform:translateX(-50%);
  z-index:2147483605;
  padding:4px 7px;
  border-radius:6px;
  background:#24282d;
  color:#fff;
  font-size:11px;
  line-height:1.2;
  font-weight:500;
  white-space:nowrap;
  opacity:0;
  pointer-events:none;
}
.office-qc-action-icon-r024[data-label]:hover::after,
.office-qc-action-icon-r024[data-label]:focus-visible::after{opacity:1}
.office-qc-more-r024{position:relative}
.office-qc-more-r024 > summary{list-style:none}
.office-qc-more-r024 > summary::-webkit-details-marker{display:none}
.office-qc-more-menu-r024{
  position:absolute;
  right:0;
  top:calc(100% + 5px);
  z-index:2147483600;
  width:150px;
  padding:5px;
  border:1px solid var(--office-border);
  border-radius:8px;
  background:var(--office-surface);
  box-shadow:var(--office-shadow-popover);
}
.office-qc-more-menu-r024 button,
.office-qc-mobile-apply-menu-r024 button{
  width:100%;
  min-height:32px;
  padding:5px 8px;
  border:0;
  border-radius:6px;
  background:transparent;
  text-align:left;
  font:inherit;
  color:var(--office-text);
  cursor:pointer;
}
.office-qc-more-menu-r024 button:hover,
.office-qc-mobile-apply-menu-r024 button:hover{background:var(--office-surface-soft)}
.office-qc-more-menu-r024 button.is-danger,
.office-qc-mobile-apply-menu-r024 button.is-danger{color:var(--office-danger,#c62828)}
.office-qc-mobile-apply-r024{display:none;position:relative}
.office-qc-mobile-apply-r024 > summary{list-style:none}
.office-qc-mobile-apply-r024 > summary::-webkit-details-marker{display:none}
.office-qc-mobile-apply-menu-r024{
  margin-top:5px;
  padding:5px;
  border:1px solid var(--office-border);
  border-radius:8px;
  background:var(--office-surface);
}
.office-qc-mobile-apply-menu-r024 hr{border:0;border-top:1px solid var(--office-border);margin:4px 0}

@media(max-width:900px){
  .office-qc-actions-desktop-r024{display:none}
  .office-qc-mobile-apply-r024{display:block}
  .office-qc-mobile-apply-r024 > summary{width:max-content}
}
.office-quick-capture-details-r024[open],
.office-quick-capture-details-r024[open] .office-quick-capture-details-body-r024,
.office-quick-capture-details-r024[open] .office-table-frame,
.office-quick-capture-details-r024[open] .office-table-viewport{
  overflow:visible!important;
}
@media(max-width:900px){
  .office-quick-capture-details-r024[open] .office-table-frame,
  .office-quick-capture-details-r024[open] .office-table-viewport{overflow:visible!important}
}

/* r024 intermediate-15 — final LV right-edge / print / column-menu polish */
/* Firefox and overlay scrollbars can sit on top of AG Grid's pinned-right viewport.
   Reserve a stable scrollbar gutter and keep the fixed action column one gutter left. */
.office-boq-grid-v2 .ag-body-viewport{
  scrollbar-gutter:stable!important;
}
.office-boq-grid-v2 .ag-pinned-right-header,
.office-boq-grid-v2 .ag-pinned-right-cols-viewport{
  right:12px!important;
}
.office-boq-grid-v2 .ag-pinned-right-cols-container{
  width:46px!important;
  min-width:46px!important;
  max-width:46px!important;
}
.office-boq-grid-v2 .office-ag-action-cell{
  width:46px!important;
  min-width:46px!important;
  max-width:46px!important;
  padding:0!important;
  overflow:hidden!important;
}
.office-boq-grid-v2 .office-ag-action-cell .office-ag-more-button{
  margin:0 auto!important;
}
.office-boq-column-check{
  display:inline-grid!important;
  place-items:center!important;
  width:13px!important;
  min-width:13px!important;
  height:13px!important;
}
.office-boq-column-check .office-svg-icon{width:11px!important;height:11px!important}

/* ========================================================================== */
/* r024 intermediate-16 — page overflow, LV fill/action, toolbar consistency  */
/* ========================================================================== */

/* Office pages must never create a document-level horizontal scrollbar.
   Components that need horizontal scrolling (e.g. AG Grid) own it locally. */
html,
body {
    margin: 0;
    width: 100%;
    max-width: 100%;
    overflow-x: hidden;
}
@supports (overflow: clip) {
    html,
    body { overflow-x: clip; }
}
.office-app-shell,
.office-workspace,
.office-page {
    box-sizing: border-box;
    min-width: 0;
    max-width: 100%;
}
.office-app-shell,
.office-workspace {
    width: 100%;
    overflow-x: clip;
}

/* One visual button master inside the LV toolbar. */
.office-boq-toolbar-v2 .office-button,
.office-boq-toolbar-v2 .office-icon-button {
    box-sizing: border-box;
    border: 1px solid var(--office-border) !important;
    background: var(--office-surface) !important;
    box-shadow: none !important;
    color: var(--office-text) !important;
}
.office-boq-toolbar-v2 .office-button:not(:disabled):hover,
.office-boq-toolbar-v2 .office-icon-button:not(:disabled):hover {
    border-color: var(--office-border-strong) !important;
    background: var(--office-surface-soft) !important;
}
.office-boq-toolbar-v2 .office-button:disabled,
.office-boq-toolbar-v2 .office-icon-button:disabled {
    opacity: .42;
}

/* If visible columns are narrower than the viewport, AG Grid should still look
   like a continuous table instead of exposing a white hole before the action column. */
.office-boq-grid-v2 .ag-center-cols-viewport,
.office-boq-grid-v2 .ag-center-cols-clipper,
.office-boq-grid-v2 .ag-center-cols-container {
    min-width: 100% !important;
    background: var(--office-surface) !important;
}
.office-boq-grid-v2 .ag-center-cols-container .ag-row {
    min-width: 100% !important;
}
.office-boq-grid-v2 .ag-body-viewport {
    background: var(--office-surface) !important;
    scrollbar-gutter: stable;
}

/* Let AG Grid own pinned-right positioning. Previous manual right offsets created
   an artificial strip between center columns and the action column. */
.office-boq-grid-v2 .ag-pinned-right-header,
.office-boq-grid-v2 .ag-pinned-right-cols-viewport {
    right: 0 !important;
    background: var(--office-surface) !important;
    border-left: 1px solid var(--office-border) !important;
}
.office-boq-grid-v2 .ag-pinned-right-cols-container {
    background: var(--office-surface) !important;
}
.office-boq-grid-v2 .office-ag-action-cell {
    background: inherit !important;
}

/* Quick Capture mobile: true cards instead of a table squeezed into one column. */
@media (max-width: 900px) {
    .office-quick-capture-details-r024 .office-table-frame,
    .office-quick-capture-details-r024 .office-table-viewport {
        background: transparent !important;
        box-shadow: none !important;
    }
    .office-quick-capture-details-r024 tbody {
        display: grid !important;
        gap: 10px;
    }
    .office-quick-capture-details-r024 tr {
        display: grid !important;
        grid-template-columns: minmax(0, 1fr) auto !important;
        gap: 7px 12px !important;
        margin: 0 !important;
        padding: 13px 14px !important;
        border: 1px solid var(--office-border) !important;
        border-radius: 12px !important;
        background: var(--office-surface) !important;
        box-shadow: 0 2px 8px rgba(15, 23, 42, .025);
    }
    .office-quick-capture-details-r024 td {
        min-width: 0 !important;
        line-height: 1.35;
    }
    .office-quick-capture-details-r024 td:nth-child(1) {
        grid-column: 1;
        grid-row: 1;
        font-size: 12px !important;
        color: var(--office-text-muted) !important;
    }
    .office-quick-capture-details-r024 td:nth-child(2) {
        grid-column: 1;
        grid-row: 2;
        font-weight: 650;
        color: var(--office-text);
    }
    .office-quick-capture-details-r024 td:nth-child(3) {
        grid-column: 2;
        grid-row: 1;
        justify-self: end;
        padding: 3px 7px !important;
        border: 1px solid var(--office-border) !important;
        border-radius: 999px !important;
        background: var(--office-surface-soft);
        color: var(--office-text-secondary);
        font-size: 11px !important;
        font-weight: 650;
    }
    .office-quick-capture-details-r024 td:nth-child(4) {
        grid-column: 1 / -1;
        grid-row: 3;
        padding-top: 4px !important;
        overflow: hidden;
        text-overflow: ellipsis;
        display: -webkit-box !important;
        -webkit-line-clamp: 3;
        -webkit-box-orient: vertical;
    }
    .office-quick-capture-details-r024 td:nth-child(5) {
        grid-column: 2;
        grid-row: 2;
        justify-self: end;
        align-self: center;
        font-size: 11px !important;
        color: var(--office-text-muted) !important;
        white-space: nowrap !important;
    }
    .office-quick-capture-details-r024 td:nth-child(6) {
        grid-column: 1 / -1;
        grid-row: 4;
        padding-top: 6px !important;
        border-top: 1px solid var(--office-border) !important;
    }
    .office-qc-thumb-r024 {
        width: 86px !important;
        height: 64px !important;
        border-radius: 9px !important;
    }
    .office-qc-mobile-apply-r024 > summary {
        width: 100% !important;
        justify-content: center;
    }
    .office-qc-mobile-apply-menu-r024 {
        width: 100%;
        box-sizing: border-box;
    }
}

/* ========================================================================== */
/* r025 correction loop — interaction, responsive settings and Quick Capture  */
/* ========================================================================== */

/* Rich text: the toolbar is deliberately small and the K icon must actually
   read as italic. Ordered lists use the requested 1) / a) notation. */
.office-rich-italic-button-r025 em{font-style:italic!important;font-weight:400!important}
.office-rich-format-button u{text-underline-offset:2px}
.office-rich-surface ol[data-office-list-style="decimal-paren"],
.office-rich-surface ol[data-office-list-style="alpha-paren"],
.office-boq-longtext-content ol[data-office-list-style="decimal-paren"],
.office-boq-longtext-content ol[data-office-list-style="alpha-paren"]{list-style:none;counter-reset:office-list;padding-left:1.7rem}
.office-rich-surface ol[data-office-list-style] > li,
.office-boq-longtext-content ol[data-office-list-style] > li{counter-increment:office-list;position:relative}
.office-rich-surface ol[data-office-list-style] > li::before,
.office-boq-longtext-content ol[data-office-list-style] > li::before{position:absolute;right:calc(100% + .42rem);font-variant-numeric:tabular-nums}
.office-rich-surface ol[data-office-list-style="decimal-paren"] > li::before,
.office-boq-longtext-content ol[data-office-list-style="decimal-paren"] > li::before{content:counter(office-list) ")"}
.office-rich-surface ol[data-office-list-style="alpha-paren"] > li::before,
.office-boq-longtext-content ol[data-office-list-style="alpha-paren"] > li::before{content:counter(office-list,lower-alpha) ")"}

/* LV: selection has one visual language. Colour marking is only the left strip;
   the old extra dot is suppressed. The issue icon has a dedicated compact slot. */
.office-boq-grid-v2 .office-boq-color-dot{display:none!important}
.office-boq-grid-v2 .office-ag-warning{display:grid;place-items:center;width:22px;height:22px;margin:auto;color:var(--office-warning,#b7791f)}
.office-boq-grid-v2 .office-ag-warning .office-svg-icon{width:15px;height:15px}
.office-boq-grid-v2 .ag-row-selected{background:var(--ag-selected-row-background-color,#eaf3ff)!important}
.office-boq-grid-v2 .ag-row:not(.ag-row-selected).is-selected{background:inherit!important}
.office-boq-grid-v2 .ag-selection-checkbox{opacity:.3;transition:opacity .12s ease}
.office-boq-grid-v2 .ag-row:hover .ag-selection-checkbox,
.office-boq-grid-v2 .ag-row-selected .ag-selection-checkbox,
.office-boq-grid-v2 .ag-header-cell .ag-selection-checkbox{opacity:1}
.office-boq-grid-v2 .ag-cell-focus:not(.ag-cell-inline-editing),
.office-boq-grid-v2 .ag-cell-range-selected:not(.ag-cell-inline-editing){border-color:transparent!important;box-shadow:none!important}
.office-boq-grid-v2 .ag-cell-inline-editing{outline:0!important;box-shadow:none!important;background:transparent!important;padding:0 5px!important}
.office-boq-grid-v2 .ag-cell-inline-editing input,
.office-boq-grid-v2 .ag-cell-inline-editing .ag-input-field-input{border:1px solid var(--office-focus,#1683e7)!important;border-radius:6px!important;box-shadow:0 0 0 2px rgba(22,131,231,.12)!important;background:var(--office-surface)!important}

/* Disabled toolbar controls keep the same border; only their content fades. */
.office-boq-toolbar-v2 .office-button:disabled,
.office-boq-toolbar-v2 .office-icon-button:disabled{opacity:1!important;border-color:var(--office-border)!important;background:var(--office-surface)!important;color:var(--office-text-muted)!important}
.office-boq-toolbar-v2 .office-button:disabled > *,
.office-boq-toolbar-v2 .office-icon-button:disabled > *{opacity:.38}

/* Native fullscreen is requested on the procurement workspace so the LV local
   navigation remains visible. Everything above that navigation disappears. */
.office-procurement-workspace:fullscreen{background:var(--office-page-bg,#f7f8fa);padding:12px 18px 18px;overflow:auto}
.office-procurement-workspace:fullscreen > .office-context-bar,
.office-procurement-workspace:fullscreen > .office-mobile-project-navigation,
.office-procurement-workspace:fullscreen > .office-procurement-summary{display:none!important}
.office-procurement-workspace:fullscreen > .office-procurement-tabs{margin-top:0!important}
.office-procurement-workspace:fullscreen .office-boq-grid-v2 .office-boq-ag-grid{height:calc(100dvh - 126px)!important;max-height:none!important;min-height:420px!important}

/* Quick Capture: recording preview and truly compact mobile cards. */
.office-qc-audio-preview-r025{display:block;width:min(320px,100%);height:34px}
.office-qc-voice-button-r025.is-recording{border-color:var(--office-danger,#c62828)!important;color:var(--office-danger,#c62828)!important}
@media(max-width:900px){
  .office-quick-capture-page{padding-inline:14px!important}
  .office-quick-capture-card{gap:14px!important;padding:16px!important}
  .office-quick-capture-text{min-height:118px!important;font-size:16px!important}
  .office-quick-capture-actions-r023{gap:8px!important}
  .office-quick-capture-actions-r023 .office-button{min-height:44px!important;padding:8px 10px!important;font-size:14px!important}
  .office-quick-capture-details-r024{width:100%!important;max-width:100%!important;box-sizing:border-box!important}
  .office-quick-capture-details-r024 > summary{font-size:15px!important;padding:0 14px!important}
  .office-quick-capture-details-body-r024{padding:0 10px 12px!important;max-width:100%!important;box-sizing:border-box!important}
  .office-quick-capture-details-r024 tbody{display:grid!important;gap:8px!important;width:100%!important}
  .office-quick-capture-details-r024 tr{width:100%!important;max-width:100%!important;box-sizing:border-box!important;padding:10px 11px!important;gap:5px 9px!important;border-radius:10px!important}
  .office-quick-capture-details-r024 td{font-size:13px!important;line-height:1.28!important;overflow-wrap:anywhere!important}
  .office-quick-capture-details-r024 td:nth-child(1),
  .office-quick-capture-details-r024 td:nth-child(3),
  .office-quick-capture-details-r024 td:nth-child(5){font-size:11px!important}
  .office-quick-capture-details-r024 td:nth-child(4){font-size:14px!important;-webkit-line-clamp:2!important}
  .office-qc-thumb-r024{width:64px!important;height:48px!important}
  .office-qc-mobile-apply-r024 > summary{min-height:38px!important;font-size:13px!important;width:100%!important}
  .office-qc-mobile-apply-menu-r024{font-size:13px!important;padding:4px!important;max-width:100%!important}
  .office-qc-mobile-apply-menu-r024 button{min-height:34px!important;padding:5px 8px!important;font-size:13px!important}
}

/* System information: actual Office cards instead of an unstyled definition list. */
.office-system-info-grid-r025{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}
.office-system-info-card-r025{min-width:0;padding:12px 14px;border:1px solid var(--office-border);border-radius:10px;background:var(--office-surface-soft);display:grid;gap:4px}
.office-system-info-card-r025>span{font-size:12px;color:var(--office-text-muted)}
.office-system-info-card-r025>strong{font-size:14px;font-weight:650;overflow-wrap:anywhere}
.office-system-info-card-r025>strong.is-success{color:var(--office-success,#27823b)}
.office-system-info-card-r025>strong.is-warning{color:var(--office-warning,#a76a00)}
.office-system-info-card-r025>strong.is-danger{color:var(--office-danger,#c62828)}
@media(max-width:900px){.office-system-info-grid-r025{grid-template-columns:1fr 1fr}.office-system-info-card-r025{padding:10px 11px}.office-system-info-card-r025>strong{font-size:13px}}
@media(max-width:520px){.office-system-info-grid-r025{grid-template-columns:1fr}}

/* Project-inspired settings rows used by backup and construction settings. */
.office-settings-line-r025{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:12px 0;border-bottom:1px solid var(--office-border)}
.office-settings-line-r025>div{display:grid;gap:3px;min-width:0}.office-settings-line-r025>div>span{color:var(--office-text-muted);font-size:13px}
.office-switch-r025{display:inline-flex;align-items:center;flex:0 0 auto}.office-switch-r025 input{width:18px;height:18px;margin:0}
.office-backup-days-r025{display:flex;flex-wrap:wrap;gap:6px}.office-backup-day-r025{display:inline-flex;align-items:center;gap:5px;padding:6px 8px;border:1px solid var(--office-border);border-radius:8px;background:var(--office-surface)}
.office-backup-status-grid-r025{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
@media(max-width:700px){.office-settings-line-r025{align-items:flex-start}.office-backup-status-grid-r025{grid-template-columns:1fr}}

/* Honorar > Auftrag: calm detail layout on desktop and a compact mobile card. */
.office-project-contract-panel-r019 .office-contract-selector-r020{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:14px}
.office-project-contract-panel-r019 .office-contract-selector-item-r020{min-width:0;max-width:100%;padding:8px 10px}
.office-project-contract-panel-r019 .office-contract-summary-r019{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}
.office-project-contract-panel-r019 .office-contract-summary-r019>div{min-width:0}
@media(max-width:900px){
  .office-project-contract-panel-r019{padding:16px!important}
  .office-project-contract-panel-r019 .office-contract-heading-r023{display:grid!important;grid-template-columns:1fr!important;gap:10px!important}
  .office-project-contract-panel-r019 .office-contract-heading-r023 .office-button{justify-self:start;width:auto!important}
  .office-project-contract-panel-r019 .office-contract-selector-r020{display:grid!important;grid-template-columns:1fr!important;width:100%!important}
  .office-project-contract-panel-r019 .office-contract-selector-item-r020{width:100%!important;display:grid!important;grid-template-columns:1fr auto!important;gap:8px!important;text-align:left!important}
  .office-project-contract-panel-r019 .office-contract-selector-item-r020 small{font-size:12px!important}
  .office-project-contract-panel-r019 .office-contract-summary-r019{grid-template-columns:1fr!important;gap:0!important;border:1px solid var(--office-border);border-radius:10px;overflow:hidden}
  .office-project-contract-panel-r019 .office-contract-summary-r019>div{padding:10px 12px!important;border-bottom:1px solid var(--office-border)!important}
  .office-project-contract-panel-r019 .office-contract-summary-r019>div:last-child{border-bottom:0!important}
  .office-project-contract-panel-r019 .office-contract-subsection-r019{padding:14px!important}
}

/* Arbeitszeit nachtragen: separate class added to avoid changing all Office dialogs. */
@media(max-width:700px){
  .office-worktime-manual-dialog-r025{width:calc(100vw - 20px)!important;max-width:none!important;max-height:calc(100dvh - 28px)!important;border-radius:12px!important}
  .office-worktime-manual-dialog-r025 .office-dialog-header{padding:14px 16px!important}
  .office-worktime-manual-dialog-r025 .office-dialog-body{padding:14px 16px!important}
  .office-worktime-manual-dialog-r025 .office-form-grid-three{grid-template-columns:1fr 1fr!important;gap:10px!important}
  .office-worktime-manual-dialog-r025 .office-form-grid-three .office-field:first-child,
  .office-worktime-manual-dialog-r025 .office-form-grid-three .office-field:nth-child(n+4){grid-column:1/-1}
  .office-worktime-manual-dialog-r025 input,
  .office-worktime-manual-dialog-r025 select{font-size:16px!important;min-height:44px!important}
  .office-worktime-manual-dialog-r025 .office-dialog-footer{position:sticky;bottom:0;padding:10px 12px!important;gap:8px!important;background:var(--office-surface)!important}
  .office-worktime-manual-dialog-r025 .office-dialog-footer .office-button{min-width:0!important;padding:8px 10px!important}
}


/* r025 Block A – targeted dashboard/contract/unit corrections */
.office-project-card .office-project-card-menu-r025{display:inline-flex;align-items:center;flex:0 0 auto}
.office-project-card .office-project-card-menu-r025>.office-context-menu-wrap{display:inline-flex;align-items:center;margin:0}
.office-project-card .office-project-card-menu-r025 .office-row-menu-trigger{
  width:34px;min-width:34px;height:34px;min-height:34px;padding:0;border:1px solid #d3d7db;border-radius:8px;
  display:inline-grid;place-items:center;background:#fff;color:#555b61;
}
.office-project-card .office-project-card-menu-r025 .office-row-menu-trigger:hover,
.office-project-card .office-project-card-menu-r025 .office-row-menu-trigger[aria-expanded="true"]{border-color:#bcc2c8;background:#f7f8f9}
.office-project-card .office-project-card-menu-r025 .office-row-menu-trigger .office-svg-icon{width:14px;height:14px;opacity:.76}
@media(max-width:760px){.office-project-card .office-project-card-menu-r025 .office-row-menu-trigger{width:32px;min-width:32px;height:32px;min-height:32px}}

.office-project-contract-panel-r019 .office-contract-heading-copy-r025{text-align:left;min-width:0}
.office-project-contract-panel-r019 .office-contract-heading-copy-r025 h2,
.office-project-contract-panel-r019 .office-contract-heading-copy-r025 p{text-align:left}
.office-project-contract-panel-r019 .office-contract-combobox-r025{position:relative;width:100%;min-width:0}
.office-project-contract-panel-r019 .office-contract-combobox-r025>.office-select-button{
  width:100%;height:40px;padding:0 11px;border:1px solid var(--office-border-strong);border-radius:8px;background:var(--office-surface);
  color:var(--office-text);font:400 14px/1.2 var(--office-font-family,Arial,sans-serif);display:flex;align-items:center;justify-content:space-between;gap:10px;text-align:left;
}
.office-project-contract-panel-r019 .office-contract-combobox-r025>.office-select-button:hover{border-color:var(--office-primary)}
.office-project-contract-panel-r019 .office-contract-combobox-r025>.office-select-button:focus-visible{outline:2px solid color-mix(in srgb,var(--office-primary) 28%,transparent);outline-offset:1px}
.office-project-contract-panel-r019 .office-contract-combobox-r025>.office-select-button:disabled{background:var(--office-surface-soft);color:var(--office-text-muted);cursor:not-allowed}
.office-project-contract-panel-r019 .office-contract-combobox-r025>.office-select-button>span:first-child{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.office-project-contract-panel-r019 .office-contract-combobox-r025>.office-combobox-popover-r018{
  position:absolute;z-index:1800;top:calc(100% + 5px);left:0;width:100%;min-width:min(320px,calc(100vw - 40px));padding:8px;border:1px solid var(--office-border);
  border-radius:10px;background:var(--office-surface);box-shadow:0 12px 30px rgba(31,35,40,.14)
}
.office-project-contract-panel-r019 .office-combobox-options-r018{display:grid;gap:3px;max-height:260px;overflow:auto;margin-top:7px}
.office-project-contract-panel-r019 .office-combobox-option-r018{width:100%;padding:8px 10px;border:0;border-radius:7px;background:transparent;color:var(--office-text);display:grid;gap:2px;text-align:left;font:inherit;cursor:pointer}
.office-project-contract-panel-r019 .office-combobox-option-r018:hover{background:var(--office-surface-hover)}
.office-project-contract-panel-r019 .office-combobox-option-r018 small{color:var(--office-text-muted);font-size:12px}
.office-project-contract-panel-r019 .office-field textarea.office-textarea{
  width:100%;min-height:92px;padding:10px 11px;border:1px solid var(--office-border-strong);border-radius:8px;background:var(--office-surface);color:var(--office-text);
  font:400 14px/1.45 var(--office-font-family,Arial,sans-serif);resize:vertical
}
.office-project-contract-panel-r019 .office-field textarea.office-textarea:focus{border-color:var(--office-primary);outline:2px solid color-mix(in srgb,var(--office-primary) 18%,transparent);outline-offset:0}
.office-project-contract-panel-r019 .office-contract-subsection-r019{padding:14px 16px}
.office-project-contract-panel-r019 .office-contract-subsection-r019 .office-settings-section-heading{margin:0 0 10px;align-items:flex-start}
.office-project-contract-panel-r019 .office-contract-hourly-r022 .office-settings-section-heading{display:flex;justify-content:space-between;gap:16px}
.office-project-contract-panel-r019 .office-contract-hourly-r022 .office-settings-section-heading>.office-button{margin-top:10px;align-self:flex-end;flex:0 0 auto}
@media(max-width:700px){
  .office-project-contract-panel-r019 .office-contract-hourly-r022 .office-settings-section-heading{display:grid;gap:10px}
  .office-project-contract-panel-r019 .office-contract-hourly-r022 .office-settings-section-heading>.office-button{margin-top:2px;justify-self:start}
  .office-project-contract-panel-r019 .office-contract-combobox-r025>.office-combobox-popover-r018{min-width:100%}
}

.office-boq-ag-workspace .office-ag-unit-editor{
  width:100%;height:100%;min-height:30px;padding:0 7px;border:1px solid var(--office-primary);border-radius:4px;background:var(--office-surface);color:var(--office-text);font:inherit;
}

/* Feiertage haben im Urlaubsplan auch dann Vorrang, wenn sie auf ein Wochenende fallen. */
.office-leave-day.is-weekend.is-holiday{color:var(--office-danger,#b32e2e);background:color-mix(in srgb,var(--office-danger,#b32e2e) 5%,transparent)}
.office-leave-day.is-weekend.is-company{color:var(--office-text);background:var(--office-surface-soft)}

/* r025 Block B – Auftrag heading alignment and compact subsection headings */
.office-project-contract-panel-r019 .office-contract-heading-r023>.office-contract-heading-copy-r025{margin-left:0!important;margin-right:auto;justify-self:start;text-align:left}
.office-project-contract-panel-r019 .office-contract-subsection-r019 .office-settings-section-heading h3{margin:0 0 4px;font-size:18px;line-height:1.25}
.office-project-contract-panel-r019 .office-contract-subsection-r019 .office-settings-section-heading p{margin:0}
.office-project-contract-panel-r019 .office-contract-subsection-r019{padding-top:12px}

/* r025 Block B – AVA Import/Export dialogs */
.office-ava-transfer-dialog-r025{width:min(860px,calc(100vw - 32px));max-height:min(88vh,900px)}
.office-ava-transfer-tabs-r025{display:flex;gap:8px;flex-wrap:wrap;margin:0 0 16px}
.office-ava-transfer-section-r025{display:grid;gap:14px}
.office-ava-file-drop-r025{min-height:112px;display:flex;align-items:center;justify-content:center;gap:12px;border:1px dashed var(--office-border);border-radius:12px;background:var(--office-surface-soft);cursor:pointer;text-align:left}
.office-ava-file-drop-r025>span:last-of-type{display:grid;gap:3px}.office-ava-file-drop-r025 small{color:var(--office-text-muted);font-weight:400}
.office-ava-import-preview-r025{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}
.office-ava-import-preview-r025>div{display:grid;gap:3px;padding:10px 12px;border:1px solid var(--office-border);border-radius:10px;background:var(--office-surface)}
.office-ava-import-preview-r025 span{font-size:12px;color:var(--office-text-muted)}
.office-gaeb-check-list-r025{display:grid;gap:6px}.office-gaeb-check-r025{display:flex;align-items:flex-start;gap:8px;padding:9px 11px;border:1px solid var(--office-border);border-radius:9px;background:var(--office-surface-soft)}
.office-gaeb-check-r025.is-danger{border-color:var(--office-danger-border,#e6b8b8)}.office-gaeb-check-r025.is-success{border-color:var(--office-success-border,#b9d9bf)}
@media(max-width:720px){.office-ava-transfer-dialog-r025{width:calc(100vw - 20px)}.office-ava-import-preview-r025{grid-template-columns:1fr 1fr}.office-ava-transfer-tabs-r025>.office-button{flex:1 1 calc(50% - 8px)}}

/* r025 Block C+D – AVA Ausschreibung, Preisspiegel, Vergabe */
.office-ava-primary-action-row-r025{display:flex;justify-content:flex-end;gap:8px;margin:-4px 0 12px}
.office-ava-tender-dialog-r025{width:min(1040px,calc(100vw - 32px));max-height:calc(100vh - 40px)}
.office-ava-tender-body-r025{display:grid;gap:14px}
.office-ava-tender-status-r025{display:grid;grid-template-columns:auto 1fr auto 1fr auto 1fr;gap:6px 12px;align-items:center;padding:11px 13px;border:1px solid var(--office-border);border-radius:10px;background:var(--office-surface-soft)}
.office-ava-tender-status-r025 span{font-size:12px;color:var(--office-text-muted)}
.office-ava-tender-step-r025{display:grid;gap:12px;padding:16px;border:1px solid var(--office-border);border-radius:11px;background:var(--office-surface)}
.office-ava-tender-step-r025 h3,.office-award-block-group-r025 h3{margin:0;font-size:15px}
.office-ava-tender-direct-r034{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:14px 16px;border:1px solid color-mix(in srgb,var(--office-primary,#1683e7) 30%,var(--office-border));border-radius:11px;background:color-mix(in srgb,var(--office-primary,#1683e7) 5%,var(--office-surface,#fff))}
.office-ava-tender-direct-copy-r034{display:flex;align-items:flex-start;gap:11px;min-width:0}.office-ava-tender-direct-copy-r034>.office-svg-icon{width:20px;height:20px;flex:0 0 20px;margin-top:1px;color:var(--office-primary,#1683e7)}.office-ava-tender-direct-copy-r034>div{display:grid;gap:4px}.office-ava-tender-direct-copy-r034 h3{margin:0;font-size:15px}.office-ava-tender-direct-copy-r034 p{margin:0;color:var(--office-text-muted);font-size:12px;line-height:1.45;max-width:660px}
.office-ava-tender-direct-actions-r034{justify-content:flex-end;flex:0 0 auto}.office-ava-tender-direct-actions-r034 .office-button{white-space:nowrap}
.office-ava-tender-path-separator-r034{display:flex;align-items:center;gap:10px;color:var(--office-text-muted);font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.04em}.office-ava-tender-path-separator-r034:before,.office-ava-tender-path-separator-r034:after{content:"";height:1px;background:var(--office-border);flex:1}.office-ava-tender-path-separator-r034 span{white-space:nowrap}
.office-ava-optional-label-r034{display:inline-block;margin-left:5px;color:var(--office-text-muted);font-size:11px;font-weight:500}
.office-inline-actions{display:flex;gap:7px;align-items:center;flex-wrap:wrap}
.office-ava-recipient-list-r025,.office-ava-document-list-r025{display:grid;gap:6px}
.office-ava-recipient-row-r025,.office-ava-document-row-r025{display:flex;align-items:center;gap:8px;padding:9px 10px;border:1px solid var(--office-border);border-radius:9px;background:var(--office-surface-soft)}
.office-ava-recipient-row-r025>div:first-child,.office-ava-document-row-r025>div:first-child{display:grid;gap:2px;min-width:0;flex:1}
.office-ava-recipient-row-r025 span,.office-ava-document-row-r025 span{font-size:12px;color:var(--office-text-muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.office-ava-mail-preview-r025{position:fixed;left:50%;top:50%;transform:translate(-50%,-50%);width:min(820px,calc(100vw - 32px));max-height:calc(100vh - 48px);overflow:auto}
.office-ava-mail-body-r025{padding:14px;border:1px solid var(--office-border);border-radius:9px;background:var(--office-surface-soft);line-height:1.55}
.office-boq-comparison-table td.is-outlier-low,.office-boq-comparison-table td.is-outlier-high{font-weight:600}
.office-price-outlier-mark-r025{display:inline-grid;place-items:center;width:16px;height:16px;margin-left:4px;border:1px solid currentColor;border-radius:50%;font-size:10px;line-height:1}
.office-boq-bid-price-row.is-outlier-low,.office-boq-bid-price-row.is-outlier-high{border-left:3px solid var(--office-warning,#b26a00)}
.office-price-outlier-hint-r025{display:block;margin-top:3px;font-size:11px;color:var(--office-text-muted)}
.office-award-dialog-r025{width:min(900px,calc(100vw - 32px))}
.office-award-block-group-r025{display:grid;gap:7px;margin-top:10px}
.office-award-block-group-r025 .office-check-field{align-items:flex-start}
.office-award-block-group-r025 .office-check-field>span{display:grid;gap:2px}
.office-award-block-group-r025 small{font-size:11px;color:var(--office-text-muted);font-weight:400}
.office-award-settings-r025{display:grid;gap:8px}
.office-award-setting-row-r025{display:grid;grid-template-columns:130px minmax(150px,.65fr) minmax(260px,1.5fr) auto auto;gap:8px;align-items:start;padding:8px;border:1px solid var(--office-border);border-radius:9px}
.office-award-setting-row-r025 textarea{min-height:74px}
.office-bidder-trades-r025{display:flex;gap:8px 16px;flex-wrap:wrap;padding:9px 10px;border:1px solid var(--office-border);border-radius:9px;background:var(--office-surface-soft)}
@media(max-width:760px){.office-ava-primary-action-row-r025 .office-button{width:100%}.office-ava-tender-status-r025{grid-template-columns:auto 1fr}.office-ava-recipient-row-r025,.office-ava-document-row-r025{align-items:stretch;flex-wrap:wrap}.office-award-setting-row-r025{grid-template-columns:1fr}.office-ava-tender-dialog-r025{width:calc(100vw - 16px)}.office-ava-tender-direct-r034{align-items:stretch;flex-direction:column}.office-ava-tender-direct-actions-r034{justify-content:stretch}.office-ava-tender-direct-actions-r034 .office-button{flex:1 1 100%}}
.office-ava-bid-field-values-r025{display:grid;gap:7px}.office-ava-bid-field-value-r025{display:grid;grid-template-columns:1fr auto;gap:8px;align-items:end}
.office-kpi-icon-button-r025{display:inline-grid;place-items:center;width:22px;height:22px;margin-left:4px;padding:0;border:1px solid var(--office-border);border-radius:6px;background:var(--office-surface);color:var(--office-text-muted);font-size:12px;cursor:pointer}.office-kpi-icon-button-r025:hover{color:var(--office-text);border-color:var(--office-border-strong)}

/* r025 E+F correction pack: LV selection/anchor, key navigation and immediate toolbar hints. */
.office-boq-grid-v2 .ag-row-selected{background:transparent!important}
.office-boq-grid-v2 .ag-row.is-active-anchor{background:color-mix(in srgb,var(--office-primary,#1683e7) 8%,var(--office-surface,#fff))!important;box-shadow:inset 3px 0 0 var(--office-primary,#1683e7)}
.office-boq-grid-v2 .ag-row.is-active-anchor .ag-cell{background:transparent!important}
.office-boq-grid-v2 .ag-selection-checkbox,.office-boq-grid-v2 .ag-checkbox-input-wrapper{margin-inline:auto!important}
.office-boq-grid-v2 .office-ag-selection-cell{display:flex!important;align-items:center!important;justify-content:center!important;padding-inline:0!important}
.office-boq-grid-v2 .office-ag-selection-header .ag-header-cell-comp-wrapper,.office-boq-grid-v2 .office-ag-selection-header .ag-header-select-all{display:flex!important;align-items:center!important;justify-content:center!important;width:100%!important}
.office-boq-grid-v2 .ag-cell-focus:not(.ag-cell-inline-editing),.office-boq-grid-v2 .ag-cell-range-selected:not(.ag-cell-inline-editing){outline:none!important;border-color:transparent!important;box-shadow:none!important}
.office-ava-toolbar .office-ava-insert-icon{position:relative}
.office-ava-toolbar .office-ava-insert-icon:hover::after{content:attr(aria-label);position:absolute;z-index:3000;left:50%;top:calc(100% + 6px);transform:translateX(-50%);white-space:nowrap;background:#202020;color:#fff;border-radius:6px;padding:5px 8px;font-size:12px;line-height:1;pointer-events:none;box-shadow:0 4px 14px rgba(0,0,0,.18)}
.office-ava-keymode-toggle.is-active{background:color-mix(in srgb,var(--office-primary,#1683e7) 10%,var(--office-surface,#fff));border-color:var(--office-primary,#1683e7);color:var(--office-primary,#1683e7)}
.office-gaeb-check-r025>.office-svg-icon{width:18px;height:18px;flex:0 0 18px}
.office-qc-more-r024{position:relative}
.office-qc-more-r024>.office-qc-more-menu-r024{right:0!important;left:auto!important;min-width:150px!important;width:max-content!important;max-width:min(220px,calc(100vw - 32px))!important;z-index:120!important}
.office-qc-more-menu-r024 button{width:100%!important;text-align:left!important;white-space:nowrap!important}
.office-qc-voice-button-r025 .office-svg-icon,.office-file-button-r023 .office-svg-icon{width:18px!important;height:18px!important}
.office-qc-voice-button-r025,.office-file-button-r023{gap:8px!important}
/* Mask short-lived enhanced-navigation/hydration text repaint without blocking interactions. */
.office-page,.office-project-shell main{backface-visibility:hidden}

/* r025 E+F – final correction pack */
.office-gaeb-inline-warning-r025{display:flex!important;align-items:flex-start!important;gap:8px!important}.office-gaeb-inline-warning-r025>.office-svg-icon{width:18px;height:18px;flex:0 0 18px}
.office-qc-more-r024[open]{z-index:500!important}.office-qc-more-r024>.office-qc-more-menu-r024{display:grid!important;gap:2px!important;overflow:visible!important}.office-qc-more-r024>.office-qc-more-menu-r024>button{position:static!important;float:none!important;margin:0!important;display:block!important;color:var(--office-text)!important}.office-qc-more-r024>.office-qc-more-menu-r024>button.is-danger{color:var(--office-danger,#c62828)!important}
/* Do not fade page text during enhanced navigation/re-render; only keep non-textual motion. */
.office-page .office-dashboard-panel{transition:transform .12s ease,box-shadow .12s ease!important;opacity:1!important}
.office-company-contact-drafts-r025{display:grid;gap:7px}.office-company-contact-draft-r025{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:9px 10px;border:1px solid var(--office-border);border-radius:9px;background:var(--office-surface-soft)}.office-company-contact-draft-r025>div:first-child{display:grid;gap:2px}.office-company-contact-draft-r025 span{font-size:12px;color:var(--office-text-muted)}.office-company-person-draft-dialog-r025{width:min(650px,calc(100vw - 24px))}.office-dialog-layer.is-nested-r025{z-index:2300}
.office-ava-postaward-card-r025{margin:12px 0}.office-ava-postaward-note-r025{margin-bottom:12px}.office-table tr.is-post-award-r025 td:first-child{box-shadow:inset 3px 0 0 var(--office-warning,#b26a00)}
.office-ava-measurement-groups-r025{display:grid;gap:10px}.office-ava-measurement-group-r025{border:1px solid var(--office-border);border-radius:10px;background:var(--office-surface);overflow:hidden}.office-ava-measurement-group-r025>header{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 12px;background:var(--office-surface-soft);border-bottom:1px solid var(--office-border)}.office-ava-measurement-group-r025>header>div{display:grid;gap:2px}.office-ava-measurement-group-r025>header span{font-size:12px;color:var(--office-text-muted)}.office-ava-measurement-group-r025.is-warning>header{box-shadow:inset 3px 0 0 var(--office-warning,#b26a00)}.office-ava-measurement-lines-r025 input{min-width:100px}.office-ava-measurement-lines-r025 td:nth-child(2){min-width:150px}.office-ava-measurement-lines-r025 td:nth-child(3){min-width:180px}.office-ava-measurement-bulk-r025{justify-content:flex-start;margin:8px 0}
.office-ava-area-totals-r025{display:flex;flex-wrap:wrap;gap:7px;margin:8px 0 12px}.office-ava-area-totals-r025>div{display:flex;align-items:center;gap:8px;padding:6px 9px;border:1px solid var(--office-border);border-radius:8px;background:var(--office-surface-soft);font-size:12px}.office-ava-area-totals-r025 span{color:var(--office-text-muted)}

/* r025 G+H: central Office date picker */
.office-date-picker-r025{position:relative;width:100%;min-width:0}
.office-date-picker-trigger-r025{width:100%;min-height:44px;display:flex;align-items:center;justify-content:space-between;gap:10px;padding:0 14px;border:1px solid var(--office-border);border-radius:10px;background:var(--office-surface);color:var(--office-text);font:inherit;text-align:left;cursor:pointer;box-sizing:border-box}
.office-date-picker-trigger-r025:hover{border-color:color-mix(in srgb,var(--office-text) 28%,var(--office-border))}
.office-date-picker-trigger-r025:focus-visible{outline:2px solid color-mix(in srgb,var(--office-primary,#1683e7) 45%,transparent);outline-offset:1px;border-color:var(--office-primary,#1683e7)}
.office-date-picker-trigger-r025:disabled{cursor:not-allowed;background:var(--office-surface-soft);color:var(--office-text-muted)}
.office-date-picker-value-r025{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.office-date-picker-trigger-r025 .office-svg-icon{width:19px;height:19px;flex:none}
.office-date-picker-dismiss-r025{position:fixed;inset:0;z-index:2390;border:0;background:transparent;cursor:default}
.office-date-picker-popover-r025{position:absolute;z-index:2400;top:calc(100% + 6px);left:0;width:min(320px,calc(100vw - 28px));padding:12px;border:1px solid var(--office-border);border-radius:12px;background:var(--office-surface);box-shadow:0 14px 36px rgba(0,0,0,.16);box-sizing:border-box}
.office-date-picker-head-r025{display:grid;grid-template-columns:36px 1fr 36px;align-items:center;gap:8px;margin-bottom:8px}
.office-date-picker-head-r025 strong{text-align:center;font-size:15px;text-transform:capitalize}
.office-date-picker-head-r025 .office-icon-button{width:34px;height:34px;min-width:34px}
.office-date-picker-weekdays-r025,.office-date-picker-days-r025{display:grid;grid-template-columns:repeat(7,1fr);gap:3px}
.office-date-picker-weekdays-r025{margin-bottom:4px}
.office-date-picker-weekdays-r025 span{text-align:center;font-size:12px;color:var(--office-text-muted);padding:4px 0}
.office-date-picker-weekdays-r025 span:nth-child(6),.office-date-picker-weekdays-r025 span:nth-child(7){color:var(--office-danger,#c62828)}
.office-date-picker-day-r025{aspect-ratio:1;border:0;border-radius:8px;background:transparent;color:var(--office-text);font:inherit;font-size:13px;cursor:pointer}
.office-date-picker-day-r025:hover{background:var(--office-surface-soft)}
.office-date-picker-day-r025.is-outside{color:color-mix(in srgb,var(--office-text-muted) 55%,transparent)}
.office-date-picker-day-r025.is-weekend{color:var(--office-danger,#c62828)}
.office-date-picker-day-r025.is-today{box-shadow:inset 0 0 0 1px var(--office-primary,#1683e7)}
.office-date-picker-day-r025.is-selected{background:var(--office-text);color:var(--office-surface);box-shadow:none}
.office-date-picker-footer-r025{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:8px;margin-top:10px;padding-top:10px;border-top:1px solid var(--office-border)}
@media(max-width:640px){.office-date-picker-popover-r025{width:min(300px,calc(100vw - 24px));padding:10px}}

/* r025 G+H correction round – LV focus, key-mode switch, toolbar layering, tender fields, Quick Capture */
.office-boq-ag-workspace .office-table-toolbar,
.office-boq-ag-workspace .office-ava-toolbar,
.office-boq-ag-workspace .office-ava-toolbar-controls{position:relative!important;z-index:120!important;overflow:visible!important}
.office-boq-ag-workspace [data-office-boq-grid],
.office-boq-ag-workspace .office-boq-grid-v2{position:relative;z-index:1}
.office-ava-toolbar .office-ava-insert-icon:hover::after{z-index:10000!important;top:calc(100% + 4px)!important;transition:none!important}
.office-boq-grid-v2 .office-ag-selection-cell.ag-cell-focus,
.office-boq-grid-v2 .office-ag-selection-cell.ag-cell-range-selected,
.office-boq-grid-v2 .ag-row-selected .office-ag-selection-cell,
.office-boq-grid-v2 .ag-checkbox-input-wrapper:focus,
.office-boq-grid-v2 .ag-checkbox-input-wrapper:focus-within{background:transparent!important;box-shadow:none!important;outline:none!important;border-color:transparent!important}
.office-boq-grid-v2 .office-ag-selection-cell::before,
.office-boq-grid-v2 .office-ag-selection-cell::after{display:none!important}
.office-boq-grid-v2 .ag-row.is-active-anchor{background:color-mix(in srgb,var(--office-primary,#1683e7) 7%,var(--office-surface,#fff))!important;box-shadow:inset 3px 0 0 var(--office-primary,#1683e7)!important}
.office-ava-keymode-switch-r025{display:inline-flex;align-items:center;margin-left:0;border:1px solid var(--office-border);border-radius:9px;overflow:hidden;background:var(--office-surface);height:36px;flex:0 0 auto}
.office-ava-keymode-switch-r025 .office-ava-keymode-option-r025{width:38px!important;min-width:38px!important;height:34px!important;min-height:34px!important;border:0!important;border-radius:0!important;box-shadow:none!important;color:var(--office-text-muted)!important}
.office-ava-keymode-switch-r025 .office-ava-keymode-option-r025+.office-ava-keymode-option-r025{border-left:1px solid var(--office-border)!important}
.office-ava-keymode-switch-r025 .office-ava-keymode-option-r025.is-tab{background:#fff!important}
.office-ava-keymode-switch-r025 .office-ava-keymode-option-r025.is-enter{background:var(--office-surface-soft,#f3f4f5)!important}
.office-ava-keymode-switch-r025 .office-ava-keymode-option-r025.is-selected{color:var(--office-text)!important;box-shadow:inset 0 -2px 0 var(--office-primary,#1683e7)!important}
.office-ava-keymode-switch-r025 .office-svg-icon{width:18px!important;height:18px!important}
.office-ava-tender-message-r025{min-height:150px!important;resize:vertical!important}
.office-ava-tender-note-r025{min-height:94px!important;resize:vertical!important}
.office-ava-tender-send-actions-r025{display:flex!important;justify-content:flex-end!important;align-items:center!important;gap:12px!important;flex-wrap:wrap!important}
.office-quick-capture-details-r024>summary{min-height:50px!important;padding:0 16px!important}
.office-quick-capture-details-r024>summary .office-svg-icon{width:13px!important;height:13px!important}
.office-quick-capture-page .office-qc-action-icon-r024{width:32px!important;height:32px!important;min-width:32px!important;min-height:32px!important;border-radius:8px!important}
.office-quick-capture-page .office-qc-action-icon-r024 .office-svg-icon{width:15px!important;height:15px!important}
.office-quick-capture-page .office-qc-more-menu-r024{border-radius:9px!important;padding:5px!important;box-shadow:0 10px 26px rgba(31,35,40,.16)!important}
@media(max-width:760px){
 .office-quick-capture-details-r024>summary{min-height:46px!important;padding:0 12px!important}
 .office-quick-capture-details-r024>summary .office-svg-icon{width:12px!important;height:12px!important}
}

/* r025 Block I – project deadlines */
.office-deadline-workspace-r025{display:grid;gap:14px}
.office-deadline-toolbar-r025{display:flex;align-items:center;flex-wrap:wrap;gap:12px;padding:14px 16px}
.office-deadline-filter-set-r025{display:flex;align-items:center;gap:6px;flex-wrap:wrap}
.office-filter-pill-r025{min-height:34px;padding:0 12px;border:1px solid var(--office-border);border-radius:999px;background:var(--office-surface);color:var(--office-text-muted);font:inherit;font-size:.82rem;cursor:pointer}
.office-filter-pill-r025.is-active{border-color:var(--office-primary);color:var(--office-primary);background:var(--office-primary-soft)}
.office-deadline-group-r025{padding:0;overflow:hidden}
.office-deadline-group-head-r025{display:flex;align-items:center;gap:9px;padding:14px 16px 10px}
.office-deadline-group-head-r025 h2{margin:0;font-size:1rem}.office-deadline-group-head-r025>span{display:inline-grid;place-items:center;min-width:24px;height:24px;border-radius:999px;background:var(--office-surface-soft);font-size:.74rem;color:var(--office-text-muted)}
.office-deadline-overdue-row-r025>td:first-child{box-shadow:inset 3px 0 0 var(--office-danger,#c64a4a)}
.office-table-link-button-r025{border:0;background:transparent;padding:0;text-align:left;font:inherit;cursor:pointer}
.office-deadline-calendar-card-r025{padding:16px}
.office-deadline-calendar-head-r025{display:flex;align-items:center;justify-content:center;gap:14px;margin-bottom:14px;text-transform:capitalize}
.office-deadline-calendar-r025{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));border:1px solid var(--office-border);border-radius:12px;overflow:hidden}
.office-deadline-calendar-weekday-r025{padding:9px 10px;background:var(--office-surface-soft);border-right:1px solid var(--office-border);font-size:.76rem;font-weight:700;color:var(--office-text-muted)}
.office-deadline-calendar-weekday-r025:nth-child(7){border-right:0}
.office-deadline-calendar-day-r025{min-height:124px;padding:8px;border-top:1px solid var(--office-border);border-right:1px solid var(--office-border);background:var(--office-surface)}
.office-deadline-calendar-day-r025:nth-child(7n){border-right:0}.office-deadline-calendar-day-r025.is-outside{background:var(--office-surface-soft);opacity:.58}.office-deadline-calendar-day-r025.is-today .office-deadline-calendar-date-r025{background:var(--office-primary);color:#fff}
.office-deadline-calendar-date-r025{display:inline-grid;place-items:center;width:25px;height:25px;border-radius:999px;font-size:.78rem;font-weight:700;margin-bottom:4px}
.office-deadline-calendar-entry-r025{display:flex;width:100%;gap:5px;align-items:baseline;border:0;border-left:2px solid var(--office-primary);background:var(--office-primary-soft);padding:4px 5px;margin-top:4px;text-align:left;font:inherit;font-size:.7rem;cursor:pointer;min-width:0}.office-deadline-calendar-entry-r025.is-overdue{border-left-color:var(--office-danger,#c64a4a)}.office-deadline-calendar-entry-r025 span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.office-deadline-calendar-entry-r025 small{flex:none;color:var(--office-text-muted)}.office-deadline-more-r025{display:block;margin-top:5px;color:var(--office-text-muted)}
.office-project-deadline-summary-r025{padding:18px;margin-top:16px}.office-project-deadline-summary-head-r025{display:flex;align-items:center;justify-content:space-between;gap:16px}.office-project-deadline-summary-head-r025 h2{margin:0 0 4px;font-size:1rem}.office-project-deadline-summary-head-r025 p{margin:0;color:var(--office-text-muted);font-size:.82rem}.office-project-deadline-next-r025{display:grid;gap:0;margin-top:12px;border-top:1px solid var(--office-border)}.office-project-deadline-next-r025>a{display:grid;grid-template-columns:72px minmax(0,1fr) 130px;gap:12px;align-items:center;padding:9px 2px;border-bottom:1px solid var(--office-border);color:inherit;text-decoration:none}.office-project-deadline-next-r025>a:hover span{color:var(--office-primary)}.office-project-deadline-next-r025 time{font-weight:700}.office-project-deadline-next-r025 small{color:var(--office-text-muted);text-align:right}
@media(max-width:900px){.office-deadline-toolbar-r025{align-items:flex-start}.office-deadline-calendar-r025{min-width:760px}.office-deadline-calendar-card-r025{overflow-x:auto}.office-project-deadline-summary-head-r025{align-items:flex-start;flex-direction:column}.office-project-deadline-next-r025>a{grid-template-columns:62px minmax(0,1fr)}.office-project-deadline-next-r025 small{grid-column:2;text-align:left}}


/* r025 Block I release-candidate corrections */
.office-offer-list-message-r025{margin-bottom:14px}
.office-offer-list-toolbar-r018{align-items:center}
.office-offer-project-filter-r025{margin-left:auto;min-width:220px}
.office-offer-project-filter-r025 select{min-height:42px;width:100%}
.office-file-drop-r018.is-readonly-r025{display:flex;align-items:center;gap:10px;min-height:64px}
.office-file-drop-r018.is-readonly-r025 strong{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.office-file-drop-r018.is-readonly-r025 .office-button{margin-left:auto}
.office-offer-attachment-drafts-r025{margin-top:8px}
.office-hospitality-settings-r025>.office-settings-section-heading{margin-bottom:14px}
.office-hospitality-settings-r025>.office-settings-section-heading+.office-table-frame{margin-top:2px}
.office-hospitality-template-grid-r025{align-items:start}
.office-hospitality-template-grid-r025>.office-field{align-self:start}
.office-hospitality-template-grid-r025 textarea{min-height:116px}
.office-award-dialog-r025{max-height:calc(100dvh - 32px)}

/* Systemweiter Tabellenstandard r025: reine SVG-Aktionsschaltflächen in Tabellen sind rahmenlos. */
table td .office-icon-button,
table td .office-row-menu-trigger,
table td .office-context-menu-trigger,
.office-table-frame td .office-qc-action-icon-r024{border:0!important;background:transparent!important;box-shadow:none!important}
table td .office-icon-button:not(:disabled):hover,
table td .office-row-menu-trigger:not(:disabled):hover,
table td .office-context-menu-trigger:not(:disabled):hover,
.office-table-frame td .office-qc-action-icon-r024:not(:disabled):hover{border-color:transparent!important;background:var(--office-surface-soft)!important}

@media(max-width:760px){
  .office-offer-list-toolbar-r018{align-items:stretch;gap:10px}
  .office-offer-project-filter-r025{margin-left:0;min-width:0;width:100%}
}

/* r025 Block J – reusable search combobox outside contract panel */
.office-combobox-r018{position:relative;min-width:0}
.office-combobox-r018>.office-select-button{width:100%;min-height:42px;display:flex;align-items:center;justify-content:space-between;gap:10px;padding:0 12px;border:1px solid var(--office-border);border-radius:9px;background:var(--office-surface);color:var(--office-text);font:inherit;text-align:left}
.office-combobox-r018>.office-select-button>span:first-child{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.office-combobox-popover-r018{position:absolute;z-index:220;left:0;right:0;top:calc(100% + 6px);padding:8px;background:var(--office-surface);border:1px solid var(--office-border);border-radius:11px;box-shadow:0 14px 34px rgba(31,35,40,.16)}
.office-combobox-search{margin-bottom:7px}.office-combobox-options-r018{display:grid;max-height:260px;overflow:auto;overscroll-behavior:contain}
.office-combobox-option-r018{display:grid;gap:2px;width:100%;padding:9px 10px;border:0;border-radius:7px;background:transparent;text-align:left;color:var(--office-text);font:inherit;cursor:pointer}.office-combobox-option-r018:hover{background:var(--office-surface-soft)}.office-combobox-option-r018 small{color:var(--office-text-muted)}
.office-combobox-group-label{position:sticky;top:0;z-index:1;padding:8px 10px 5px;background:var(--office-surface);color:var(--office-text-muted);font-size:.72rem;font-weight:800;text-transform:uppercase;letter-spacing:.03em;border-bottom:1px solid var(--office-border)}

/* r025 Block J – project document archive */
.office-document-archive-r025{display:grid;gap:12px}
.office-document-toolbar-r025{display:flex;align-items:center;gap:12px;padding:14px 16px}.office-document-search-r025{flex:1;min-width:240px}.office-document-toolbar-actions-r025{display:flex;align-items:center;gap:8px}
.office-document-quickfilters-r025{display:flex;gap:7px;flex-wrap:wrap}.office-document-filters-r025{display:grid;grid-template-columns:repeat(4,minmax(150px,1fr));gap:12px;padding:16px}.office-document-filter-actions-r025{display:flex;align-items:end}
.office-document-table-card-r025{overflow:hidden}.office-document-title-r025{display:grid;gap:3px;min-width:220px}.office-document-title-r025 strong{font-weight:700}.office-document-title-r025 small{color:var(--office-text-muted)}
.office-document-legend-r025{display:flex;gap:18px;flex-wrap:wrap;color:var(--office-text-muted);font-size:.78rem;padding:0 3px}.office-document-legend-r025 span{display:flex;align-items:center;gap:6px}.office-document-legend-r025 span:before{content:"";width:5px;height:5px;border-radius:999px;background:currentColor;opacity:.5}
.office-document-history-dialog-r025{width:min(900px,calc(100vw - 32px))}.office-document-share-dialog-r025{width:min(760px,calc(100vw - 32px))}.office-document-share-result-r025{display:grid;gap:14px}.office-document-share-result-r025 input{width:100%;font-family:ui-monospace,SFMono-Regular,Consolas,monospace}
.office-document-preview-dialog-r025{width:min(1180px,calc(100vw - 24px));height:min(880px,calc(100dvh - 24px));max-width:none;display:grid;grid-template-rows:auto minmax(0,1fr) auto}.office-document-preview-body-r025{min-height:0;background:var(--office-surface-soft);padding:10px;display:grid;place-items:center}.office-document-preview-body-r025 iframe{width:100%;height:100%;border:0;background:white;border-radius:8px}.office-document-preview-body-r025 img{display:block;max-width:100%;max-height:100%;object-fit:contain;border-radius:8px}
@media(max-width:900px){.office-document-toolbar-r025{align-items:stretch;flex-direction:column}.office-document-toolbar-actions-r025{justify-content:flex-end}.office-document-filters-r025{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:620px){.office-document-filters-r025{grid-template-columns:1fr}.office-document-toolbar-actions-r025{justify-content:stretch}.office-document-toolbar-actions-r025 .office-button{flex:1}.office-document-preview-dialog-r025{width:100vw;height:100dvh;border-radius:0}}

/* r025 Block J/K final correction loop ------------------------------------------------- */
/* Project navigation: denser rhythm without changing the global Office navigation master. */
.office-drawer .office-nav-group-body{gap:1px}
.office-drawer .office-nav-item{min-height:38px;padding-top:7px;padding-bottom:7px}
.office-drawer .office-nav-item.is-project{min-height:35px;padding-top:6px;padding-bottom:6px}
.office-drawer .office-data-environment-switcher-r019{margin-top:6px!important}

/* Post-award closeout is intentionally unavailable until the project is prepared for acceptance. */
.office-local-tabs .office-local-tab.is-disabled-r025{color:var(--office-text-muted);opacity:.48;cursor:not-allowed;pointer-events:none;background:transparent}
.office-local-tabs .office-local-tab.is-disabled-r025::after{display:none!important}
.office-acceptance-prepare-r025{background:#fff!important;color:var(--office-text)!important}
.office-acceptance-prepare-r025:not(:disabled):hover{background:var(--office-surface-soft)!important}
.office-acceptance-prepare-r025.is-prepared{background:#fff!important;color:var(--office-text-muted)!important}

/* Project cockpit r025: compact information density and a calmer 2-column data card. */
@media(min-width:1101px){
  .office-project-overview-layout-r020{grid-template-columns:minmax(0,1.35fr) minmax(360px,.65fr);gap:14px;align-items:stretch}
  .office-project-summary-card-r020{height:100%}
  .office-project-summary-list-r020{grid-template-columns:repeat(2,minmax(0,1fr));column-gap:22px;row-gap:0}
  .office-project-summary-list-r020>div{grid-template-columns:minmax(118px,42%) minmax(0,1fr);gap:10px;padding:8px 0;min-width:0}
  .office-project-summary-list-r020>div:nth-last-child(-n+2){border-bottom:0}
  .office-project-summary-list-r020 dt{line-height:1.25}
  .office-project-summary-list-r020 dd{line-height:1.25;min-width:0;overflow-wrap:anywhere}
  .office-project-kpi-column-r020{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;align-content:start}
  .office-project-kpi-r018{min-height:102px;padding:14px 16px}
}
.office-project-summary-card-r020{padding:16px!important}
.office-project-summary-head-r018{margin-bottom:4px!important;padding-bottom:10px!important}
.office-project-summary-actions{margin-top:10px!important;padding-top:10px!important;gap:8px!important}
.office-project-cockpit-r018{margin-top:14px!important}
.office-project-analysis-grid-r018{gap:14px!important;margin-top:14px!important}
.office-project-analysis-card-r018{padding:16px!important}
.office-project-analysis-head-r018{margin-bottom:12px!important}
.office-project-bars-r018{gap:8px!important}
.office-project-deadline-summary-r025{margin-top:14px!important}

/* Offer-card kebab only: match the project-card action button without altering the context-menu master. */
.office-offer-card .office-offer-actions-row>.office-context-menu-wrap{display:inline-flex;align-items:center;margin:0}
.office-offer-card .office-offer-actions-row>.office-context-menu-wrap>.office-row-menu-trigger{
  width:34px;min-width:34px;height:34px;min-height:34px;padding:0;border:1px solid #d3d7db;border-radius:8px;
  display:inline-grid;place-items:center;background:#fff;color:#555b61
}
.office-offer-card .office-offer-actions-row>.office-context-menu-wrap>.office-row-menu-trigger:hover,
.office-offer-card .office-offer-actions-row>.office-context-menu-wrap>.office-row-menu-trigger[aria-expanded="true"]{border-color:#bcc2c8;background:#f7f8f9}
.office-offer-card .office-offer-actions-row>.office-context-menu-wrap>.office-row-menu-trigger .office-svg-icon{width:14px;height:14px;opacity:.76}
@media(max-width:760px){.office-offer-card .office-offer-actions-row>.office-context-menu-wrap>.office-row-menu-trigger{width:32px;min-width:32px;height:32px;min-height:32px}}

/* LV toolbar: one compact icon-button master for icon actions. Import and Export remain text buttons. */
.office-boq-toolbar-v2 .office-ava-insert-icon,
.office-boq-toolbar-v2 .office-ava-renumber-icon-r025,
.office-boq-toolbar-v2 .office-ava-keymode-toggle-r025,
.office-boq-toolbar-v2 .office-ava-history-icon,
.office-boq-toolbar-v2 .office-ava-preview-button,
.office-boq-toolbar-v2 .office-ava-focus-toggle{
  width:32px!important;min-width:32px!important;height:32px!important;min-height:32px!important;padding:0!important;
  border:1px solid var(--office-border)!important;border-radius:8px!important;background:#fff!important;color:var(--office-text-muted)!important;
  display:inline-grid!important;place-items:center!important;box-shadow:none!important
}
.office-boq-toolbar-v2 .office-ava-insert-icon .office-svg-icon,
.office-boq-toolbar-v2 .office-ava-renumber-icon-r025 .office-svg-icon,
.office-boq-toolbar-v2 .office-ava-keymode-toggle-r025 .office-svg-icon,
.office-boq-toolbar-v2 .office-ava-history-icon .office-svg-icon,
.office-boq-toolbar-v2 .office-ava-preview-button .office-svg-icon,
.office-boq-toolbar-v2 .office-ava-focus-toggle .office-svg-icon{width:14px!important;height:14px!important}
.office-boq-toolbar-v2 .office-ava-insert-icon:not(:disabled):hover,
.office-boq-toolbar-v2 .office-ava-renumber-icon-r025:not(:disabled):hover,
.office-boq-toolbar-v2 .office-ava-keymode-toggle-r025:not(:disabled):hover,
.office-boq-toolbar-v2 .office-ava-history-icon:not(:disabled):hover,
.office-boq-toolbar-v2 .office-ava-preview-button:not(:disabled):hover,
.office-boq-toolbar-v2 .office-ava-focus-toggle:not(:disabled):hover{background:#fff!important;color:var(--office-text)!important;border-color:var(--office-border-strong)!important}
.office-boq-toolbar-v2 .office-ava-keymode-toggle-r025{color:var(--office-text)!important;box-shadow:inset 0 -2px 0 var(--office-primary,#1683e7)!important}
.office-boq-toolbar-v2 .office-ava-keymode-toggle-r025.is-enter,
.office-boq-toolbar-v2 .office-ava-keymode-toggle-r025.is-tab{background:#fff!important;color:var(--office-text)!important}
/* Retire the old pseudo-tooltip; the JS tooltip is portaled to body and cannot be clipped by cards/grids. */
.office-ava-toolbar .office-ava-insert-icon:hover::after{content:none!important;display:none!important}
.office-boq-toolbar-tooltip-r025{position:fixed;z-index:2147483000;max-width:min(320px,calc(100vw - 16px));padding:6px 9px;border-radius:6px;background:#202020;color:#fff;font-size:12px;line-height:1.2;white-space:nowrap;pointer-events:none;box-shadow:0 5px 18px rgba(0,0,0,.2)}

/* r025 Block J/K – final UI consistency pass ------------------------------------------------ */
/* Locked settings cards stay visually white; only their content is muted. */
.office-settings-card.is-locked{
  background:var(--office-surface)!important;
  color:var(--office-text-muted)!important;
  opacity:1!important;
}
.office-settings-card.is-locked h2,
.office-settings-card.is-locked h3,
.office-settings-card.is-locked p,
.office-settings-card.is-locked .office-settings-access-pill{color:var(--office-text-muted)!important;opacity:.62}

/* User identity: company replaces the technical role label. */
.office-user-company-r025{display:block;min-width:0;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--office-text-muted)!important}
.office-profile-summary>div{min-width:0}.office-profile-summary .office-user-company-r025{max-width:230px}

/* Kebab menu master: always bordered and consistently sized like contextual header navigation.
   Other SVG action buttons inside tables remain intentionally borderless. */
.office-row-menu-trigger,
.office-card-more-button{
  width:34px!important;min-width:34px!important;height:34px!important;min-height:34px!important;padding:0!important;
  border:1px solid var(--office-border)!important;border-radius:8px!important;background:var(--office-surface)!important;
  color:var(--office-text-secondary)!important;display:inline-grid!important;place-items:center!important;box-shadow:none!important
}
.office-row-menu-trigger:hover,.office-row-menu-trigger[aria-expanded="true"],
.office-card-more-button:hover,.office-card-more-button[aria-expanded="true"]{border-color:var(--office-border-strong)!important;background:var(--office-surface-soft)!important;color:var(--office-text)!important}
.office-row-menu-trigger .office-svg-icon,.office-card-more-button .office-svg-icon{width:12px!important;height:12px!important;opacity:.82!important}
/* override the older table rule which intentionally removed all borders */
table td .office-row-menu-trigger,.office-table-frame td .office-row-menu-trigger{border:1px solid var(--office-border)!important;background:var(--office-surface)!important}
table td .office-row-menu-trigger:not(:disabled):hover,.office-table-frame td .office-row-menu-trigger:not(:disabled):hover{border-color:var(--office-border-strong)!important;background:var(--office-surface-soft)!important}

/* Card action buttons share the same compact geometry. */
.office-project-actions-row .office-pin-button,
.office-offer-actions-row .office-pin-button,
.office-project-actions-row .office-project-diary-button{
  width:34px!important;min-width:34px!important;height:34px!important;min-height:34px!important;padding:0!important;border-radius:8px!important
}
.office-project-actions-row .office-pin-button,
.office-offer-actions-row .office-pin-button{border:1px solid var(--office-border)!important;background:var(--office-surface)!important;display:inline-grid!important;place-items:center!important}
.office-project-actions-row .office-pin-button .office-svg-icon,
.office-offer-actions-row .office-pin-button .office-svg-icon,
.office-project-actions-row .office-project-diary-button .office-svg-icon{width:13px!important;height:13px!important}

/* Offer list filter keeps the Office combobox geometry and no longer shifts the segmented control. */
.office-offer-list-toolbar-r018{min-height:44px!important;align-items:center!important}
.office-offer-project-filter-r025{margin-left:auto;min-width:260px;align-self:center}
.office-offer-project-filter-r025 .office-client-combobox{position:relative}
.office-offer-project-filter-r025 .office-combobox-trigger{min-height:42px}

/* Compact import dialog parity with invoices. */
.office-offer-import-dialog-r018{width:min(980px,calc(100vw - 28px));max-height:min(820px,calc(100dvh - 28px))}
.office-offer-import-dialog-r018 .office-dialog-body{padding-top:18px;padding-bottom:18px}
.office-offer-import-dialog-r018 .office-offer-import-grid-r018{gap:14px 16px}
.office-offer-import-dialog-r018 .office-file-upload-control{min-height:46px}

/* Specifications overview: use one stable framed viewport, no clipping or oversized fixed columns. */
.office-specifications-page .office-specifications-table-frame-r025{width:100%;overflow:visible!important;border:1px solid var(--office-border);border-radius:var(--office-radius-lg);background:var(--office-surface)}
.office-specifications-page .office-specifications-table-frame-r025>.office-table-viewport{overflow-x:auto!important;overflow-y:visible!important;border-radius:inherit}
.office-specifications-page .office-specifications-table-frame-r025 .office-table{width:100%;min-width:1240px;table-layout:fixed;margin:0}
.office-specifications-page .office-specifications-table-frame-r025 th:nth-child(1){width:140px}
.office-specifications-page .office-specifications-table-frame-r025 th:nth-child(2){width:205px}
.office-specifications-page .office-specifications-table-frame-r025 th:nth-child(3){width:135px}
.office-specifications-page .office-specifications-table-frame-r025 th:nth-child(4){width:145px}
.office-specifications-page .office-specifications-table-frame-r025 th:nth-child(5){width:220px}
.office-specifications-page .office-specifications-table-frame-r025 th:nth-child(6){width:120px}
.office-specifications-page .office-specifications-table-frame-r025 th:nth-child(7){width:120px}
.office-specifications-page .office-specifications-table-frame-r025 th:nth-child(8){width:125px}
.office-specifications-page .office-specifications-table-frame-r025 th:nth-child(9){width:120px}
.office-specifications-page .office-specifications-table-frame-r025 th:nth-child(10){width:105px}
.office-specifications-page .office-specifications-table-frame-r025 th:nth-child(11){width:72px}
.office-specifications-page .office-specifications-table-frame-r025 th,
.office-specifications-page .office-specifications-table-frame-r025 td{box-sizing:border-box;min-width:0}

/* r025 Block J/K – invoice list selector parity ------------------------------------------ */
.office-invoice-list-toolbar-r025{
  align-items:flex-start;
  gap:12px;
  min-height:44px;
}
.office-invoice-list-toolbar-end-r025{
  margin-left:auto;
  display:flex;
  align-items:flex-start;
  gap:10px;
  min-width:0;
}
.office-invoice-project-filter-r025{
  width:min(280px,28vw);
  min-width:220px;
  position:relative;
}
.office-invoice-project-filter-r025 .office-combobox-trigger{
  min-height:40px;
  height:40px;
  background:var(--office-surface,#fff);
}
.office-invoice-list-project-popover-r025{
  z-index:1400;
  min-width:320px;
}
.office-invoice-list-toolbar-r025 .office-user-search-control{
  width:min(440px,38vw);
  min-width:260px;
}
@media(max-width:900px){
  .office-invoice-list-toolbar-r025,.office-invoice-list-toolbar-end-r025{align-items:stretch;flex-direction:column;width:100%}
  .office-invoice-list-toolbar-end-r025{margin-left:0}
  .office-invoice-project-filter-r025,.office-invoice-list-toolbar-r025 .office-user-search-control{width:100%;min-width:0}
}
/* r025 final: contextual-header geometry is the canonical compact action master. */
.office-row-menu-trigger .office-svg-icon,.office-card-more-button .office-svg-icon{width:10px!important;height:10px!important}
.office-project-actions-row .office-pin-button .office-svg-icon,
.office-offer-actions-row .office-pin-button .office-svg-icon,
.office-project-actions-row .office-project-diary-button .office-svg-icon{width:12px!important;height:12px!important}


/* r026 – compact Office date picker and holiday precedence */
.office-date-picker-r025{position:relative;min-width:0}
.office-date-picker-popover-r025{left:50%!important;right:auto!important;transform:translateX(-50%)!important;width:min(282px,calc(100vw - 24px))!important;max-width:calc(100vw - 24px)!important;padding:8px!important;border-radius:10px!important}
.office-date-picker-head-r025{min-height:30px!important;margin-bottom:5px!important}
.office-date-picker-head-r025 .office-icon-button{width:28px!important;min-width:28px!important;height:28px!important;min-height:28px!important}
.office-date-picker-head-r025 strong{font-size:13px!important}
.office-date-picker-weekdays-r025{font-size:10px!important;margin-bottom:3px!important}
.office-date-picker-days-r025{gap:2px!important}
.office-date-picker-day-r025{aspect-ratio:auto!important;height:28px!important;min-height:28px!important;border-radius:6px!important;font-size:12px!important;padding:0!important}
.office-date-picker-footer-r025{margin-top:6px!important;padding-top:6px!important}
.office-date-picker-footer-r025 .office-button{min-height:28px!important;padding:4px 8px!important;font-size:12px!important}
.office-leave-entry-dialog-r026{overflow:visible!important;width:min(660px,calc(100vw - 24px))!important}
.office-leave-entry-dialog-r026>.office-dialog-body{overflow:visible!important}
.office-leave-date-from-r026 .office-date-picker-popover-r025{left:0!important;right:auto!important;transform:none!important}
.office-leave-date-to-r026 .office-date-picker-popover-r025{left:auto!important;right:0!important;transform:none!important}
@media(max-width:640px){.office-leave-date-from-r026 .office-date-picker-popover-r025,.office-leave-date-to-r026 .office-date-picker-popover-r025{left:0!important;right:auto!important;transform:none!important}}
.office-leave-day.is-holiday{background:#fff1f1!important;color:var(--office-danger,#b3261e)!important}
.office-leave-day.is-holiday.is-weekend{background:#fff1f1!important;color:var(--office-danger,#b3261e)!important}
@media(max-width:640px){.office-date-picker-popover-r025{width:min(268px,calc(100vw - 20px))!important;padding:7px!important}.office-date-picker-day-r025{height:27px!important;min-height:27px!important}}


/* r026 – Quick Capture genuine mobile cards */
@media(max-width:900px){
 .office-quick-capture-details-r024 tbody{display:block!important}
 .office-quick-capture-details-r024 tr{display:grid!important;grid-template-columns:minmax(0,1fr) auto!important;grid-template-areas:"project status" "time kind" "content content" "actions actions"!important;row-gap:4px!important;column-gap:8px!important;margin:0 0 8px!important;padding:9px 10px!important}
 .office-quick-capture-details-r024 td:nth-child(1){grid-area:time!important;font-size:10.5px!important;line-height:1.2!important;color:var(--office-text-muted)!important}
 .office-quick-capture-details-r024 td:nth-child(1)::after{content:none!important}
 .office-quick-capture-details-r024 td:nth-child(2){grid-area:project!important;font-size:12.5px!important;font-weight:650!important;line-height:1.2!important}
 .office-quick-capture-details-r024 td:nth-child(3){grid-area:kind!important;justify-self:end!important;margin-left:0!important;font-size:10.5px!important;line-height:1.2!important;color:var(--office-text-muted)!important}
 .office-quick-capture-details-r024 td:nth-child(4){grid-area:content!important;font-size:13px!important;line-height:1.3!important;padding-top:3px!important;max-height:3.1em!important;overflow:hidden!important}
 .office-quick-capture-details-r024 td:nth-child(5){grid-area:status!important;justify-self:end!important;align-self:start!important;font-size:10.5px!important;line-height:1.2!important;white-space:nowrap!important}
 .office-quick-capture-details-r024 td:nth-child(6){grid-area:actions!important;padding-top:5px!important;border-top:1px solid var(--office-border)!important}
 .office-qc-thumb-r024{width:58px!important;height:44px!important;object-fit:cover!important;border-radius:7px!important}
 .office-qc-mobile-apply-r024{width:max-content!important;max-width:100%!important;margin-left:auto!important}
 .office-qc-mobile-apply-r024>summary{width:max-content!important;min-height:32px!important;padding:4px 9px!important;font-size:12px!important}
 .office-qc-mobile-apply-menu-r024{position:absolute!important;right:0!important;left:auto!important;top:calc(100% + 4px)!important;z-index:2100!important;width:min(220px,calc(100vw - 44px))!important;max-width:calc(100vw - 44px)!important;box-shadow:var(--office-shadow-popover)!important}
 .office-qc-mobile-apply-menu-r024 button{min-height:30px!important;padding:4px 7px!important;font-size:12px!important}
}

/* r026 correction loop – stable offer/invoice list geometry. */
.office-offer-project-filter-r025.is-layout-placeholder{visibility:hidden;pointer-events:none}
.office-offer-list-card-r018>.office-table-frame{margin-top:0!important;box-shadow:none!important}
.office-invoice-project-filter-r025 .office-client-combobox{position:relative}
.office-invoice-list-project-popover-r025{width:min(380px,calc(100vw - 32px))!important;min-width:0!important;max-width:calc(100vw - 32px)!important}
@media(max-width:900px){.office-offer-project-filter-r025.is-layout-placeholder{display:block;min-height:42px}.office-invoice-list-project-popover-r025{width:min(380px,calc(100vw - 24px))!important;max-width:calc(100vw - 24px)!important}}

/* r026 correction loop ------------------------------------------------------- */
/* Task details: Office date picker and readable comment/history rhythm. */
.office-task-comment-add-r023{margin-top:14px!important}
.office-history-row-r023 + .office-history-row-r023{margin-top:7px}
.office-history-row-r023{padding-block:7px}

/* Hospitality: Office input geometry, import-style file action and read-only details. */
.office-hospitality-occasion-input-r026{width:100%;min-height:82px;resize:vertical}
.office-hospitality-import-button-r026{width:max-content;max-width:100%;justify-content:flex-start}
.office-hospitality-details-r026{width:min(760px,calc(100vw - 32px))}
.office-detail-grid-r026{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 24px;margin:0}
.office-detail-grid-r026>div{display:grid;gap:4px;padding:11px 0;border-bottom:1px solid var(--office-border-soft,#edf0f3);min-width:0}
.office-detail-grid-r026>div.is-wide{grid-column:1/-1}
.office-detail-grid-r026 dt{font-size:.75rem;font-weight:650;color:var(--office-text-muted)}
.office-detail-grid-r026 dd{margin:0;overflow-wrap:anywhere}

/* Dialog scrim must cover the whole viewport even when the dialog is rendered in a project container. */
.office-dialog-layer.is-open>.office-dialog-scrim{position:fixed!important;inset:0!important;width:100vw!important;height:100dvh!important;max-width:none!important;max-height:none!important}

/* LV row marks: visible slim strip; selection/hover must not hide it. */
.office-boq-grid-v2 .ag-row.has-color-yellow,
.office-boq-grid-v2 .ag-row.has-color-red,
.office-boq-grid-v2 .ag-row.has-color-green,
.office-boq-grid-v2 .ag-row.has-color-blue,
.office-boq-grid-v2 .ag-row.has-color-gray{position:absolute}
.office-boq-grid-v2 .ag-row.has-color-yellow::before,
.office-boq-grid-v2 .ag-row.has-color-red::before,
.office-boq-grid-v2 .ag-row.has-color-green::before,
.office-boq-grid-v2 .ag-row.has-color-blue::before,
.office-boq-grid-v2 .ag-row.has-color-gray::before{content:"";position:absolute;z-index:5;left:0;top:0;bottom:0;width:4px;pointer-events:none}
.office-boq-grid-v2 .ag-row.has-color-yellow::before{background:#d7a800}
.office-boq-grid-v2 .ag-row.has-color-red::before{background:#c43131}
.office-boq-grid-v2 .ag-row.has-color-green::before{background:#3b8b58}
.office-boq-grid-v2 .ag-row.has-color-blue::before{background:#3979b8}
.office-boq-grid-v2 .ag-row.has-color-gray::before{background:#8a9299}

/* Project contract team: compact Office table-like editor. */
.office-contract-team-list-r026{display:grid;gap:8px}
.office-contract-team-row-r026{display:grid;grid-template-columns:minmax(180px,1.35fr) minmax(160px,1fr) minmax(120px,.65fr) auto;gap:10px;align-items:end;padding:10px;border:1px solid var(--office-border);border-radius:10px;background:var(--office-surface)}
.office-contract-team-row-r026 .office-field{margin:0;min-width:0}
@media(max-width:900px){.office-contract-team-row-r026{grid-template-columns:1fr 1fr}}
@media(max-width:620px){.office-contract-team-row-r026{grid-template-columns:1fr}}

/* Project cockpit: true mobile layout rather than compressed desktop cards. */
@media(max-width:700px){
  .office-project-overview-layout-r020{grid-template-columns:1fr!important;gap:10px!important}
  .office-project-summary-card-r020{padding:13px!important}
  .office-project-summary-head-r018{align-items:flex-start!important;gap:8px!important}
  .office-project-summary-list-r020{display:grid!important;grid-template-columns:1fr!important}
  .office-project-summary-list-r020>div{grid-template-columns:minmax(108px,42%) minmax(0,1fr)!important;gap:8px!important;padding:7px 0!important}
  .office-project-summary-list-r020 dt,.office-project-summary-list-r020 dd{font-size:.78rem!important;line-height:1.25!important;min-width:0;overflow-wrap:anywhere}
  .office-project-summary-actions{display:grid!important;grid-template-columns:1fr!important}
  .office-project-summary-actions>.office-button{width:100%;justify-content:center}
  .office-project-kpi-column-r020{grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:8px!important}
  .office-project-kpi-r018{min-height:0!important;padding:11px 12px!important;border-radius:11px!important}
  .office-project-kpi-r018>strong{font-size:1.08rem!important}
  .office-project-analysis-grid-r018{grid-template-columns:1fr!important;gap:10px!important;margin-top:10px!important}
  .office-project-analysis-card-r018{padding:13px!important}
  .office-project-bars-r018>div{grid-template-columns:62px minmax(0,1fr)!important;gap:7px!important}
  .office-project-bars-r018 strong{grid-column:2!important;text-align:left!important;font-size:.76rem!important}
  .office-project-deadline-summary-r025{padding:13px!important}
  .office-project-deadline-summary-head-r025{align-items:flex-start!important;flex-direction:column!important}
}
@media(max-width:430px){
  .office-project-kpi-column-r020{grid-template-columns:1fr!important}
  .office-detail-grid-r026{grid-template-columns:1fr}.office-detail-grid-r026>div.is-wide{grid-column:auto}
}

/* r027 backup settings: keep scheduling and status controls aligned with the Office settings master. */
.office-backup-settings-r025 .office-settings-line-r025.is-stack{align-items:flex-start}
.office-backup-settings-r025 .office-backup-inline-controls-r025{display:flex;align-items:flex-end;justify-content:flex-end;gap:10px;flex-wrap:wrap}
.office-backup-settings-r025 .office-backup-inline-controls-r025 .office-field{min-width:140px;margin:0}
.office-backup-settings-r025 .office-weekday-picker-r025{display:flex;align-items:center;justify-content:flex-end;gap:8px;flex-wrap:wrap}
.office-backup-settings-r025 .office-weekday-picker-r025 .office-check-field{min-height:36px;padding:7px 9px;border:1px solid var(--office-border);border-radius:8px;background:var(--office-surface)}
.office-backup-settings-r025 .office-settings-value-r025{max-width:min(620px,55vw);text-align:right;color:var(--office-text-secondary);font-size:13px;line-height:1.4;overflow-wrap:anywhere}
@media(max-width:700px){
  .office-backup-settings-r025 .office-settings-line-r025{display:grid;grid-template-columns:1fr;gap:10px}
  .office-backup-settings-r025 .office-backup-inline-controls-r025,.office-backup-settings-r025 .office-weekday-picker-r025{justify-content:flex-start;width:100%}
  .office-backup-settings-r025 .office-backup-inline-controls-r025 .office-field{min-width:0;flex:1 1 140px}
  .office-backup-settings-r025 .office-settings-value-r025{max-width:none;text-align:left}
}

/* r027 C5/C6 – document sharing and LV interaction corrections. */
.office-document-share-dialog-r025 .office-field textarea.office-textarea{
  width:100%;min-height:104px;padding:10px 11px;border:1px solid var(--office-border-strong);border-radius:8px;
  background:var(--office-surface);color:var(--office-text);font:inherit;font-size:14px;font-weight:400;line-height:1.45;resize:none;box-sizing:border-box
}
.office-document-share-dialog-r025 .office-field textarea.office-textarea:focus{border-color:var(--office-primary);outline:2px solid color-mix(in srgb,var(--office-primary) 18%,transparent);outline-offset:0}
.office-document-share-recipient-chips-r027{display:flex;flex-wrap:wrap;gap:7px;margin-top:4px}
.office-document-share-recipient-chips-r027 .office-chip{display:inline-flex;align-items:center;gap:7px;max-width:100%}
.office-document-share-recipient-chips-r027 .office-chip>span:first-child{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.office-document-share-recipient-chips-r027 .office-chip button{display:grid;place-items:center;width:20px;height:20px;padding:0;border:0;background:transparent;color:var(--office-text-muted);cursor:pointer}
.office-document-share-recipient-chips-r027 .office-chip button .office-svg-icon{width:11px;height:11px}
.office-document-share-created-card-r027{display:grid;gap:10px;padding:12px;border:1px solid var(--office-border);border-radius:10px;background:var(--office-surface-soft)}
.office-document-share-created-card-r027>div:first-child{display:grid;gap:2px}.office-document-share-created-card-r027>div:first-child small{color:var(--office-text-muted)}
.office-document-share-copy-row-r027{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px;align-items:center}
.office-document-share-copy-row-r027 .office-button{white-space:nowrap}
@media(max-width:620px){.office-document-share-copy-row-r027{grid-template-columns:1fr}.office-document-share-copy-row-r027 .office-button{justify-content:center}}

/* Enter/Tab is a two-option pill again: selected = black glyph + blue underline, inactive = gray glyph. */
.office-ava-keymode-switch-r025 .office-ava-keymode-option-r025.is-tab,
.office-ava-keymode-switch-r025 .office-ava-keymode-option-r025.is-enter{background:#fff!important;color:var(--office-text-muted)!important;box-shadow:none!important}
.office-ava-keymode-switch-r025 .office-ava-keymode-option-r025.is-selected{background:#fff!important;color:var(--office-text)!important;box-shadow:inset 0 -2px 0 var(--office-primary,#1683e7)!important}

/* A fixed LV property sidebar must always cover the table toolbar. */
.office-boq-ag-workspace.has-detail-sidebar-r027 .office-table-toolbar,
.office-boq-ag-workspace.has-detail-sidebar-r027 .office-ava-toolbar,
.office-boq-ag-workspace.has-detail-sidebar-r027 .office-ava-toolbar-controls{z-index:1!important}

/* r027 dashboard project view controls: same quiet geometry as the section chevron, no frame. */
.office-dashboard-project-heading-actions-r027{display:flex;align-items:center;gap:2px;margin-left:auto;flex:0 0 auto}
.office-dashboard-project-heading-actions-r027 .office-section-collapse-button{margin-left:0!important}
.office-dashboard-heading-icon-r027{width:30px;min-width:30px;height:30px;min-height:30px;padding:0;border:0;border-radius:7px;background:transparent;color:rgba(33,33,32,.6);display:inline-grid;place-items:center;cursor:pointer;box-shadow:none}
.office-dashboard-heading-icon-r027:hover{background:var(--office-hover)}
.office-dashboard-heading-icon-r027 .office-svg-icon{width:13px;height:13px}
.office-dashboard-heading-icon-r027.is-active{color:var(--office-primary,#1683e7)}

/* Reduced project cards keep only identity + the compact action buttons and no internal divider. */
.office-project-card.is-reduced-r027 .office-project-card-head{min-height:82px;padding-bottom:6px}
.office-project-card.is-reduced-r027 .office-project-identity{min-height:52px}
.office-project-card.is-reduced-r027 .office-project-actions-row{min-height:42px;padding:3px 12px 8px;border-top:0!important;justify-content:flex-end}
.office-project-card.is-reduced-r027 .office-project-actions-row .office-project-diary-button,
.office-project-card.is-reduced-r027 .office-project-actions-row .office-pin-button,
.office-project-card.is-reduced-r027 .office-project-actions-row .office-project-card-menu-r025{flex:0 0 auto}

/* r027 C1-C6 final CSS / responsive alignment. */
/* Offer edit header: compact number/date/status first row, full-width description below. */
.office-offer-head-grid-r021{
  grid-template-columns:minmax(210px,260px) minmax(210px,260px) minmax(220px,300px) minmax(0,1fr)!important;
  grid-template-areas:"number date status ." "title title title title";
  align-items:start;
}
.office-offer-head-number-r027{grid-area:number}.office-offer-head-date-r027{grid-area:date}.office-offer-head-status-r027{grid-area:status}.office-offer-head-title-r027{grid-area:title}
.office-offer-save-message-r027{margin:0 0 14px}
.office-number-suggestion-r027{animation:office-number-suggestion-r027 .7s ease-out 1;border-color:color-mix(in srgb,var(--office-primary) 55%,var(--office-border-strong))!important}
@keyframes office-number-suggestion-r027{0%{box-shadow:0 0 0 0 color-mix(in srgb,var(--office-primary) 30%,transparent);background:var(--office-primary-soft)}100%{box-shadow:0 0 0 7px transparent;background:var(--office-surface)}}
@media(prefers-reduced-motion:reduce){.office-number-suggestion-r027{animation:none}}

/* Offer / invoice attachment rows: stable file chip geometry, no clipping at the dialog footer. */
.office-offer-attachments-r027{display:grid;gap:12px}
.office-offer-attachment-upload-r027{width:max-content;max-width:100%}
.office-offer-attachment-list-r027,.office-invoice-attachment-drafts-r025,.office-offer-attachment-drafts-r025{display:grid;gap:7px;margin-top:8px}
.office-offer-attachment-row-r027,.office-invoice-attachment-drafts-r025>div,.office-offer-attachment-drafts-r025>div{
  min-width:0;min-height:42px;display:grid;grid-template-columns:22px minmax(0,1fr) auto auto;align-items:center;gap:9px;
  padding:6px 8px;border:1px solid var(--office-border);border-radius:9px;background:var(--office-surface)
}
.office-invoice-attachment-drafts-r025>div,.office-offer-attachment-drafts-r025>div{grid-template-columns:22px minmax(0,1fr) auto}
.office-offer-attachment-row-r027>.office-svg-icon,.office-invoice-attachment-drafts-r025>div>.office-svg-icon,.office-offer-attachment-drafts-r025>div>.office-svg-icon{width:18px;height:18px;color:var(--office-text-muted)}
.office-offer-attachment-name-r027,.office-invoice-attachment-drafts-r025>div>span:nth-child(2),.office-offer-attachment-drafts-r025>div>span:nth-child(2){min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.office-offer-attachment-row-r027 .office-icon-button,.office-invoice-attachment-drafts-r025 .office-icon-button,.office-offer-attachment-drafts-r025 .office-icon-button{width:30px;height:30px;min-width:30px;min-height:30px;padding:0}
.office-offer-attachment-empty-r027{margin-top:2px}
.office-offer-list-total-r027{display:flex;justify-content:flex-end;align-items:center;gap:20px;padding:12px 14px 0;margin-top:2px;border-top:1px solid var(--office-border);font-variant-numeric:tabular-nums}
.office-offer-list-total-r027 span{color:var(--office-text-muted);font-size:.82rem}.office-offer-list-total-r027 strong{white-space:nowrap;font-size:1rem}
.office-money-nowrap-r027{white-space:nowrap!important}
.office-import-dialog-message-r027{margin:0 0 14px;position:relative;z-index:1}

/* New-offer routing dialog. */
.office-new-offer-choice-r027{width:min(640px,calc(100vw - 32px))}
.office-new-offer-choice-actions-r027{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.office-new-offer-choice-actions-r027 .office-button{min-height:44px;justify-content:center}
.office-new-offer-project-r027{margin-top:14px}

/* Quick Capture pending items: audio is a responsive row, never a thumbnail-sized native player. */
.office-qc-pending-r027{display:flex;align-items:flex-start;gap:8px;flex-wrap:wrap;min-width:0}
.office-qc-voice-preview-r027{flex:1 1 420px;max-width:640px;min-width:min(100%,320px);display:grid;grid-template-columns:34px minmax(0,1fr) 32px;gap:10px;align-items:start;padding:10px 11px;border:1px solid var(--office-border);border-radius:10px;background:var(--office-surface-soft);box-sizing:border-box}
.office-qc-voice-preview-r027>.office-svg-icon{width:20px;height:20px;margin-top:2px;color:var(--office-text-muted)}
.office-qc-voice-preview-r027>div{min-width:0;display:grid;gap:3px}.office-qc-voice-preview-r027 strong{font-size:13px}.office-qc-voice-preview-r027 small{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--office-text-muted);font-size:11px}
.office-qc-voice-preview-r027>.office-icon-button{width:30px;height:30px;min-width:30px;min-height:30px;padding:0}
.office-qc-audio-preview-r027{display:block;width:100%;max-width:480px;height:34px;margin-top:3px}

/* Hospitality: Office textarea master + one participant per line. */
.office-hospitality-occasion-input-r026,.office-document-share-message-r027{width:100%!important;min-height:104px!important;padding:10px 11px!important;border:1px solid var(--office-border-strong)!important;border-radius:8px!important;background:var(--office-surface)!important;color:var(--office-text)!important;font:inherit!important;font-size:14px!important;font-weight:400!important;line-height:1.45!important;resize:none!important;box-sizing:border-box!important}
.office-hospitality-occasion-input-r026:focus,.office-document-share-message-r027:focus{border-color:var(--office-primary)!important;outline:2px solid color-mix(in srgb,var(--office-primary) 18%,transparent)!important;outline-offset:0!important}
.office-hospitality-participant-lines-r027{display:grid;gap:5px}.office-hospitality-participant-lines-r027>span{display:block;min-width:0;overflow-wrap:anywhere}

/* Address book: stable toolbars, master checkboxes, scrollable contact draft list and left-side edit actions. */
.office-contacts-toolbar-r027{gap:10px;align-items:center;flex-wrap:wrap}
.office-contacts-toolbar-r027>.office-search-control,.office-contacts-toolbar-r027>.office-user-search-control{flex:1 1 280px;min-width:220px}
.office-contacts-toolbar-actions-r027{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-left:auto}
.office-master-checkbox-r027{-webkit-appearance:none;appearance:none;width:18px!important;height:18px!important;min-width:18px!important;min-height:18px!important;margin:0!important;padding:0!important;border:1px solid var(--office-border-strong)!important;border-radius:4px!important;background:#fff center/13px 13px no-repeat!important;box-shadow:none!important;cursor:pointer!important}
.office-master-checkbox-r027:checked{background-color:var(--office-primary)!important;border-color:var(--office-primary)!important;background-image:url('/icons/office/actions/check-white.svg')!important;background-repeat:no-repeat!important;background-position:center!important}
.office-bidder-trades-r025 .office-check-field{min-height:32px;display:inline-flex;align-items:center;gap:8px;padding:3px 0}
.office-company-contact-heading-r019>div{display:grid;gap:3px;min-width:0}.office-company-contact-heading-r019>div>small{display:block;color:var(--office-text-muted);font-weight:400}
.office-company-contact-drafts-r025{display:grid;gap:7px;max-height:260px;overflow-y:auto;overscroll-behavior:contain;padding-right:3px}
.office-company-contact-draft-r025{min-width:0}.office-company-contact-draft-r025>div:first-child{min-width:0}.office-company-contact-draft-r025>div:first-child>span{display:block;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.office-dialog-footer-leading-r027{display:flex;align-items:center;gap:8px;margin-right:auto;flex-wrap:wrap}
.office-worktime-compliance-setting-r027{display:grid;gap:5px;padding-top:4px}.office-worktime-compliance-setting-r027>small{color:var(--office-text-muted);font-size:12px;line-height:1.4}

/* Document sharing: keep status/result areas readable at every dialog width. */
.office-document-share-dialog-r025 .office-dialog-body{overflow-x:hidden}
.office-document-share-created-card-r027 input{min-width:0}

@media(max-width:1100px){
  .office-offer-head-grid-r021{grid-template-columns:minmax(190px,1fr) minmax(190px,1fr) minmax(210px,1fr)!important;grid-template-areas:"number date status" "title title title"}
}
@media(max-width:760px){
  .office-offer-head-grid-r021{grid-template-columns:1fr 1fr!important;grid-template-areas:"number date" "status status" "title title";gap:10px!important}
  .office-offer-save-message-r027{margin-bottom:10px}
  .office-offer-attachment-row-r027{grid-template-columns:20px minmax(0,1fr) auto auto;padding:6px}
  .office-invoice-attachment-drafts-r025>div,.office-offer-attachment-drafts-r025>div{grid-template-columns:20px minmax(0,1fr) auto}
  .office-offer-list-total-r027{justify-content:space-between;padding-inline:4px;gap:10px}
  .office-new-offer-choice-actions-r027{grid-template-columns:1fr}
  .office-contacts-toolbar-r027{align-items:stretch}.office-contacts-toolbar-r027>.office-search-control,.office-contacts-toolbar-r027>.office-user-search-control{min-width:0;width:100%;flex-basis:100%}.office-contacts-toolbar-actions-r027{width:100%;margin-left:0}.office-contacts-toolbar-actions-r027 .office-button{flex:1 1 auto;justify-content:center}
  .office-dialog-footer-leading-r027{width:100%;margin-right:0}.office-dialog-footer:has(.office-dialog-footer-leading-r027){flex-wrap:wrap}.office-dialog-footer:has(.office-dialog-footer-leading-r027)>.office-button{flex:1 1 auto;justify-content:center}
}
@media(max-width:560px){
  .office-offer-head-grid-r021{grid-template-columns:1fr!important;grid-template-areas:"number" "date" "status" "title"}
  .office-qc-voice-preview-r027{min-width:0;flex-basis:100%;grid-template-columns:28px minmax(0,1fr) 30px;padding:9px}
  .office-qc-audio-preview-r027{height:32px;max-width:100%}
  .office-company-contact-drafts-r025{max-height:220px}
  .office-dialog-footer-leading-r027 .office-button{flex:1 1 120px;justify-content:center}
}
.office-contacts-message-r027{margin:0 0 12px}

/* r027 BBS business-document print template preview */
.office-print-preview-grid-r027{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;align-items:start}
.office-print-preview-item-r027{display:grid;gap:8px;min-width:0}.office-print-preview-item-r027>strong{font-size:13px;color:var(--office-text-muted);font-weight:600}
.office-print-preview-grid-r027 .office-print-preview-sheet{width:100%;max-width:560px}
.office-print-preview-sample.is-following-r027{top:12%}
@media(max-width:900px){.office-print-preview-grid-r027{grid-template-columns:1fr}}

/* r027 BBS Angebot/Rechnung PDF preview */
.office-offer-pdf-dialog-r027,.office-invoice-preview-dialog-r027{width:calc(100vw - 24px);max-width:1680px;height:calc(100vh - 24px);max-height:calc(100vh - 24px);overflow:hidden;display:flex;flex-direction:column}
.office-offer-pdf-dialog-r027 .office-dialog-body,.office-invoice-preview-dialog-r027 .office-dialog-body{min-height:0;flex:1;overflow:hidden}
.office-offer-pdf-dialog-r027 .office-offer-pdf-layout-r016{grid-template-columns:minmax(0,1.45fr) minmax(360px,.55fr);min-height:0;height:100%}
.office-offer-pdf-dialog-r027 .office-offer-pdf-preview-r016{display:flex;flex-direction:column;min-height:0;background:#eef1f4;border:1px solid var(--office-border);border-radius:12px;overflow:hidden}
.office-offer-pdf-dialog-r027 .office-offer-pdf-preview-r016 object{flex:1;height:auto;min-height:0;border:0;border-radius:0;background:#fff}
.office-offer-pdf-dialog-r027 .office-offer-pdf-settings-r016,.office-invoice-preview-dialog-r027 .office-document-mail-form-r019{overflow:auto;padding-right:4px}
.office-pdf-mode-switch-r027{display:flex;align-items:center;gap:8px;margin:0;padding:8px 10px;background:#eef1f4;border-bottom:1px solid var(--office-border)}
.office-pdf-mode-button{appearance:none;border:1px solid var(--office-border);background:#fff;border-radius:9px;padding:8px 14px;font:inherit;font-weight:700;color:var(--office-text);cursor:pointer}
.office-pdf-mode-button.is-active{background:var(--office-accent-strong,#5b5b5b);border-color:var(--office-accent-strong,#5b5b5b);color:#fff}
.office-invoice-preview-dialog-r027 .office-invoice-preview-mail-layout-r027{grid-template-columns:minmax(0,1.45fr) minmax(360px,.55fr);gap:16px;height:100%;min-height:0}
.office-invoice-preview-dialog-r027 .office-document-mail-pdf-r019{height:100%;min-height:0;background:#eef1f4;border:1px solid var(--office-border);border-radius:12px;overflow:hidden}
.office-invoice-preview-dialog-r027 .office-document-mail-pdf-r019 object{height:100%;min-height:0;border:0;border-radius:0;background:#fff}
@media(max-width:980px){.office-offer-pdf-dialog-r027,.office-invoice-preview-dialog-r027{width:calc(100vw - 12px);height:calc(100vh - 12px);max-height:calc(100vh - 12px)}.office-offer-pdf-dialog-r027 .office-offer-pdf-layout-r016,.office-invoice-preview-dialog-r027 .office-invoice-preview-mail-layout-r027{grid-template-columns:1fr;overflow:auto}.office-offer-pdf-dialog-r027 .office-offer-pdf-preview-r016,.office-invoice-preview-dialog-r027 .office-document-mail-pdf-r019{min-height:52vh}.office-offer-pdf-dialog-r027 .office-offer-pdf-settings-r016,.office-invoice-preview-dialog-r027 .office-document-mail-form-r019{overflow:visible}}


/* r027 final correction: Enter/Tab pill matches the 32px LV toolbar master exactly. */
.office-boq-toolbar-v2 .office-ava-keymode-switch-r025{
  display:inline-flex!important;align-items:center!important;height:32px!important;min-height:32px!important;
  margin:0!important;border:1px solid var(--office-border)!important;border-radius:8px!important;
  overflow:hidden!important;background:#fff!important;box-sizing:border-box!important;flex:0 0 auto!important
}
.office-boq-toolbar-v2 .office-ava-keymode-switch-r025 .office-ava-keymode-option-r025{
  width:32px!important;min-width:32px!important;height:30px!important;min-height:30px!important;padding:0!important;
  border:0!important;border-radius:0!important;background:#fff!important;color:var(--office-text-muted)!important;box-shadow:none!important
}
.office-boq-toolbar-v2 .office-ava-keymode-switch-r025 .office-ava-keymode-option-r025+.office-ava-keymode-option-r025{border-left:1px solid var(--office-border)!important}
.office-boq-toolbar-v2 .office-ava-keymode-switch-r025 .office-ava-keymode-option-r025 .office-svg-icon{width:13px!important;height:13px!important}
.office-boq-toolbar-v2 .office-ava-keymode-switch-r025 .office-ava-keymode-option-r025.is-selected{color:var(--office-text)!important;box-shadow:inset 0 -2px 0 var(--office-primary,#1683e7)!important}

/* r027 final correction: LV context-menu labels and colour choices share the same content axis as menu text. */
.office-boq-row-menu .office-menu-row.has-submenu{padding-left:7px!important}
.office-boq-row-menu .office-boq-menu-label{margin:3px 0!important;padding:7px 7px 4px 28px!important;box-sizing:border-box!important}
.office-boq-row-menu .office-boq-menu-colors{padding:5px 7px 8px 28px!important;gap:7px!important;box-sizing:border-box!important}

/* r027 final correction: the fixed LV detail sheet always owns the top stacking layer. */
.office-boq-detail-scrim{z-index:2147482998!important}
.office-boq-detail-sidebar,.office-boq-detail-sidebar-v2{z-index:2147482999!important}
.office-boq-ag-workspace.has-detail-sidebar-r027 .office-table-toolbar,
.office-boq-ag-workspace.has-detail-sidebar-r027 .office-ava-toolbar,
.office-boq-ag-workspace.has-detail-sidebar-r027 .office-ava-toolbar-controls{z-index:0!important}


/* r027 final: project construction activation and cockpit alignment. */
@media(min-width:821px){.office-project-summary-list-r020>div.office-project-payment-term-r027{border-bottom:1px solid var(--office-border)!important}}
.office-construction-activate-r027.is-active:disabled{opacity:1!important;background:var(--office-surface-soft)!important;color:var(--office-text-muted)!important;border-color:var(--office-border)!important;cursor:default!important}
.office-project-diary-button.is-disabled-r027{display:inline-grid;place-items:center;color:var(--office-text-muted)!important;background:var(--office-surface-soft)!important;border-color:var(--office-border)!important;opacity:.48;cursor:default;pointer-events:none}

/* ========================================================================== */
/* r028 – AVA/LV hierarchy colors, semantic rows and depth controls            */
/* ========================================================================== */
.office-boq-level-adders-r028,
.office-boq-depth-controls-r028{
    display:inline-flex;
    align-items:center;
    gap:4px;
}
.office-boq-level-adders-r028{
    padding-right:2px;
}
.office-boq-level-add-r028{
    --office-boq-level-color:#7d8792;
    color:color-mix(in srgb,var(--office-boq-level-color) 82%,#26323d);
    border-color:color-mix(in srgb,var(--office-boq-level-color) 52%,var(--office-border));
    background:color-mix(in srgb,var(--office-boq-level-color) 15%,#fff);
}
.office-boq-level-add-r028:hover,
.office-boq-level-add-r028:focus-visible{
    color:color-mix(in srgb,var(--office-boq-level-color) 88%,#17212b);
    border-color:color-mix(in srgb,var(--office-boq-level-color) 68%,var(--office-border));
    background:color-mix(in srgb,var(--office-boq-level-color) 24%,#fff);
}
.office-boq-level-add-r028 .office-svg-icon{
    width:16px!important;
    height:16px!important;
}
.office-boq-depth-controls-r028{
    height:32px;
    padding:2px;
    border:1px solid var(--office-border);
    border-radius:8px;
    background:var(--office-surface-soft,#f6f7f8);
}
.office-boq-depth-button-r028{
    width:27px;
    height:26px;
    min-width:27px;
    padding:0;
    border:0;
    border-radius:6px;
    display:grid;
    place-items:center;
    background:transparent;
    color:#5a6470;
    font:inherit;
    font-size:12px;
    font-weight:650;
    cursor:pointer;
}
.office-boq-depth-button-r028:hover{
    background:#fff;
    color:var(--office-text);
}
.office-boq-depth-button-r028.is-active{
    background:#fff;
    color:var(--office-text);
    box-shadow:0 1px 3px rgba(24,35,46,.12);
}
.office-boq-grid-v2 .office-ag-folder-icon-r028{
    width:16px;
    height:16px;
    flex:0 0 16px;
    color:var(--office-boq-level-color,#7d8792);
}
.office-boq-grid-v2 .office-ag-semantic-icon-r028{
    width:14px;
    height:14px;
    flex:0 0 14px;
    color:#667685;
}
.office-boq-grid-v2 .office-ag-hierarchy-v2.is-preliminary-r028 .office-ag-semantic-icon-r028{color:#71889d}
.office-boq-grid-v2 .office-ag-hierarchy-v2.is-note-r028 .office-ag-semantic-icon-r028{color:#5b9675}
.office-boq-grid-v2 .office-ag-hierarchy-v2.is-execution-r028 .office-ag-semantic-icon-r028{color:#5f8eb7}

/* AVAPLAN-nahe Pastelltöne: Textzeilen bleiben fachlich klar, aber nicht dominant. */
.office-boq-grid-v2 .office-ag-row-preliminaryremark:not(.is-selected):not(.ag-row-selected){background:#f1f4f7}
.office-boq-grid-v2 .office-ag-row-note:not(.is-selected):not(.ag-row-selected){background:#eef8f2}
.office-boq-grid-v2 .office-ag-row-executiondescription:not(.is-selected):not(.ag-row-selected){background:#eef5fb}
.office-boq-grid-v2 .office-ag-row-preliminaryremark .office-ag-title,
.office-boq-grid-v2 .office-ag-row-note .office-ag-title,
.office-boq-grid-v2 .office-ag-row-executiondescription .office-ag-title{
    font-weight:600;
}

/* Tabellenicons sind bereits im Ruhezustand klar lesbar; Hover bleibt nur Verstärkung. */
.office-boq-grid-v2 .office-ag-drag-icon{
    opacity:.78;
    color:#66717d;
}
.office-boq-grid-v2 .office-ag-chevron{
    color:#66717d;
}
.office-boq-grid-v2 .office-ag-formula-indicator{
    color:#66717d;
}
.office-boq-grid-v2 .office-ag-more-button{
    color:#6a7480;
}

@media(max-width:900px){
    .office-boq-depth-controls-r028{order:20}
    .office-boq-level-adders-r028{max-width:100%;overflow-x:auto}
}

/* Semantische LV-Texttypen auch in der Einfüge-Toolbar eindeutig kennzeichnen. */
.office-ava-toolbar [data-office-boq-command="add-preliminary"]{
    color:#71889d;
    background:#f1f4f7;
}
.office-ava-toolbar [data-office-boq-command="add-note"]{
    color:#5b9675;
    background:#eef8f2;
}
.office-ava-toolbar [data-office-boq-command="add-execution"]{
    color:#5f8eb7;
    background:#eef5fb;
}
.office-ava-toolbar [data-office-boq-command="add-preliminary"]:hover,
.office-ava-toolbar [data-office-boq-command="add-note"]:hover,
.office-ava-toolbar [data-office-boq-command="add-execution"]:hover{
    color:var(--office-text);
    border-color:var(--office-border-strong);
}

/* r028 – LV structure / ordinal-number dialog and issue marker consistency */
.office-boq-structure-dialog-r028{
    width:min(1080px,calc(100vw - 40px));
    max-height:min(860px,calc(100vh - 32px));
    display:flex;
    flex-direction:column;
    overflow:hidden;
}
.office-boq-structure-dialog-r028>.office-dialog-header,
.office-boq-structure-dialog-r028>.office-dialog-footer{flex:0 0 auto}
.office-boq-structure-dialog-body-r028{overflow:auto;display:grid;gap:20px;min-height:0}
.office-boq-structure-top-r028{display:grid;grid-template-columns:minmax(220px,320px) minmax(180px,240px);gap:16px;align-items:end}
.office-boq-numbering-table-r028{border:1px solid var(--office-border);border-radius:var(--office-radius-lg);overflow:hidden;background:var(--office-surface)}
.office-boq-numbering-head-r028,
.office-boq-numbering-row-r028{display:grid;grid-template-columns:minmax(150px,1.15fr) minmax(220px,1.45fr) repeat(3,minmax(110px,.8fr));align-items:center;gap:12px;padding:10px 14px}
.office-boq-numbering-head-r028{background:var(--office-surface-soft);border-bottom:1px solid var(--office-border);color:var(--office-text-muted);font-size:12px;font-weight:700}
.office-boq-numbering-row-r028{border-bottom:1px solid var(--office-border)}
.office-boq-numbering-row-r028:last-child{border-bottom:0}
.office-boq-numbering-row-r028>strong{display:flex;align-items:center;gap:9px;min-width:0}
.office-boq-numbering-row-r028 input:not([type=color]),
.office-boq-numbering-row-r028 select{width:100%;min-width:0}
.office-boq-level-swatch-r028,.office-boq-position-swatch-r028{width:22px;height:22px;flex:0 0 22px;border-radius:5px;border:1px solid color-mix(in srgb,var(--office-text) 18%,transparent)}
.office-boq-position-swatch-r028{background:#eef2f5}
.office-boq-color-edit-r028{display:grid;grid-template-columns:40px minmax(0,1fr);gap:8px;align-items:center}
.office-boq-color-edit-r028 input[type=color]{width:40px;height:38px;padding:3px;border:1px solid var(--office-border);border-radius:8px;background:var(--office-surface);cursor:pointer}
.office-boq-muted-cell-r028{color:var(--office-text-muted)}
.office-boq-mask-panel-r028{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));border:1px solid var(--office-border);border-radius:var(--office-radius-lg);overflow:hidden}
.office-boq-mask-panel-r028>div{display:grid;gap:4px;padding:14px 16px;border-right:1px solid var(--office-border);background:var(--office-surface)}
.office-boq-mask-panel-r028>div:last-child{border-right:0}
.office-boq-mask-panel-r028 span,.office-boq-mask-panel-r028 small{color:var(--office-text-muted)}
.office-boq-mask-panel-r028 strong{font-variant-numeric:tabular-nums}
.office-boq-mask-panel-r028 .is-ok-r028 strong{color:#287b43}
.office-boq-mask-panel-r028 .is-warning-r028{background:#fff8e8}.office-boq-mask-panel-r028 .is-warning-r028 strong{color:#9a6200}
.office-boq-project-default-r028{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:14px 16px}
.office-boq-project-default-r028>div{display:grid;gap:4px}.office-boq-project-default-r028>div>span{color:var(--office-text-muted);font-size:12px}
.office-boq-project-colors-r028{display:flex;gap:5px;margin-top:3px}.office-boq-project-colors-r028 i{display:block;width:18px;height:18px;border-radius:4px;border:1px solid color-mix(in srgb,var(--office-text) 16%,transparent)}
.office-boq-depth-choices-r028{grid-template-columns:repeat(3,minmax(0,1fr))!important}.office-boq-empty-depth-r028{display:grid;gap:10px}.office-boq-empty-depth-r028 h3{margin:0;font-size:14px}
/* The issue icon must remain fully visible: no circular container may clip the SVG. */
.office-boq-grid-v2 .office-ag-warning{width:26px!important;height:24px!important;margin:auto!important;background:transparent!important;border:0!important;border-radius:0!important;overflow:visible!important;color:var(--office-warning,#b7791f)!important}
.office-boq-grid-v2 .office-ag-warning .office-svg-icon{width:18px!important;height:18px!important;overflow:visible!important}
@media(max-width:820px){
    .office-boq-structure-dialog-r028{width:min(100% - 20px,1080px);max-height:calc(100vh - 20px)}
    .office-boq-structure-top-r028,.office-boq-mask-panel-r028{grid-template-columns:1fr}
    .office-boq-mask-panel-r028>div{border-right:0;border-bottom:1px solid var(--office-border)}.office-boq-mask-panel-r028>div:last-child{border-bottom:0}
    .office-boq-numbering-table-r028{overflow-x:auto}
    .office-boq-numbering-head-r028,.office-boq-numbering-row-r028{min-width:800px}
    .office-boq-project-default-r028{align-items:flex-start;flex-direction:column}
    .office-boq-depth-choices-r028{grid-template-columns:repeat(2,minmax(0,1fr))!important}
}

/* r028 – stable Office dialog/date/select geometry for absence and time editors */
.office-absence-dialog{width:min(700px,calc(100vw - 24px));max-height:min(760px,calc(100dvh - 24px));overflow:hidden}
.office-absence-dialog>.office-dialog-body{overflow:auto;min-height:0}
.office-toggle-r028{min-height:42px;display:inline-flex;align-items:center;gap:9px;cursor:pointer;color:var(--office-text-secondary)}
.office-toggle-r028>input{position:absolute;opacity:0;pointer-events:none}
.office-toggle-r028>span{width:34px;height:20px;border-radius:999px;background:#cfd5da;position:relative;flex:none;transition:background .15s ease}
.office-toggle-r028>span:after{content:"";position:absolute;top:3px;left:3px;width:14px;height:14px;border-radius:50%;background:#fff;box-shadow:0 1px 2px rgba(0,0,0,.16);transition:transform .15s ease}
.office-toggle-r028>input:checked+span{background:var(--office-primary)}
.office-toggle-r028>input:checked+span:after{transform:translateX(14px)}
.office-toggle-r028>input:focus-visible+span{outline:2px solid color-mix(in srgb,var(--office-primary) 35%,transparent);outline-offset:2px}
.office-time-travel-details .office-details-chevron{width:13px!important;height:13px!important;opacity:.62}
.office-time-travel-details>summary{align-items:center}
.office-time-entry-dialog .office-checkbox-field{align-self:end;min-height:44px;margin:0;padding-bottom:2px}

/* r028 – live company duplicate warning */
.office-company-quick-dialog{max-height:min(860px,calc(100dvh - 24px));overflow:hidden}
.office-company-quick-dialog>.office-dialog-body,.office-company-quick-dialog form>.office-dialog-body{overflow:auto;min-height:0}
.office-company-duplicate-warning-r028{margin-top:6px;padding:9px 11px;border:1px solid color-mix(in srgb,#c78300 36%,var(--office-border));border-radius:9px;background:color-mix(in srgb,#f6c85f 17%,var(--office-surface));display:flex;align-items:flex-start;gap:8px;color:var(--office-text)}
.office-company-duplicate-warning-r028>.office-svg-icon{width:17px;height:17px;flex:none;color:#a76500;margin-top:1px}
.office-company-duplicate-warning-r028>div{display:grid;gap:2px}.office-company-duplicate-warning-r028 strong{font-size:13px}.office-company-duplicate-warning-r028 span{font-size:12px;line-height:1.35;color:var(--office-text-secondary)}


/* r028 consolidation – local UI corrections from correction loop. */
.office-offer-list-toolbar-r018{border-bottom:0!important}
.office-offer-list-total-r027{border-top:0!important}
@media(min-width:1101px){
  .office-project-summary-list-r020>div{border-top:0!important;border-bottom:1px solid var(--office-border)!important}
  .office-project-summary-list-r020>div:nth-last-child(-n+2){border-bottom:0!important}
  .office-project-summary-list-r020>div.office-project-payment-term-r027{border-bottom:1px solid var(--office-border)!important}
}
.office-project-kpi-r018>strong{font-size:1.12rem!important;letter-spacing:-.015em!important}

/* r028 – project contracts: true 1:n list + Office detail/editor layout. */
.office-project-contract-panel-r028{gap:16px}
.office-contract-list-r028{min-width:0}
.office-contract-list-r028 .office-table tr.is-selected-r028 td{background:color-mix(in srgb,var(--office-primary) 7%,var(--office-surface))}
.office-contract-list-r028 .office-table td{vertical-align:middle}
.office-contract-list-r028 .office-table td:nth-child(2),.office-contract-list-r028 .office-table td:nth-child(7){font-variant-numeric:tabular-nums;white-space:nowrap}
.office-contract-detail-r028{display:grid;gap:0;border-top:1px solid var(--office-border);padding-top:16px}
.office-contract-detail-head-r028{display:flex;align-items:flex-start;justify-content:space-between;gap:18px;padding:0 2px 14px}
.office-contract-detail-head-r028 h3{margin:3px 0 2px;font-size:1.12rem}.office-contract-detail-head-r028 p{margin:0;color:var(--office-text-muted);font-size:.82rem}
.office-contract-data-grid-r028{border-top:1px solid var(--office-border);border-bottom:1px solid var(--office-border)}
.office-contract-detail-copy-r028{display:grid;grid-template-columns:1.35fr 1fr;gap:28px;padding:16px 2px 2px}
.office-contract-detail-copy-r028>div{display:grid;align-content:start;gap:7px;min-width:0}.office-contract-detail-copy-r028>div>span{font-size:.78rem;font-weight:700;color:var(--office-text-muted)}
.office-contract-detail-copy-r028 p{margin:0;white-space:pre-wrap;line-height:1.5}.office-contract-detail-copy-r028 .is-empty-r028{color:var(--office-text-muted)}
.office-contract-offer-pills-r019>a{display:inline-flex;padding:6px 10px;border:1px solid var(--office-border);border-radius:999px;background:var(--office-surface-soft);font-size:.82rem;color:var(--office-primary);text-decoration:none}.office-contract-offer-pills-r019>a:hover{text-decoration:underline}
.office-contract-editor-attachments-r028 .office-contract-attachment-list-r019 article.is-pending-r028{background:color-mix(in srgb,var(--office-primary) 4%,var(--office-surface))}
.office-contract-editor-attachments-r028 .office-empty-inline{margin:0}
.office-contract-core-form-r028 .office-money-input-r019{width:100%}
@media(max-width:1050px){.office-contract-list-r028{overflow-x:auto}.office-contract-list-r028 .office-table{min-width:1050px}.office-contract-detail-copy-r028{grid-template-columns:1fr}}
@media(max-width:720px){.office-contract-detail-head-r028{display:grid}.office-contract-detail-head-r028 .office-inline-actions{justify-content:flex-start;flex-wrap:wrap}.office-contract-detail-copy-r028{padding-inline:0}}
.office-project-contract-panel-r028 .office-contract-subsection-r019{border:0;border-top:1px solid var(--office-border);border-radius:0;background:transparent;padding:16px 0 0}
.office-project-contract-panel-r028 .office-contract-editor-r023>.office-form-grid{border:0;border-top:1px solid var(--office-border);border-radius:0;background:transparent;padding:16px 0 0}

/* r028: central role/trade colors and accessible Office color picker */
.office-data-pill.is-definition-color-r028{
    background:var(--office-pill-bg)!important;
    color:var(--office-pill-fg)!important;
    border-color:color-mix(in srgb,var(--office-pill-bg) 70%,#111827 30%)!important;
}
.office-definition-color-r028{min-width:280px;max-width:360px}
.office-color-picker-r028{display:grid;gap:8px;min-width:0}
.office-color-picker-controls-r028{display:flex;align-items:center;gap:8px}
.office-color-native-r028{position:relative;display:inline-grid;place-items:center;width:42px;height:36px;border:1px solid var(--office-border);border-radius:9px;background:var(--office-surface);overflow:hidden;cursor:pointer;flex:0 0 42px}
.office-color-native-r028 input{position:absolute;inset:0;width:100%;height:100%;opacity:0;cursor:pointer}
.office-color-preview-r028{width:24px;height:24px;border-radius:5px;border:1px solid color-mix(in srgb,#111827 24%,transparent)}
.office-color-hex-r028{flex:1;min-width:0}.office-color-hex-r028 .office-input{height:36px;padding:6px 10px;font-family:ui-monospace,SFMono-Regular,Consolas,monospace;text-transform:uppercase}
.office-color-palette-r028{display:grid;grid-template-columns:repeat(9,22px);gap:5px;max-width:238px}
.office-color-swatch-r028{width:22px;height:22px;padding:2px;border:1px solid var(--office-border);border-radius:5px;background:var(--office-surface);display:grid;place-items:center;cursor:pointer}
.office-color-swatch-r028>span{width:14px;height:14px;border-radius:3px;background:var(--office-swatch);border:1px solid color-mix(in srgb,#111827 16%,transparent)}
.office-color-swatch-r028:hover,.office-color-swatch-r028.is-selected{border-color:var(--office-primary);box-shadow:0 0 0 1px color-mix(in srgb,var(--office-primary) 35%,transparent)}
@media(max-width:900px){.office-definition-color-r028{min-width:0;max-width:none;width:100%}.office-color-palette-r028{grid-template-columns:repeat(9,20px)}.office-color-swatch-r028{width:20px;height:20px}}
.office-project-contact-settings-r011{max-width:1240px}
.office-definition-card-r011{max-width:1180px}
.office-settings-definition-row-r011{grid-template-columns:34px minmax(240px,1fr) minmax(280px,360px) auto auto;max-width:1140px;align-items:start}
@media(max-width:1000px){.office-settings-definition-row-r011{grid-template-columns:34px minmax(220px,1fr) minmax(240px,1fr);}.office-settings-definition-row-r011>.office-check-field,.office-settings-definition-row-r011>.office-button{grid-column:auto}.office-settings-definition-row-r011.is-new{grid-template-columns:34px minmax(220px,1fr) minmax(240px,1fr)}}

/* ========================================================================== */
/* r028 buildfix 2 – LV toolbar/readability corrections                       */
/* ========================================================================== */
/* Hierarchy buttons: the button surface carries the level color; the icon stays neutral. */
.office-boq-ag-workspace .office-boq-level-add-r028{
    color:#4d5965!important;
    border-color:color-mix(in srgb,var(--office-boq-level-color) 64%,#c8d0d7)!important;
    background:color-mix(in srgb,var(--office-boq-level-color) 38%,#fff)!important;
    box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--office-boq-level-color) 14%,transparent);
}
.office-boq-ag-workspace .office-boq-level-add-r028 .office-svg-icon{color:#4d5965!important}
.office-boq-ag-workspace .office-boq-level-add-r028:hover,
.office-boq-ag-workspace .office-boq-level-add-r028:focus-visible{
    background:color-mix(in srgb,var(--office-boq-level-color) 50%,#fff)!important;
    border-color:color-mix(in srgb,var(--office-boq-level-color) 78%,#aeb8c2)!important;
}
/* Semantic insert actions: pastel background, neutral icon as requested. */
.office-boq-ag-workspace .office-ava-toolbar [data-office-boq-command="add-preliminary"]{
    color:#52606c!important;background:#e8eef3!important;border-color:#cad6df!important;
}
.office-boq-ag-workspace .office-ava-toolbar [data-office-boq-command="add-note"]{
    color:#52606c!important;background:#e4f3e9!important;border-color:#c4ddcc!important;
}
.office-boq-ag-workspace .office-ava-toolbar [data-office-boq-command="add-execution"]{
    color:#52606c!important;background:#e5eff8!important;border-color:#c5d8e9!important;
}
.office-boq-ag-workspace .office-ava-toolbar [data-office-boq-command="add-preliminary"] .office-svg-icon,
.office-boq-ag-workspace .office-ava-toolbar [data-office-boq-command="add-note"] .office-svg-icon,
.office-boq-ag-workspace .office-ava-toolbar [data-office-boq-command="add-execution"] .office-svg-icon{color:#52606c!important}

/* Depth control belongs immediately left of search; search is intentionally more compact. */
.office-boq-ag-workspace .office-ava-toolbar-controls.is-right{gap:8px!important}
.office-boq-ag-workspace .office-ava-search-r024{min-width:240px!important;width:min(260px,24vw)!important}
.office-boq-ag-workspace .office-boq-depth-controls-r028{flex:0 0 auto}

/* Import/Export are calmer only in the LV toolbar; no global button typography change. */
.office-boq-ag-workspace .office-ava-toolbar-button{font-weight:500!important}

/* Toolbar controls need enough contrast in resting state. */
.office-boq-ag-workspace .office-ava-toolbar .office-icon-button,
.office-boq-ag-workspace .office-ava-toolbar .office-button{
    border-color:#ccd4dc;
}
.office-boq-ag-workspace .office-ava-toolbar .office-icon-button:not(.office-boq-level-add-r028){color:#56616c}

/* Row selection must not overpower hierarchy/semantic colors. */
.office-boq-grid-v2 .ag-row-selected,
.office-boq-grid-v2 .ag-row-selected .ag-cell{
    background:color-mix(in srgb,var(--office-primary,#1683e7) 3%,transparent)!important;
}
.office-boq-grid-v2 .ag-row.is-active-anchor{
    background:color-mix(in srgb,var(--office-primary,#1683e7) 5%,var(--office-surface,#fff))!important;
    box-shadow:inset 2px 0 0 color-mix(in srgb,var(--office-primary,#1683e7) 70%,transparent)!important;
}
/* Preserve semantic pastels even while checked/selected. */
.office-boq-grid-v2 .office-ag-row-preliminaryremark.ag-row-selected .ag-cell{background:#edf2f6!important}
.office-boq-grid-v2 .office-ag-row-note.ag-row-selected .ag-cell{background:#e9f6ee!important}
.office-boq-grid-v2 .office-ag-row-executiondescription.ag-row-selected .ag-cell{background:#e9f3fb!important}

/* The row menu remains visible over shaded rows instead of fading into them. */
.office-boq-grid-v2 .office-ag-action-cell .office-ag-more-button{
    opacity:.72!important;
    color:#55616d!important;
    background:rgba(255,255,255,.88)!important;
    border-color:#cfd6dc!important;
    box-shadow:0 1px 2px rgba(27,39,50,.05);
}
.office-boq-grid-v2 .ag-row:hover .office-ag-action-cell .office-ag-more-button,
.office-boq-grid-v2 .ag-row.ag-row-hover .office-ag-action-cell .office-ag-more-button,
.office-boq-grid-v2 .ag-row-selected .office-ag-action-cell .office-ag-more-button,
.office-boq-grid-v2 .office-ag-action-cell .office-ag-more-button:focus-visible{opacity:1!important}

/* KPI arrow uses the supplied SVG instead of a text glyph. */
.office-kpi-icon-button-r025 .office-svg-icon{width:12px;height:12px}

/* ========================================================================== */
/* r028 buildfix 2 – new-LV wizard, structure dialog and permissions           */
/* ========================================================================== */
.office-boq-create-dialog{
    width:min(900px,calc(100vw - 28px));
    max-height:min(860px,calc(100dvh - 28px));
    overflow:hidden;
    display:flex;
    flex-direction:column;
}
.office-boq-create-dialog>.office-dialog-body{overflow:auto;min-height:0}
.office-boq-create-dialog .office-boq-start-options{gap:10px}
.office-boq-create-dialog .office-boq-start-option-r024{min-height:118px;padding:16px}
.office-boq-create-dialog .office-boq-empty-depth-r028{gap:8px}
.office-boq-create-dialog .office-boq-empty-depth-r028 h3{font-size:15px;margin:0 0 2px}
.office-boq-create-dialog .office-boq-depth-choices-r028{
    grid-template-columns:repeat(3,minmax(0,1fr))!important;
    gap:10px;
}
.office-boq-create-dialog .office-boq-depth-choices-r028 .office-choice-card-r023{
    min-height:82px;
    padding:13px 16px;
}
.office-boq-create-dialog .office-boq-depth-choices-r028 .office-choice-card-r023 strong{font-size:15px}
.office-boq-create-dialog .office-boq-depth-choices-r028 .office-choice-card-r023 span{font-size:13px}
.office-boq-create-dialog .office-boq-empty-depth-r028>.office-field-help{margin-top:0;padding:0 2px}

/* Compact AVAPLAN-like numbering table; all five levels remain visible when depth=5. */
.office-boq-structure-dialog-r028{max-height:min(900px,calc(100dvh - 24px))}
.office-boq-structure-dialog-body-r028{gap:14px;padding-block:16px!important}
.office-boq-numbering-head-r028,
.office-boq-numbering-row-r028{
    grid-template-columns:minmax(132px,.9fr) minmax(150px,.95fr) repeat(3,minmax(92px,.68fr));
    gap:10px;
    padding:8px 12px;
}
.office-boq-numbering-row-r028{min-height:50px}
.office-boq-color-edit-r028{grid-template-columns:30px minmax(92px,120px);gap:7px;justify-content:start}
.office-boq-color-edit-r028 input[type=color]{width:30px;height:30px;padding:2px;border-radius:7px}
.office-boq-color-edit-r028 .office-input{height:34px;min-height:34px;padding:5px 8px;font-size:13px;font-family:ui-monospace,SFMono-Regular,Consolas,monospace}
.office-boq-number-input-r028{height:34px!important;min-height:34px!important;padding:5px 8px!important}
.office-boq-project-default-r028{
    display:grid;
    grid-template-columns:minmax(0,1fr) auto;
    align-items:center;
    gap:14px;
    padding:10px 12px;
    border:1px solid var(--office-border);
    border-radius:10px;
    background:var(--office-surface-soft);
}
.office-boq-project-default-r028>div{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.office-boq-project-default-r028>div>span{font-size:12px;color:var(--office-text-muted)}
.office-boq-project-default-r028 .office-boq-project-colors-r028{margin:0}
.office-boq-project-default-r028 .office-check-field{margin:0;white-space:nowrap}

/* Permission matrix: simple green check / gray cross instead of text pills. */
.office-permission-icon-r028{display:inline-grid;place-items:center;width:26px;height:26px;margin:auto;border-radius:7px}
.office-permission-icon-r028 .office-svg-icon{width:15px;height:15px}
.office-permission-icon-r028.is-allowed{color:#2f8a50;background:#eaf6ee}
.office-permission-icon-r028.is-denied{color:#9aa2aa;background:#f2f4f5}

@media(max-width:820px){
    .office-boq-create-dialog .office-boq-depth-choices-r028{grid-template-columns:repeat(2,minmax(0,1fr))!important}
    .office-boq-project-default-r028{grid-template-columns:1fr}.office-boq-project-default-r028 .office-check-field{white-space:normal}
}

/* ========================================================================== */
/* r028 buildfix 3 – LV rich text editor and keyboard workflow                */
/* ========================================================================== */
.office-boq-rich-toolbar-v2{
    min-height:42px;
    padding:5px 7px;
    gap:4px;
    flex-wrap:wrap;
}
.office-boq-rich-toolbar-v2 button{
    min-width:32px;
    height:32px;
    padding:0 8px;
    font-size:14px;
    font-weight:500;
}
.office-boq-rich-toolbar-v2 button strong{font-weight:700}
.office-boq-rich-toolbar-v2 button em{font-style:italic;font-weight:400}
.office-boq-rich-toolbar-v2 button u{text-underline-offset:2px}
.office-boq-rich-toolbar-v2 button s{font-weight:400}
.office-boq-rich-format-v3{
    min-width:126px;
    height:32px;
    padding:0 28px 0 9px;
    border:1px solid transparent;
    border-radius:6px;
    background:transparent;
    color:var(--office-text);
    font:inherit;
    cursor:pointer;
}
.office-boq-rich-format-v3:hover,.office-boq-rich-format-v3:focus{
    border-color:var(--office-border);
    background:var(--office-surface);
    outline:0;
}
.office-boq-rich-toolbar-separator-v3{width:1px;height:22px;margin:0 3px;background:var(--office-border);flex:0 0 1px}
.office-boq-rich-content-v2 ol[data-office-list-style="decimal-paren"],
.office-boq-rich-content-v2 ol[data-office-list-style="alpha-paren"]{list-style:none;counter-reset:office-boq-list;padding-left:1.7rem}
.office-boq-rich-content-v2 ol[data-office-list-style] > li{counter-increment:office-boq-list;position:relative}
.office-boq-rich-content-v2 ol[data-office-list-style] > li::before{position:absolute;right:calc(100% + .45rem)}
.office-boq-rich-content-v2 ol[data-office-list-style="decimal-paren"] > li::before{content:counter(office-boq-list) ")"}
.office-boq-rich-content-v2 ol[data-office-list-style="alpha-paren"] > li::before{content:counter(office-boq-list,lower-alpha) ")"}

/* ========================================================================== */
/* r028 buildfix 3 – LV hierarchy, header actions and visual hierarchy        */
/* ========================================================================== */
.office-context-dropdown-summary-link-r028{display:block;color:inherit;text-decoration:none}
.office-context-dropdown-summary-link-r028:hover strong{color:var(--office-primary)}

/* Plus/minus tree controls are visually calmer and more explicit than chevrons. */
.office-boq-grid-v2 .office-ag-chevron{width:20px;height:20px;display:grid;place-items:center;flex:0 0 20px;color:#6f7a85}
.office-boq-grid-v2 .office-ag-chevron .office-svg-icon{width:12px;height:12px;transform:none!important;transition:none!important}
.office-boq-grid-v2 .office-ag-chevron.is-collapsed .office-svg-icon{transform:none!important}

/* AVAPLAN-like table hierarchy: structure rows remain clear but do not look selected. */
.office-boq-grid-v2 .office-ag-row-node{background:var(--office-surface,#fff)!important}
.office-boq-grid-v2 .ag-row.is-active-anchor{background:transparent!important;box-shadow:inset 2px 0 0 color-mix(in srgb,var(--office-primary,#1683e7) 65%,transparent)!important}
.office-boq-grid-v2 .ag-row-selected,.office-boq-grid-v2 .ag-row-selected .ag-cell{background:color-mix(in srgb,var(--office-primary,#1683e7) 2.5%,transparent)!important}

/* Header action row now owns Import/Export; keep the grid toolbar for editing only. */
.office-ava-primary-action-row-r025{gap:8px}
.office-ava-primary-action-row-r025 .office-button:not(.is-primary){font-weight:500}

/* r028 buildfix 3 – project LV grouping */
.office-project-boq-panel-r023 .office-panel-heading>.office-inline-actions{display:flex;gap:8px;align-items:center}
.office-project-boq-group-row-r028 td{padding:0!important;background:var(--office-surface-soft)!important}
.office-project-boq-group-toggle-r028{width:100%;min-height:42px;padding:8px 14px;border:0;background:transparent;display:flex;align-items:center;gap:9px;text-align:left;color:var(--office-text);cursor:pointer}
.office-project-boq-group-toggle-r028 .office-svg-icon{width:14px;height:14px;color:var(--office-text-muted)}
.office-project-boq-group-toggle-r028 strong{font-size:13px}
.office-project-boq-group-toggle-r028>span:last-child{color:var(--office-text-muted);font-size:12px}
.office-project-boq-group-label-r028{display:block;padding:9px 14px;color:var(--office-text-muted);font-size:12px;font-weight:700}
.office-boq-group-dialog-r028{width:min(680px,calc(100vw - 28px))}
.office-boq-group-choice-list-r028{max-height:360px;overflow:auto;border:1px solid var(--office-border);border-radius:10px;background:var(--office-surface)}
.office-boq-group-choice-list-r028 .office-checkbox-row{margin:0;padding:11px 12px;border-bottom:1px solid var(--office-border-soft,var(--office-border));align-items:flex-start}
.office-boq-group-choice-list-r028 .office-checkbox-row:last-child{border-bottom:0}
.office-boq-group-choice-list-r028 .office-checkbox-row>span{display:grid;gap:2px}
.office-boq-group-choice-list-r028 small{color:var(--office-text-muted);font-size:11px}
/* Build-Fix 3: checked rows stay subtle; the old strong primary-soft selection must not win by specificity. */
.office-boq-grid-v2 .office-ag-row-item.is-selected,
.office-boq-grid-v2 .office-ag-row-node.is-selected{
    background:color-mix(in srgb,var(--office-primary,#1683e7) 2.5%,transparent)!important;
}

/* r028 build-fix 4: payment calendar must stay viewport anchored outside the scrollable payment dialog. */
.office-dialog-layer.is-open .office-invoice-payment-dialog{
    animation:none!important;
    transform:none!important;
}

/* r028 build-fix 4: hospitality participants as clear name/company rows; host is part of the tax-relevant participant list. */
.office-hospitality-participant-list-r028{display:grid;margin-top:10px;border:1px solid var(--office-border);border-radius:10px;background:var(--office-surface);overflow:hidden}
.office-hospitality-participant-row-r028{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr) 34px;gap:14px;align-items:center;min-height:48px;padding:8px 10px;border-top:1px solid var(--office-border)}
.office-hospitality-participant-row-r028:first-child{border-top:0}
.office-hospitality-participant-row-r028>div{display:flex;align-items:baseline;gap:8px;min-width:0}.office-hospitality-participant-row-r028 strong,.office-hospitality-participant-row-r028>span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.office-hospitality-participant-row-r028 small{color:var(--office-text-muted);font-size:12px}.office-hospitality-participant-row-r028.is-host{background:var(--office-surface-soft)}
@media(max-width:640px){.office-hospitality-participant-row-r028{grid-template-columns:minmax(0,1fr) 34px}.office-hospitality-participant-row-r028>span{grid-column:1;grid-row:2;color:var(--office-text-muted);font-size:12px}.office-hospitality-participant-row-r028>.office-icon-button{grid-column:2;grid-row:1/3}}

/* r028 build-fix 4 follow-up – LV group dialog follows the Office dialog/action master. */
.office-boq-group-dialog-r028{
    width:min(620px,calc(100vw - 32px));
}
.office-boq-group-dialog-r028>.office-dialog-body{
    display:grid;
    gap:18px;
    padding:20px;
}
.office-boq-group-dialog-r028 .office-field{
    gap:7px;
}
.office-boq-group-choice-list-r028{
    max-height:320px;
}
.office-boq-group-choice-list-r028 .office-checkbox-row{
    min-height:50px;
    padding:9px 11px;
}
.office-project-boq-panel-r023 .office-panel-heading>.office-inline-actions>.office-button{
    min-height:34px;
    height:34px;
    padding:0 12px;
    font-size:12.5px;
}

/* ========================================================================== */
/* r028 build-fix 5 – LV table rhythm and toolbar contrast                    */
/* ========================================================================== */
/* One single row separator. Structure rows previously added a second top line. */
.office-boq-grid-v2 .ag-row{
    border-bottom:1px solid var(--office-border-soft,#e8edf1)!important;
}
.office-boq-grid-v2 .office-ag-row-node .ag-cell{
    border-top:0!important;
}

/* Hierarchy colors are identifiers, not large color blocks. Keep them very light. */
.office-boq-ag-workspace .office-boq-level-add-r028{
    color:#26313a!important;
    border-color:color-mix(in srgb,var(--office-boq-level-color) 38%,#d5dce2)!important;
    background:color-mix(in srgb,var(--office-boq-level-color) 16%,#fff)!important;
    box-shadow:none!important;
}
.office-boq-ag-workspace .office-boq-level-add-r028:hover,
.office-boq-ag-workspace .office-boq-level-add-r028:focus-visible{
    background:color-mix(in srgb,var(--office-boq-level-color) 23%,#fff)!important;
    border-color:color-mix(in srgb,var(--office-boq-level-color) 52%,#c6cfd7)!important;
}
.office-boq-ag-workspace .office-ava-toolbar [data-office-boq-command="add-preliminary"]{
    background:#f3f6f8!important;border-color:#d7e0e6!important;
}
.office-boq-ag-workspace .office-ava-toolbar [data-office-boq-command="add-note"]{
    background:#f1f8f3!important;border-color:#d3e5d9!important;
}
.office-boq-ag-workspace .office-ava-toolbar [data-office-boq-command="add-execution"]{
    background:#f1f6fb!important;border-color:#d2e0ec!important;
}

/* All editing toolbar icons need a clear resting-state contrast. Local to the LV only. */
.office-boq-ag-workspace .office-ava-toolbar .office-icon-button,
.office-boq-ag-workspace .office-ava-toolbar .office-button{
    color:#252c33!important;
}
.office-boq-ag-workspace .office-ava-toolbar .office-svg-icon{
    color:#252c33!important;
    opacity:1!important;
}
.office-boq-ag-workspace .office-ava-toolbar .office-icon-button:disabled .office-svg-icon,
.office-boq-ag-workspace .office-ava-toolbar .office-button:disabled .office-svg-icon{
    opacity:.36!important;
}

/* The dedicated +Position action is deliberately neutral/light gray. */
.office-boq-ag-workspace .office-ava-toolbar [data-office-boq-command="add-item"]{
    background:#f3f4f5!important;
    border-color:#d6dbe0!important;
}
.office-boq-grid-v2 .office-ag-quick-add{
    background:#f3f4f5!important;
    border-color:#d8dde2!important;
    color:#69737d!important;
}

/* Depth selector and search form one aligned control group. */
.office-boq-ag-workspace .office-boq-depth-controls-r028{
    height:36px!important;
    min-height:36px!important;
    box-sizing:border-box!important;
    padding:2px!important;
    margin-right:6px!important;
}
.office-boq-ag-workspace .office-boq-depth-button-r028{
    height:30px!important;
    min-height:30px!important;
    width:30px!important;
    min-width:30px!important;
}
.office-boq-ag-workspace .office-ava-search-r024 .office-table-search{
    height:36px!important;
    min-height:36px!important;
}

/* ========================================================================== */
/* r028 build-fix 5 – compact Office UI for LV structure settings             */
/* ========================================================================== */
.office-boq-structure-dialog-r028 .office-input,
.office-boq-structure-dialog-r028 input,
.office-boq-structure-dialog-r028 select{
    box-sizing:border-box;
    min-height:36px;
    height:36px;
    border:1px solid var(--office-border-strong,#cfd5db)!important;
    border-radius:9px!important;
    background:var(--office-surface,#fff)!important;
    color:var(--office-text)!important;
    font:inherit;
    font-size:13px;
    box-shadow:none!important;
    outline:0;
}
.office-boq-structure-dialog-r028 .office-input:hover,
.office-boq-structure-dialog-r028 input:hover,
.office-boq-structure-dialog-r028 select:hover{
    border-color:#b8c0c8!important;
}
.office-boq-structure-dialog-r028 .office-input:focus,
.office-boq-structure-dialog-r028 input:focus,
.office-boq-structure-dialog-r028 select:focus{
    border-color:var(--office-primary)!important;
    box-shadow:0 0 0 2px color-mix(in srgb,var(--office-primary) 10%,transparent)!important;
}
/* Number values follow the Office text-input master; browser spinner chrome is intentionally removed. */
.office-boq-structure-dialog-r028 input[type=number]{
    appearance:textfield;
    -moz-appearance:textfield;
}
.office-boq-structure-dialog-r028 input[type=number]::-webkit-inner-spin-button,
.office-boq-structure-dialog-r028 input[type=number]::-webkit-outer-spin-button{
    -webkit-appearance:none;
    margin:0;
}
.office-boq-structure-top-r028{
    grid-template-columns:minmax(200px,280px) minmax(160px,210px);
    gap:12px;
}
.office-boq-numbering-table-r028{border-radius:10px}
.office-boq-numbering-head-r028,
.office-boq-numbering-row-r028{
    grid-template-columns:minmax(126px,.9fr) minmax(126px,.9fr) repeat(3,minmax(86px,.66fr));
    gap:9px;
    padding:7px 11px;
}
.office-boq-numbering-row-r028{min-height:46px}
.office-boq-number-input-r028{
    height:36px!important;
    min-height:36px!important;
    padding:6px 9px!important;
}
/* Color control stays secondary to the already clear level swatch. */
.office-boq-color-edit-r028{
    grid-template-columns:26px minmax(78px,96px);
    gap:6px;
    justify-content:start;
    align-items:center;
}
.office-boq-color-edit-r028 input[type=color]{
    width:26px!important;
    min-width:26px!important;
    height:26px!important;
    min-height:26px!important;
    padding:2px!important;
    border-radius:6px!important;
}
.office-boq-color-edit-r028 .office-input{
    width:96px!important;
    height:34px!important;
    min-height:34px!important;
    padding:5px 7px!important;
    font-size:12px!important;
}
.office-boq-level-swatch-r028,.office-boq-position-swatch-r028{
    width:20px;height:20px;flex-basis:20px;border-radius:5px;
}
/* OZ validation reads as one calm status strip instead of three oversized cards. */
.office-boq-mask-panel-r028{
    grid-template-columns:minmax(0,1.05fr) minmax(0,1fr) minmax(0,.9fr);
    border-radius:10px;
    background:var(--office-surface-soft,#f7f8f9);
}
.office-boq-mask-panel-r028>div{
    min-height:54px;
    align-content:center;
    gap:2px;
    padding:8px 11px;
    background:transparent;
}
.office-boq-mask-panel-r028 span{font-size:11px}
.office-boq-mask-panel-r028 strong{font-size:13px;line-height:1.25}
.office-boq-mask-panel-r028 small{font-size:10.5px;line-height:1.25}
.office-boq-mask-panel-r028 .is-warning-r028{
    background:#fffaf0;
}
.office-boq-project-default-r028{
    padding:8px 11px;
    min-height:48px;
}
.office-boq-structure-dialog-body-r028{
    gap:11px;
    padding-block:14px!important;
}

/* ========================================================================== */
/* r028 build-fix 6 – LV hierarchy rhythm, insertion anchor and color balance */
/* ========================================================================== */
/* AVAPLAN-like hierarchy: OZ and title belong together; no artificial OZ column gap. */
.office-boq-grid-v2 .office-ag-hierarchy-v2 .office-ag-oz{
    min-width:0!important;
    margin-right:2px;
    flex:0 0 auto;
}
.office-boq-grid-v2 .office-ag-hierarchy-v2{
    gap:5px!important;
}

/* Level colors in the toolbar are orientation aids only – deliberately very subtle. */
.office-boq-ag-workspace .office-boq-level-add-r028{
    border-color:color-mix(in srgb,var(--office-boq-level-color) 25%,#d8dee4)!important;
    background:color-mix(in srgb,var(--office-boq-level-color) 8%,#fff)!important;
}
.office-boq-ag-workspace .office-boq-level-add-r028:hover,
.office-boq-ag-workspace .office-boq-level-add-r028:focus-visible{
    background:color-mix(in srgb,var(--office-boq-level-color) 13%,#fff)!important;
    border-color:color-mix(in srgb,var(--office-boq-level-color) 38%,#cfd7de)!important;
}
.office-boq-ag-workspace .office-ava-toolbar [data-office-boq-command="add-preliminary"]{
    background:#f8fafb!important;border-color:#e0e6ea!important;
}
.office-boq-ag-workspace .office-ava-toolbar [data-office-boq-command="add-note"]{
    background:#f7fbf8!important;border-color:#dce9e0!important;
}
.office-boq-ag-workspace .office-ava-toolbar [data-office-boq-command="add-execution"]{
    background:#f7fafd!important;border-color:#dce6ef!important;
}

/* In the table itself the folder color must remain unmistakable even when the configured palette is pastel. */
.office-boq-grid-v2 .office-ag-folder-icon-r028{
    width:17px!important;
    height:17px!important;
    flex-basis:17px!important;
    color:color-mix(in srgb,var(--office-boq-level-color,#7d8792) 72%,#31404d)!important;
}

/* Selection and insertion anchor are separate concepts. Checkbox selection stays neutral; the active
   insertion row gets only a quiet left marker, never a persistent colored surface. */
.office-boq-grid-v2 .ag-row-selected,
.office-boq-grid-v2 .ag-row-selected .ag-cell{
    background:transparent!important;
}
.office-boq-grid-v2 .ag-row.is-active-anchor,
.office-boq-grid-v2 .ag-row.is-active-anchor .ag-cell{
    background:transparent!important;
}
.office-boq-grid-v2 .ag-row.is-active-anchor{
    box-shadow:inset 2px 0 0 color-mix(in srgb,var(--office-primary,#1683e7) 58%,transparent)!important;
}


/* ========================================================================== */
/* r028 build-fix 6 final – LV contrast, insertion clarity and KG template    */
/* ========================================================================== */
/* Hierarchy buttons: recognisable level color without becoming dominant. */
.office-boq-ag-workspace .office-boq-level-add-r028{
    color:#22303b!important;
    border-color:color-mix(in srgb,var(--office-boq-level-color) 46%,#ccd4db)!important;
    background:color-mix(in srgb,var(--office-boq-level-color) 18%,#fff)!important;
}
.office-boq-ag-workspace .office-boq-level-add-r028:hover,
.office-boq-ag-workspace .office-boq-level-add-r028:focus-visible{
    background:color-mix(in srgb,var(--office-boq-level-color) 28%,#fff)!important;
    border-color:color-mix(in srgb,var(--office-boq-level-color) 60%,#bcc6cf)!important;
}
.office-boq-ag-workspace .office-ava-toolbar [data-office-boq-command="add-preliminary"]{
    background:#eef3f7!important;border-color:#c8d5df!important;
}
.office-boq-ag-workspace .office-ava-toolbar [data-office-boq-command="add-note"]{
    background:#eaf5ee!important;border-color:#c4dbc9!important;
}
.office-boq-ag-workspace .office-ava-toolbar [data-office-boq-command="add-execution"]{
    background:#eaf2fa!important;border-color:#c5d8ea!important;
}

/* Filled folder icon uses the configured level color at full readable strength. */
.office-boq-grid-v2 .office-ag-folder-icon-r028{
    width:18px!important;height:18px!important;flex-basis:18px!important;
    color:color-mix(in srgb,var(--office-boq-level-color,#7d8792) 90%,#273642)!important;
}

/* Semantic helper rows: only a trace of color. */
.office-boq-grid-v2 .office-ag-row-preliminaryremark:not(.is-selected):not(.ag-row-selected),
.office-boq-grid-v2 .office-ag-row-preliminaryremark:not(.is-selected):not(.ag-row-selected) .ag-cell{background:#fbfcfd!important}
.office-boq-grid-v2 .office-ag-row-note:not(.is-selected):not(.ag-row-selected),
.office-boq-grid-v2 .office-ag-row-note:not(.is-selected):not(.ag-row-selected) .ag-cell{background:#fbfdfb!important}
.office-boq-grid-v2 .office-ag-row-executiondescription:not(.is-selected):not(.ag-row-selected),
.office-boq-grid-v2 .office-ag-row-executiondescription:not(.is-selected):not(.ag-row-selected) .ag-cell{background:#fbfcfe!important}

/* One single thin row separator – no stacked cell borders. */
.office-boq-grid-v2 .ag-row{border-bottom:1px solid #edf1f4!important}
.office-boq-grid-v2 .ag-cell{border-top:0!important;border-bottom:0!important}
.office-boq-grid-v2 .office-ag-row-node .ag-cell{border-top:0!important}
.office-boq-grid-v2 .ag-header{border-bottom:1px solid #e1e6eb!important}

/* Active insertion anchor is deliberately distinct from checkbox selection. */
.office-boq-grid-v2 .ag-row-selected,
.office-boq-grid-v2 .ag-row-selected .ag-cell{background:transparent!important}
.office-boq-grid-v2 .ag-row.is-active-anchor,
.office-boq-grid-v2 .ag-row.is-active-anchor .ag-cell{
    background:color-mix(in srgb,var(--office-primary,#1683e7) 4%,#fff)!important;
}
.office-boq-grid-v2 .ag-row.is-active-anchor{
    box-shadow:inset 3px 0 0 color-mix(in srgb,var(--office-primary,#1683e7) 68%,transparent)!important;
}

/* ========================================================================== */
/* r028 build-fix 6.1 – native AG Grid selection state                        */
/* ========================================================================== */
/* Selection color comes exclusively from AG Grid. Do not fade checked boxes
   based on a second, asynchronously recomputed row class. */
.office-boq-grid-v2 .ag-selection-checkbox{
    opacity:1!important;
    transition:none!important;
}
.office-boq-grid-v2 .ag-checkbox-input-wrapper{
    transition:none!important;
}

/* ========================================================================== */
/* r028 build-fix 6.2 – LV row separators as quiet hairlines                  */
/* ========================================================================== */
/* AG Grid's own row-border tone plus the local separator read too strongly
   together. Suppress the theme row border and draw one local hairline only. */
.office-boq-grid-v2 .office-boq-ag-grid{
    --ag-row-border-color:transparent!important;
}
.office-boq-grid-v2 .ag-row{
    border-top:0!important;
    border-bottom:.5px solid rgba(217,224,231,.72)!important;
}
.office-boq-grid-v2 .ag-cell,
.office-boq-grid-v2 .office-ag-row-node .ag-cell{
    border-top:0!important;
    border-bottom:0!important;
}

/* ========================================================================== */
/* r028 build-fix 6.3 – LV toolbar surface and control-height alignment        */
/* ========================================================================== */
/* Neutral LV toolbar actions use the same light-gray surface as the 1–5
   depth selector. Colored hierarchy/semantic actions keep their own colors. */
.office-boq-ag-workspace .office-boq-toolbar-v2 .office-icon-button:not(.office-boq-level-add-r028):not([data-office-boq-command="add-preliminary"]):not([data-office-boq-command="add-note"]):not([data-office-boq-command="add-execution"]){
    background:var(--office-surface-soft,#f6f7f8)!important;
}
.office-boq-ag-workspace .office-boq-toolbar-v2 .office-icon-button:not(.office-boq-level-add-r028):not([data-office-boq-command="add-preliminary"]):not([data-office-boq-command="add-note"]):not([data-office-boq-command="add-execution"]):not(:disabled):hover{
    background:color-mix(in srgb,var(--office-surface-soft,#f6f7f8) 70%,#e7ebef)!important;
}

/* Right-side controls share one exact 32 px master height. The search field
   remains white; only its previous 36 px height is reduced. */
.office-boq-ag-workspace .office-boq-depth-controls-r028{
    height:32px!important;
    min-height:32px!important;
    padding:2px!important;
    box-sizing:border-box!important;
}
.office-boq-ag-workspace .office-boq-depth-button-r028{
    height:26px!important;
    min-height:26px!important;
    width:30px!important;
    min-width:30px!important;
}
.office-boq-ag-workspace .office-ava-search-r024,
.office-boq-ag-workspace .office-ava-search-r024 .office-table-search{
    height:32px!important;
    min-height:32px!important;
    box-sizing:border-box!important;
}
.office-boq-ag-workspace .office-ava-search-r024 .office-table-search{
    background:var(--office-surface,#fff)!important;
}
.office-boq-ag-workspace .office-ava-preview-button,
.office-boq-ag-workspace .office-ava-focus-toggle{
    height:32px!important;
    min-height:32px!important;
    width:32px!important;
    min-width:32px!important;
}

/* ========================================================================== */
/* r028 final – scoped button sizing, LV docked properties and project polish */
/* ========================================================================== */
/* Binding rule: 40 px page actions stay unchanged. Explicit card/table actions
   use 36 px; dense toolbars such as the LV editor remain 32 px. */
.office-card-action-r028{
    height:36px!important;
    min-height:36px!important;
    padding-top:0!important;
    padding-bottom:0!important;
    box-sizing:border-box!important;
}
.office-icon-button.office-card-action-r028{
    width:36px!important;
    min-width:36px!important;
    padding:0!important;
}
.office-card-actions-r028{
    margin-left:auto!important;
    justify-content:flex-end!important;
    align-items:center!important;
}
.office-project-contacts-toolbar .office-card-actions-r028{
    margin-left:auto!important;
}
.office-project-boq-panel-r023>.office-panel-heading{
    align-items:flex-start!important;
}
.office-project-boq-panel-r023>.office-panel-heading .office-card-actions-r028{
    align-self:flex-start!important;
}

/* Project > Kosten > Leistungsverzeichnisse: restore the complete rounded
   inner table contour instead of an open/flat lower edge. */
.office-project-boq-table-r023{
    border-radius:10px!important;
    overflow:hidden!important;
}
.office-project-boq-table-r023>.office-table-viewport{
    border-radius:inherit!important;
}

/* Dockable LV properties panel. Desktop docks beside the grid; smaller
   viewports keep the existing overlay/drawer behavior. */
.office-boq-grid-v2.is-details-pinned-r028{
    display:grid!important;
    grid-template-columns:minmax(0,1fr) minmax(360px,420px);
    grid-template-rows:minmax(520px,auto) auto;
    align-items:stretch;
}
.office-boq-grid-v2.is-details-pinned-r028>.office-boq-ag-grid{
    grid-column:1;
    grid-row:1;
    min-width:0;
}
.office-boq-grid-v2.is-details-pinned-r028>[data-office-boq-detail-root]{
    grid-column:2;
    grid-row:1 / span 2;
    min-width:0;
    min-height:0;
    border-left:1px solid var(--office-border,#dfe4e8);
    background:var(--office-surface,#fff);
}
.office-boq-grid-v2.is-details-pinned-r028>.office-boq-total-footer{
    grid-column:1;
    grid-row:2;
}
.office-boq-detail-sidebar-v2.is-docked-r028{
    position:relative!important;
    inset:auto!important;
    width:100%!important;
    min-width:0!important;
    max-width:none!important;
    height:100%!important;
    max-height:none!important;
    box-shadow:none!important;
    border-left:0!important;
    z-index:2!important;
}
.office-boq-details-toggle-r028.is-selected{
    background:color-mix(in srgb,var(--office-primary,#1683e7) 9%,var(--office-surface-soft,#f6f7f8))!important;
    border-color:color-mix(in srgb,var(--office-primary,#1683e7) 42%,var(--office-border,#d9e0e7))!important;
    color:var(--office-primary,#1683e7)!important;
}
@media(max-width:999px){
    .office-boq-grid-v2.is-details-pinned-r028{display:block!important}
    .office-boq-detail-sidebar-v2.is-docked-r028{
        position:fixed!important;
        right:0!important;top:0!important;bottom:0!important;
        width:min(610px,96vw)!important;
        height:auto!important;
        border-left:1px solid var(--office-border,#dfe4e8)!important;
        box-shadow:-12px 0 32px rgba(26,39,52,.12)!important;
    }
}
.office-boq-detail-sidebar-v2.is-docked-r028.is-empty-r028 .office-boq-details-empty-r028{
    margin:18px 20px;
}


/* ========================================================================== */
/* r029 correction block A – LV create, issue dialog, contacts and QC          */
/* ========================================================================== */
.office-boq-create-dialog .office-boq-empty-depth-r028{
    margin-top:16px;
    gap:7px;
}
.office-boq-create-dialog .office-boq-empty-depth-r028 h3{
    margin:0 0 3px;
    font-size:14px;
}
.office-boq-create-dialog .office-boq-depth-choices-r028 .office-choice-card-r023{
    min-height:62px;
    padding:9px 13px;
    gap:2px;
}
.office-boq-create-dialog .office-boq-depth-choices-r028 .office-choice-card-r023 strong{font-size:14px;line-height:1.2}
.office-boq-create-dialog .office-boq-depth-choices-r028 .office-choice-card-r023 span{font-size:12px;line-height:1.25}
.office-project-boq-panel-r023 .office-boq-group-create-r029:disabled{
    opacity:1!important;
    color:#9aa2aa!important;
    border-color:#dde2e7!important;
    background:#f1f3f5!important;
    cursor:not-allowed!important;
    box-shadow:none!important;
}
.office-dialog-layer.is-open .office-boq-issues-dialog-r029{
    position:relative!important;
    left:auto!important;
    top:auto!important;
    transform:none!important;
    margin:auto!important;
}
.office-boq-kpi-label-r029{
    display:inline-flex!important;
    align-items:center!important;
    gap:4px;
}
.office-boq-kpi-label-r029 .office-kpi-icon-button-r025{margin-left:0!important;flex:0 0 22px}
.office-project-contacts-panel .office-data-pill.is-contact-soft-r029{
    background:var(--office-pill-bg)!important;
    color:var(--office-pill-fg)!important;
    border-color:var(--office-pill-border)!important;
}
.office-project-contacts-panel .office-status-badge-dot{display:none!important}


/* ========================================================================== */
/* r029 authentication – Microsoft SSO and protected local-login controls      */
/* ========================================================================== */
.office-login-divider-r029{display:flex;align-items:center;gap:12px;margin:16px 0;color:var(--office-text-muted);font-size:12px}
.office-login-divider-r029::before,.office-login-divider-r029::after{content:"";height:1px;flex:1;background:var(--office-border)}
.office-login-microsoft-r029{width:100%;height:48px;min-height:48px;display:flex;align-items:center;justify-content:center;gap:10px;border:1px solid var(--office-border-strong);border-radius:9px;background:#fff;color:var(--office-text);font-weight:650;text-decoration:none;box-sizing:border-box;transition:background-color 160ms ease,border-color 160ms ease,box-shadow 160ms ease}
.office-login-microsoft-r029:hover,.office-login-microsoft-r029:focus-visible{background:var(--office-surface-soft);border-color:#b7c0c8;text-decoration:none;color:var(--office-text);box-shadow:0 3px 10px rgba(17,24,39,.06);outline:0}
.office-login-microsoft-logo-r029{position:relative;width:18px;height:18px;display:block;flex:0 0 18px}
.office-login-microsoft-logo-r029 img{position:absolute;inset:0;width:18px;height:18px;display:block;object-fit:contain;transition:opacity 140ms ease}
.office-login-microsoft-logo-r029 .is-mono{opacity:.72}
.office-login-microsoft-logo-r029 .is-color{opacity:0}
.office-login-microsoft-r029:hover .office-login-microsoft-logo-r029 .is-mono,.office-login-microsoft-r029:focus-visible .office-login-microsoft-logo-r029 .is-mono{opacity:0}
.office-login-microsoft-r029:hover .office-login-microsoft-logo-r029 .is-color,.office-login-microsoft-r029:focus-visible .office-login-microsoft-logo-r029 .is-color{opacity:1}
.office-settings-auth-r029{display:grid;gap:10px;margin-top:18px;padding-top:16px;border-top:1px solid var(--office-border)}
.office-settings-auth-status-r029{display:grid;grid-template-columns:minmax(220px,1fr) auto;gap:7px 16px;align-items:center;padding:10px 12px;border:1px solid var(--office-border);border-radius:9px;background:var(--office-surface-soft)}
.office-settings-auth-status-r029 span{color:var(--office-text-muted);font-size:12px}.office-settings-auth-status-r029 strong{font-size:12px;text-align:right}
@media(max-width:640px){.office-settings-auth-status-r029{grid-template-columns:1fr}.office-settings-auth-status-r029 strong{text-align:left}}

/* ========================================================================== */
/* r029 release – LV inline editing, docked properties and compact details     */
/* ========================================================================== */
.office-boq-grid-v2 .office-ag-tree-toggle-zone-r029{
    display:inline-flex;align-items:center;gap:5px;flex:0 0 auto;
    margin-left:-9px;padding:0 2px 0 9px;height:28px;min-width:48px;
    border:0;border-radius:6px;background:transparent;color:inherit;cursor:pointer;
}
.office-boq-grid-v2 .office-ag-tree-toggle-zone-r029:hover{background:var(--office-surface-soft,#f6f7f8)}
.office-boq-grid-v2 .office-ag-tree-toggle-zone-r029 .office-ag-chevron-icon-r029{width:12px;height:12px;color:#72808c}
.office-boq-grid-v2 .office-ag-tree-toggle-zone-r029 .office-ag-folder-icon-r028{pointer-events:none}
.office-boq-grid-v2 .office-ag-inline-title-input-r029{
    flex:1 1 auto;min-width:90px;height:30px!important;min-height:30px!important;
    padding:3px 7px!important;border:1px solid var(--office-focus,#1683e7)!important;border-radius:6px!important;
    background:var(--office-surface,#fff)!important;font:inherit;font-weight:inherit;color:var(--office-text)!important;
    box-shadow:0 0 0 2px rgba(22,131,231,.10)!important;
}
.office-boq-grid-v2 .office-ag-hierarchy-v2.is-inline-editing-r029{width:100%;overflow:visible!important}
.office-boq-grid-v2 .ag-cell-inline-editing:has(.office-ag-inline-title-input-r029){padding-left:8px!important;padding-right:8px!important;background:transparent!important;box-shadow:none!important}

.office-boq-grid-v2.is-details-pinned-r028{
    height:clamp(520px,calc(100vh - 315px),780px)!important;
    max-height:780px!important;
    grid-template-columns:minmax(0,1fr) minmax(360px,420px)!important;
    grid-template-rows:minmax(0,1fr) 42px!important;
}
.office-boq-grid-v2.is-details-pinned-r028>.office-boq-ag-grid{
    height:100%!important;min-height:0!important;max-height:none!important;
}
.office-boq-grid-v2.is-details-pinned-r028>[data-office-boq-detail-root]{min-height:0!important;overflow:hidden}
.office-boq-detail-sidebar-v2.is-docked-r028{overflow:auto!important;min-height:0!important}
.office-boq-grid-v2.is-details-pinned-r028>.office-boq-total-footer{height:42px;min-height:42px;align-self:end}

.office-boq-collapsible-r029{padding:0!important}
.office-boq-collapsible-head-r029{
    width:100%;min-height:48px;padding:10px 20px;border:0;background:var(--office-surface,#fff);
    display:flex;align-items:center;justify-content:space-between;gap:10px;text-align:left;color:var(--office-text);cursor:pointer;
}
.office-boq-collapsible-head-r029:hover{background:var(--office-surface-soft,#f7f8f9)}
.office-boq-collapsible-copy-r029{display:grid;gap:2px;min-width:0}
.office-boq-collapsible-copy-r029 strong{font-size:13px}
.office-boq-collapsible-copy-r029 small{font-size:11px;color:var(--office-text-muted);font-weight:400}
.office-boq-collapsible-chevron-r029{width:13px!important;height:13px!important;transition:transform .16s ease}
.office-boq-collapsible-r029.is-collapsed .office-boq-collapsible-chevron-r029{transform:rotate(-90deg)}
.office-boq-collapsible-body-r029{padding:0 20px 16px}
.office-boq-collapsible-r029.is-collapsed .office-boq-collapsible-body-r029{display:none}

.office-boq-rich-content-resizable-r029{resize:vertical;overflow:auto;min-height:180px;max-height:65vh}
.office-boq-rich-special-r029{min-width:30px!important;width:30px!important;height:30px!important;padding:0!important;display:inline-grid!important;place-items:center!important;vertical-align:middle!important;line-height:1!important;font-weight:700!important;font-size:12px!important}
.office-boq-rich-special-r029 .office-svg-icon{display:block!important;width:16px!important;height:16px!important;margin:0!important}
.office-boq-rich-special-r029.is-active{background:var(--office-primary-soft,#eaf3ff)!important;color:var(--office-primary,#1683e7)!important;box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--office-primary,#1683e7) 40%,transparent)}
.office-boq-page-break-marker-r029{
    margin:10px 0;padding:4px 8px;border-top:1px dashed #9da7b1;border-bottom:1px dashed #9da7b1;
    color:var(--office-text-muted);font-size:11px;text-align:center;background:var(--office-surface-soft,#f7f8f9);user-select:none;
}
.office-boq-rich-content-resizable-r029.is-gaeb-wrap-r029{background-image:linear-gradient(to bottom,transparent 0,transparent 100%)}

.office-boq-bidder-body-r029{display:grid;gap:8px}
.office-boq-bidder-head-r029{padding:0!important;margin:0 0 2px!important}
.office-boq-bidder-field-compact-r029{display:grid!important;grid-template-columns:1fr!important;gap:7px!important;padding:9px 0!important}
.office-boq-bidder-grid-r029{display:grid;grid-template-columns:minmax(0,1.45fr) minmax(92px,.55fr) minmax(90px,.5fr);gap:7px;align-items:end}
.office-boq-bidder-grid-r029 .office-field{margin:0}
.office-boq-bidder-grid-r029 .office-field.is-wide{grid-column:1/-1}
.office-boq-bidder-grid-r029 .office-field:nth-child(4){grid-column:1/-1}
.office-boq-bidder-grid-r029 .office-field:nth-child(5){grid-column:1/-1}
.office-boq-bidder-field-compact-r029 .office-boq-bidder-field-bottom{min-height:34px!important;margin-top:0}
.office-boq-bidder-field-compact-r029 .office-icon-button{width:32px!important;height:32px!important;min-width:32px!important;min-height:32px!important}

@media(max-width:999px){
  .office-boq-grid-v2.is-details-pinned-r028{height:auto!important;max-height:none!important}
  .office-boq-grid-v2 .office-ag-tree-toggle-zone-r029{min-width:52px;height:32px}
}
@media(max-width:600px){.office-boq-bidder-grid-r029{grid-template-columns:1fr}.office-boq-bidder-grid-r029 .office-field{grid-column:1!important}}

/* ========================================================================== */
/* r029 – structured worktime models and administration polish                */
/* ========================================================================== */
.office-worktime-model-dialog-r029{width:min(1120px,calc(100vw - 40px));max-width:none}
.office-worktime-model-days-r029{display:grid;gap:7px;margin-top:8px}
.office-worktime-model-day-r029{display:grid;grid-template-columns:70px 74px 110px 116px 116px minmax(150px,1fr);gap:8px;align-items:end;padding:8px 10px;border:1px solid var(--office-border-soft,var(--office-border));border-radius:9px;background:var(--office-surface-soft)}
.office-worktime-model-day-r029>.office-check-field{align-self:center;margin-bottom:7px}
.office-worktime-model-vacation-r029{display:flex;align-items:flex-end;gap:14px;flex-wrap:wrap;padding:11px 12px;border:1px solid var(--office-border);border-radius:9px;background:var(--office-surface-soft)}
.office-worktime-model-vacation-r029 .office-field-help{flex:1 1 100%;padding:0}
.office-worktime-model-summary-r029 small{display:block;color:var(--office-text-muted);font-weight:400;margin-top:2px}
.office-worktime-exceptions-r029 .office-settings-actions{margin-top:10px}
.office-qc-admin-r025>.office-settings-section-heading{margin-bottom:14px}
.office-qc-admin-user-r025{display:grid;gap:10px;margin-top:18px}
.office-qc-admin-user-r025+.office-qc-admin-user-r025{padding-top:18px;border-top:1px solid var(--office-border-soft,var(--office-border))}
@media(max-width:900px){
  .office-worktime-model-dialog-r029{width:calc(100vw - 16px)}
  .office-worktime-model-day-r029{grid-template-columns:70px 1fr 1fr}
  .office-worktime-model-day-r029 .office-worktime-day-location-r029{grid-column:1/-1}
}

/* r029 – project award status, compact general settings, stable datepicker */
.office-local-tab.is-awaiting-award-r029{color:color-mix(in srgb,var(--office-text-muted) 72%,transparent)!important}
.office-local-tab.is-awaiting-award-r029.active{color:color-mix(in srgb,var(--office-text-muted) 72%,transparent)!important}
.office-project-cost-no-award-r029{margin:10px 0 14px}
@media(min-width:1180px){.office-quick-access-picker-r024{grid-template-columns:repeat(5,minmax(0,1fr));gap:9px}.office-quick-access-choice-r024{min-height:60px;padding:8px 10px;grid-template-columns:32px 1fr 20px;gap:8px}}
.office-hospitality-occasion-settings-r029>.office-settings-section-heading{margin-bottom:14px}


/* r029 – docked LV sidebar keeps the total footer attached to the actual grid. */
@media(min-width:1000px){
  .office-boq-grid-v2.is-details-pinned-r028{
    height:auto!important;
    max-height:none!important;
    grid-template-rows:var(--office-boq-visible-grid-height,520px) 42px!important;
    align-items:start!important;
  }
  .office-boq-grid-v2.is-details-pinned-r028>.office-boq-ag-grid{
    height:var(--office-boq-visible-grid-height,520px)!important;
    min-height:154px!important;
    max-height:620px!important;
    align-self:start!important;
  }
  .office-boq-grid-v2.is-details-pinned-r028>[data-office-boq-detail-root]{
    grid-row:1 / span 2!important;
    height:clamp(520px,calc(100vh - 315px),780px)!important;
    max-height:780px!important;
    align-self:start!important;
  }
  .office-boq-grid-v2.is-details-pinned-r028>.office-boq-total-footer{
    grid-row:2!important;
    align-self:start!important;
    margin:0!important;
  }
}

/* ========================================================================== */
/* r029 – iPhone 17 Pro / Pro Max mobile pass (desktop intentionally untouched) */
/* ========================================================================== */
@media(max-width:700px){
  .office-time-page,.office-contacts-page,.office-messages-page{min-width:0;overflow-x:hidden}
  .office-time-page .office-page-heading,.office-contacts-page .office-page-heading,.office-messages-page .office-page-heading{gap:12px;align-items:stretch}
  .office-time-page .office-page-heading h1,.office-contacts-page .office-page-heading h1,.office-messages-page .office-page-heading h1{font-size:26px;line-height:1.15}

  /* Module tabs stay one line and are touch-scrollable instead of being cut off. */
  .office-time-main-tabs,.office-contacts-page>.office-local-tabs{
    display:flex!important;flex-wrap:nowrap!important;gap:24px!important;overflow-x:auto!important;overflow-y:hidden!important;
    max-width:100%;padding:0 2px 2px;scroll-snap-type:x proximity;-webkit-overflow-scrolling:touch;scrollbar-width:none;
  }
  .office-time-main-tabs::-webkit-scrollbar,.office-contacts-page>.office-local-tabs::-webkit-scrollbar{display:none}
  .office-time-main-tabs .office-local-tab,.office-contacts-page>.office-local-tabs .office-local-tab{flex:0 0 auto;white-space:nowrap;scroll-snap-align:start}

  /* Worktime command card. */
  .office-worktime-control-card,.office-worktime-timesheet-card,.office-worktime-entries-card,.office-time-list-panel,
  .office-absence-calendar-shell-r019,.office-leave-module>.office-dashboard-panel{padding:14px!important}
  .office-worktime-commandbar-new{display:grid!important;grid-template-columns:1fr!important;gap:14px!important;align-items:stretch!important}
  .office-worktime-live-clock{justify-content:flex-start!important}
  .office-worktime-actions{display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px!important;width:100%}
  .office-worktime-actions .office-button{width:100%;min-width:0;justify-content:center;padding-inline:10px}
  .office-worktime-summary-r019-final{grid-template-columns:repeat(2,minmax(0,1fr))!important}
  .office-worktime-summary-r019-final>div{min-width:0;padding:12px!important}
  .office-worktime-summary-r019-final strong{font-size:15px!important;overflow-wrap:anywhere}

  .office-worktime-card-tabs-r019{overflow-x:auto;scrollbar-width:none}
  .office-worktime-card-tabs-r019::-webkit-scrollbar{display:none}
  .office-worktime-card-tabs-r019 .office-dashboard-panel-tabs{width:max-content;max-width:none}
  .office-worktime-timesheet-commandbar-r019{display:grid!important;grid-template-columns:1fr!important;gap:12px!important;align-items:stretch!important}
  .office-worktime-timesheet-month-r019{display:grid!important;grid-template-columns:minmax(0,1fr) 44px 44px!important;gap:7px!important;width:100%!important}
  .office-worktime-timesheet-month-r019>strong{grid-column:1/-1;margin:2px 0 0;padding-left:2px}
  .office-worktime-timesheet-actions{display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px!important;width:100%!important}
  .office-worktime-timesheet-actions .office-button{width:100%;min-width:0;justify-content:center;padding-inline:8px}
  .office-worktime-timesheet-summary{grid-template-columns:1fr!important;gap:0!important}

  /* Activity / travel toolbars. */
  .office-time-list-toolbar{display:grid!important;grid-template-columns:1fr!important;gap:12px!important;align-items:stretch!important}
  .office-time-filter-inline-r019-final,.office-time-filter-inline-r023{display:grid!important;grid-template-columns:1fr!important;gap:9px!important;width:100%!important}
  .office-time-filter-inline-r019-final .office-dashboard-panel-tabs,.office-time-filter-inline-r023 .office-dashboard-panel-tabs{width:100%;display:grid;grid-template-columns:1fr 1fr}
  .office-time-project-filter-r019,.office-time-filter-inline-r023 .office-field{width:100%!important;min-width:0!important;max-width:none!important}
  .office-time-list-actions{display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px!important;width:100%}
  .office-time-list-actions .office-button{width:100%;min-width:0;justify-content:center;padding-inline:9px;text-align:center}

  /* Real mobile rows: no cropped desktop matrix. */
  .office-time-mobile-table-r029{border:0!important;background:transparent!important;overflow:visible!important}
  .office-time-mobile-table-r029>.office-table-viewport{overflow:visible!important;border:0!important}
  .office-time-mobile-table-r029 table,.office-time-mobile-table-r029 tbody{display:block!important;width:100%!important;min-width:0!important}
  .office-time-mobile-table-r029 thead{display:none!important}
  .office-time-mobile-table-r029 tbody{display:grid!important;gap:10px!important}
  .office-time-mobile-table-r029 tbody>tr{display:grid!important;grid-template-columns:1fr!important;width:100%!important;min-width:0!important;border:1px solid var(--office-border)!important;border-radius:11px!important;overflow:hidden;background:var(--office-surface)!important}
  .office-time-mobile-table-r029 tbody>tr>td{display:grid!important;grid-template-columns:minmax(96px,34%) minmax(0,1fr)!important;gap:10px;align-items:start;width:100%!important;min-width:0!important;max-width:none!important;min-height:38px;padding:9px 11px!important;border:0!important;border-bottom:1px solid var(--office-border-soft,var(--office-border))!important;white-space:normal!important;text-align:left!important;overflow-wrap:anywhere}
  .office-time-mobile-table-r029 tbody>tr>td:last-child{border-bottom:0!important}
  .office-time-mobile-table-r029 tbody>tr>td[data-label]::before{content:attr(data-label);font-size:11px;font-weight:650;color:var(--office-text-muted);line-height:1.35}
  .office-time-mobile-table-r029 tbody>tr>td.is-numeric{justify-content:stretch!important}
  .office-time-mobile-table-r029 tbody>tr>td.office-table-actions-column{display:flex!important;align-items:center!important;justify-content:flex-end!important;min-height:42px}
  .office-time-mobile-table-r029 tbody>tr>td.office-table-actions-column::before{content:none!important}
  .office-time-mobile-table-r029 tbody>tr>td[colspan]{display:block!important;padding:18px!important;text-align:center!important}
  .office-time-mobile-table-r029 tbody>tr>td[colspan]::before{content:none!important}

  .office-worktime-month-group{border-radius:11px!important;overflow:hidden}
  .office-worktime-month-heading{padding:11px!important;gap:8px!important}
  .office-worktime-month-state{min-width:0;text-align:right}
  .office-worktime-month-close{padding:10px!important}
  .office-worktime-month-close .office-button{width:100%;justify-content:center}

  /* Absence: seven days must fit the device width, never a 760px desktop grid. */
  .office-absence-calendar{width:100%!important;min-width:0!important;overflow:hidden!important}
  .office-absence-weekdays,.office-absence-days{grid-template-columns:repeat(7,minmax(0,1fr))!important;min-width:0!important;width:100%!important}
  .office-absence-weekdays span{padding:8px 2px!important;font-size:10.5px!important}
  .office-absence-day{min-width:0!important;min-height:82px!important;padding:7px 5px!important}
  .office-absence-day>span:first-child{font-size:12px}
  .office-absence-commandbar-r019{display:grid!important;grid-template-columns:1fr!important;gap:10px!important}
  .office-absence-month-controls-r019{display:grid!important;grid-template-columns:minmax(0,1fr) 44px 44px!important;width:100%!important;gap:7px!important}
  .office-absence-month-controls-r019>strong{grid-column:1/-1}
  .office-absence-commandbar-r019 .office-leave-command-actions{width:100%!important}
  .office-absence-commandbar-r019 .office-leave-command-actions .office-button{width:100%;justify-content:center}

  /* Vacation year: compact controls and safe settings dialog. */
  .office-leave-commandbar{display:grid!important;grid-template-columns:1fr!important;gap:10px!important;align-items:stretch!important}
  .office-leave-year-controls{display:grid!important;grid-template-columns:minmax(0,1fr) 44px 44px!important;width:100%!important;gap:7px!important}
  .office-leave-year-controls>strong{grid-column:1/-1}
  .office-leave-command-actions{display:grid!important;grid-template-columns:minmax(0,1fr) 44px minmax(0,1fr)!important;gap:7px!important;width:100%!important}
  .office-leave-command-actions .office-button{min-width:0;width:100%;justify-content:center;padding-inline:8px}
  .office-leave-balance{grid-template-columns:1fr!important}
  .office-leave-year-legend{gap:7px 12px!important}
  .office-leave-month{min-width:0!important}
  .office-leave-calendar-row{grid-template-columns:34px repeat(7,minmax(0,1fr))!important}
  .office-leave-settings-dialog,.office-leave-entry-dialog-r026{width:calc(100vw - 16px)!important;max-width:none!important;max-height:calc(100dvh - 16px)!important}
  .office-leave-settings-dialog .office-dialog-body,.office-leave-entry-dialog-r026 .office-dialog-body{overflow:auto!important;padding:14px!important}
  .office-leave-display-heading{display:grid!important;gap:3px!important}
  .office-leave-display-person{grid-template-columns:1fr 40px!important;gap:8px!important;padding:10px!important}
  .office-leave-display-person>.office-leave-list-person{min-width:0}
  .office-leave-color-palette{grid-column:1/-1!important;display:flex!important;flex-wrap:wrap!important;gap:7px!important}
  .office-leave-settings-dialog .office-dialog-footer{display:grid!important;grid-template-columns:1fr 1fr!important;gap:8px!important;padding:10px 14px!important}
  .office-leave-settings-dialog .office-dialog-footer .office-button{width:100%;min-width:0;justify-content:center;white-space:normal}
  .office-leave-settings-dialog .office-dialog-footer .office-button.is-primary{grid-column:1/-1}

  /* Time entry/travel dialogs stay inside the visual viewport and scroll internally. */
  .office-time-entry-dialog,.office-time-trip-dialog,.office-worktime-manual-dialog-r025,.office-worktime-overtime-dialog{
    width:calc(100vw - 16px)!important;max-width:none!important;max-height:calc(100dvh - 16px)!important;margin:0!important;
  }
  .office-time-entry-dialog .office-dialog-body,.office-time-trip-dialog .office-dialog-body,.office-worktime-manual-dialog-r025 .office-dialog-body,.office-worktime-overtime-dialog .office-dialog-body{overflow:auto!important;padding:14px!important}
  .office-time-entry-dialog .office-form-grid,.office-time-trip-dialog .office-form-grid,.office-worktime-manual-dialog-r025 .office-form-grid{grid-template-columns:1fr!important}
  .office-time-entry-dialog .office-field-span-two,.office-time-trip-dialog .office-field-span-two,.office-time-entry-dialog .office-field-span-three,.office-time-trip-dialog .office-field-span-three{grid-column:1!important}

  /* Address book: compact cards instead of a clipped six/seven-column table. */
  .office-contacts-page .office-page-heading>.office-button{width:100%;justify-content:center}
  .office-contacts-page .office-user-management-card{padding:12px!important}
  .office-contacts-toolbar-r027{display:grid!important;grid-template-columns:1fr!important;gap:9px!important;align-items:stretch!important}
  .office-contacts-toolbar-r027 .office-user-search-control{width:100%!important;max-width:none!important}
  .office-contacts-toolbar-actions-r027{display:grid!important;grid-template-columns:1fr 1fr!important;gap:7px!important;width:100%}
  .office-contacts-toolbar-r027 .office-button{width:100%;min-width:0;justify-content:center;padding-inline:8px}
  .office-contacts-mobile-table-r029,.office-contacts-mobile-table-r029>.office-table-viewport{overflow:visible!important;border:0!important}
  .office-contacts-mobile-table-r029 table,.office-contacts-mobile-table-r029 tbody{display:block!important;width:100%!important;min-width:0!important}
  .office-contacts-mobile-table-r029 thead{display:none!important}
  .office-contacts-mobile-table-r029 tbody{display:grid!important;gap:10px!important}
  .office-contacts-mobile-table-r029 tbody>tr:not(.office-contact-person-group-row):not(.office-company-contact-detail-row){display:grid!important;grid-template-columns:1fr!important;border:1px solid var(--office-border)!important;border-radius:11px!important;overflow:hidden;background:var(--office-surface)!important}
  .office-contacts-mobile-table-r029 tbody>tr:not(.office-contact-person-group-row):not(.office-company-contact-detail-row)>td{display:grid!important;grid-template-columns:minmax(96px,34%) minmax(0,1fr)!important;gap:9px;width:100%!important;min-width:0!important;padding:9px 11px!important;border:0!important;border-bottom:1px solid var(--office-border-soft,var(--office-border))!important;white-space:normal!important;overflow-wrap:anywhere}
  .office-contacts-mobile-table-r029 tbody>tr:not(.office-contact-person-group-row):not(.office-company-contact-detail-row)>td:last-child{border-bottom:0!important}
  .office-contacts-mobile-table-r029 td[data-label]::before{content:attr(data-label);font-size:11px;font-weight:650;color:var(--office-text-muted)}
  .office-contacts-mobile-table-r029 td.office-table-actions-column{display:flex!important;justify-content:flex-end!important;align-items:center!important}
  .office-contacts-mobile-table-r029 td.office-table-actions-column::before{content:none!important}
  .office-contact-person-group-row{display:block!important;border:1px solid var(--office-border)!important;border-radius:10px!important;overflow:hidden}
  .office-contact-person-group-row td{display:block!important;width:100%!important;padding:0!important}
  .office-contact-person-group-toggle{min-height:48px!important;padding:10px 12px!important}
  .office-company-contact-detail-row{display:grid!important;grid-template-columns:1fr!important;margin:-8px 8px 8px;padding:8px 10px;border:1px dashed var(--office-border)!important;border-radius:9px;background:var(--office-surface-soft)!important}
  .office-company-contact-detail-row td{display:none!important;border:0!important;padding:4px 0!important}
  .office-company-contact-detail-row td:first-child,.office-company-contact-detail-row td:nth-child(3){display:block!important;width:100%!important}
  .office-contacts-page .office-email-cell{align-items:flex-start;flex-wrap:wrap}
  .office-contacts-page .office-email-actions{margin-left:0}
  .office-company-quick-dialog{width:calc(100vw - 16px)!important;max-width:none!important;max-height:calc(100dvh - 16px)!important}
  .office-company-quick-dialog .office-dialog-body{overflow:auto!important;padding:14px!important}
  .office-company-quick-dialog .office-form-grid{grid-template-columns:1fr!important}
  .office-company-quick-dialog .office-field-span-two,.office-company-quick-dialog .office-field-span-three{grid-column:1!important}

  /* Notifications: keep action and message controls reachable with one thumb. */
  .office-messages-page .office-page-heading>.office-button{width:100%;justify-content:center}
  .office-message-center-heading{padding:14px!important}
  .office-message-item{grid-template-columns:minmax(0,1fr) 44px!important}
  .office-message-open{padding:13px 4px 13px 13px!important;grid-template-columns:34px minmax(0,1fr) 16px!important;gap:9px!important}
  .office-message-title{white-space:normal!important;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
  .office-message-meta{display:grid!important;gap:2px!important}
  .office-message-actions{padding:0 6px 0 0!important}
  .office-message-state{align-self:start;margin-top:8px}
}

@media(max-width:390px){
  .office-worktime-actions,.office-time-list-actions,.office-worktime-timesheet-actions{grid-template-columns:1fr!important}
  .office-leave-command-actions{grid-template-columns:minmax(0,1fr) 44px!important}
  .office-leave-command-actions .office-button.is-primary{grid-column:1/-1}
  .office-contacts-toolbar-actions-r027{grid-template-columns:1fr!important}
}

/* r029 – structured worktime model editor (actual component class names). */
.office-worktime-models-r029 .office-table-frame{margin-top:12px}
.office-worktime-model-dialog-r029{width:min(1120px,calc(100vw - 40px));max-width:none}
.office-worktime-model-body-r029{display:grid;gap:16px}
.office-worktime-day-grid-r029{display:grid;gap:6px}
.office-worktime-day-row-r029{display:grid;grid-template-columns:70px 72px 112px 118px 118px minmax(160px,1fr);gap:8px;align-items:end;padding:8px 10px;border:1px solid var(--office-border-soft,var(--office-border));border-radius:9px;background:var(--office-surface-soft,#f7f8f9)}
.office-worktime-day-row-r029.is-header{align-items:center;min-height:34px;background:transparent;border:0;border-bottom:1px solid var(--office-border);border-radius:0;color:var(--office-text-muted);font-size:11px;font-weight:650;padding-block:4px}
.office-worktime-day-row-r029 input,.office-worktime-day-row-r029 select{min-width:0;width:100%}
.office-worktime-vacation-value-r029{display:grid;grid-template-columns:minmax(220px,1fr) minmax(260px,1fr) minmax(200px,.7fr);gap:14px;align-items:end;padding:13px 14px;border:1px solid var(--office-border);border-radius:10px;background:var(--office-surface-soft,#f7f8f9)}
.office-worktime-vacation-value-r029>div:first-child{display:grid;gap:2px}
.office-worktime-vacation-value-r029>div:first-child span,.office-worktime-vacation-value-r029>div:first-child small{color:var(--office-text-muted);font-size:11px}
.office-worktime-vacation-value-r029>div:first-child strong{font-size:18px}
.office-worktime-exceptions-r029 .office-settings-actions{margin-top:10px}
@media(max-width:900px){
  .office-worktime-day-row-r029{grid-template-columns:64px 64px 100px 1fr 1fr}
  .office-worktime-day-row-r029>*:last-child{grid-column:1/-1}
  .office-worktime-vacation-value-r029{grid-template-columns:1fr 1fr}
  .office-worktime-vacation-value-r029>.office-field{grid-column:1/-1}
}
@media(max-width:700px){
  .office-worktime-model-dialog-r029{width:calc(100vw - 16px);max-height:calc(100dvh - 16px)}
  .office-worktime-model-dialog-r029 .office-dialog-body{overflow:auto;padding:14px}
  .office-worktime-day-row-r029.is-header{display:none}
  .office-worktime-day-row-r029{grid-template-columns:1fr 56px;gap:8px 10px;align-items:center;padding:11px}
  .office-worktime-day-row-r029>strong{font-size:15px}
  .office-worktime-day-row-r029>.office-input-with-suffix,.office-worktime-day-row-r029>input,.office-worktime-day-row-r029>select{grid-column:1/-1}
  .office-worktime-vacation-value-r029{grid-template-columns:1fr;gap:10px}
  .office-worktime-vacation-value-r029>.office-field{grid-column:1}
}

/* r030 – Bewirtungsbeleg-Status klar von der folgenden Karte trennen. */
.office-hospitality-status-message-r030{margin-bottom:12px!important}

/* r030 – LV-Arbeitsfläche, Sidebar, Tabellenraster und kompakte Editoren. */
html.office-boq-focus-active-r030,body.office-boq-focus-active-r030{overflow:hidden!important}
.office-procurement-workspace.is-focus-mode{position:fixed!important;inset:0!important;z-index:9999!important;background:var(--office-page-bg,#f7f8fa)!important;padding:8px 12px 12px!important;overflow:hidden!important}
.office-procurement-workspace.is-focus-mode>.office-context-bar,
.office-procurement-workspace.is-focus-mode>.office-mobile-project-navigation,
.office-procurement-workspace.is-focus-mode>.office-procurement-summary,
.office-procurement-workspace.is-focus-mode>.office-procurement-tabs,
.office-procurement-workspace.is-focus-mode>.office-ava-primary-action-row-r025{display:none!important}
.office-procurement-workspace.is-focus-mode .office-boq-ag-workspace{height:calc(100dvh - 16px)!important;display:flex!important;flex-direction:column!important}
.office-procurement-workspace.is-focus-mode .office-boq-grid-shell-r028{flex:1 1 auto!important;min-height:0!important}
.office-procurement-workspace.is-focus-mode .office-boq-grid-v2,
.office-procurement-workspace.is-focus-mode .office-boq-ag-grid{height:100%!important;min-height:0!important;max-height:none!important}
.office-boq-ag-workspace .ag-header-cell,.office-boq-ag-workspace .ag-cell{border-right:1px solid color-mix(in srgb,var(--office-border,#d9e0e7) 92%,#fff)!important}
.office-boq-ag-workspace .ag-header-cell:last-child,.office-boq-ag-workspace .ag-cell:last-child{border-right:0!important}
.office-boq-ag-workspace .ag-row{border-bottom:1px solid color-mix(in srgb,var(--office-border,#d9e0e7) 92%,#fff)!important}
.office-boq-detail-sidebar-v2{max-height:100%!important;min-height:0!important;overflow-y:auto!important;overflow-x:hidden!important;padding-bottom:18px!important;box-sizing:border-box!important}
.office-boq-detail-sidebar-v2 .office-boq-detail-sticky-actions{margin-bottom:6px!important}
.office-boq-rich-toolbar-v2{gap:2px!important;padding:4px!important}
.office-boq-rich-toolbar-v2 button{min-width:24px!important;width:auto!important;height:24px!important;min-height:24px!important;padding:0 5px!important;font-size:11px!important;border-radius:5px!important}
.office-boq-rich-toolbar-v2 button .office-svg-icon{width:14px!important;height:14px!important}
.office-boq-rich-content-v2 p{margin:0!important}
.office-boq-rich-content-v2 div{margin:0!important}
.office-boq-bidder-actions-r030{display:flex!important;align-items:center!important;gap:8px!important;justify-content:flex-start!important;margin-bottom:10px!important}
.office-boq-search-clear-r030{display:none;position:absolute;right:7px;top:50%;transform:translateY(-50%);width:26px;height:26px;border:0;background:transparent;padding:5px;cursor:pointer;color:var(--office-text-muted)}
.office-table-search-control.has-search-value-r030 [data-office-boq-search-icon]{display:none!important}
.office-table-search-control.has-search-value-r030 .office-boq-search-clear-r030{display:grid!important;place-items:center}
.office-table-search-control.has-search-value-r030 .office-table-search{padding-right:38px!important}

/* ========================================================================== */
/* r030 – final worktime / mobile consolidation                                */
/* ========================================================================== */
.office-overtime-dialog-message-r030{margin:0 0 12px}
.office-holiday-table-toggle-r030{display:flex;justify-content:flex-end;margin-top:12px}
.office-worktime-model-heading-r030{align-items:flex-end!important;gap:16px!important;margin-bottom:0!important}
.office-worktime-model-heading-r030>div{min-width:0}
.office-worktime-model-heading-r030>.office-button{margin-left:auto;flex:0 0 auto;height:36px;min-height:36px}
.office-worktime-model-dialog-shell-r030{overflow:hidden!important}
.office-worktime-model-dialog-shell-r030>form,.office-worktime-model-dialog-shell-r030{max-width:100%!important}
.office-worktime-model-dialog-shell-r030 .office-dialog-body{overflow-x:hidden!important;overflow-y:auto!important;min-width:0!important}
.office-worktime-model-dialog-shell-r030 .office-form-grid,.office-worktime-model-body-r029,.office-worktime-day-grid-r029{min-width:0!important;max-width:100%!important}
.office-time-billable-r030{align-self:end;min-height:44px;display:flex!important;align-items:center!important;gap:9px!important;padding-bottom:1px}
.office-time-billable-r030 input[type="checkbox"]{appearance:none;-webkit-appearance:none;width:18px;height:18px;min-width:18px;margin:0;border:1px solid var(--office-border-strong,#aeb7c0);border-radius:4px;background:var(--office-surface,#fff);display:grid;place-items:center}
.office-time-billable-r030 input[type="checkbox"]:checked{background:var(--office-text,#24272a);border-color:var(--office-text,#24272a)}
.office-time-billable-r030 input[type="checkbox"]:checked::after{content:"";width:9px;height:5px;border-left:2px solid #fff;border-bottom:2px solid #fff;transform:rotate(-45deg) translateY(-1px)}

@media(max-width:700px){
  /* Tabs always reveal the active item instead of leaving it clipped at an edge. */
  .office-time-main-tabs{scroll-padding-inline:18px!important;padding-inline:18px!important;margin-inline:-18px!important;width:calc(100% + 36px)!important}
  .office-time-main-tabs .office-local-tab.active{scroll-margin-inline:18px}

  /* Worktime/timesheet actions may wrap but can never overlap. */
  .office-worktime-timesheet-actions{display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:8px!important;margin-left:0!important}
  .office-worktime-timesheet-actions>*{min-width:0!important;max-width:100%!important}
  .office-worktime-timesheet-actions .office-button{white-space:normal!important;line-height:1.15!important;min-height:40px!important;padding:7px 8px!important}

  /* Absence action remains entirely inside its card. */
  .office-absence-commandbar-r019>.office-button,.office-absence-commandbar-r019 .office-leave-command-actions,.office-absence-commandbar-r019 .office-leave-command-actions>.office-button{width:100%!important;max-width:100%!important;margin:0!important;justify-content:center!important}

  /* Activity and travel controls share the same mobile geometry. */
  .office-time-list-actions{grid-template-columns:1fr 1fr!important}
  .office-time-list-actions>*{min-width:0!important;max-width:100%!important;white-space:normal!important;line-height:1.15!important}
  .office-time-filter-inline-r023 select{appearance:none;-webkit-appearance:none;background-image:var(--office-select-chevron,none)!important}

  /* Model dialog: no horizontal scrollbar; footer remains reachable. */
  .office-worktime-model-dialog-r029,.office-worktime-model-dialog-shell-r030{width:calc(100vw - 16px)!important;max-width:none!important;max-height:calc(100dvh - 16px)!important;overflow:hidden!important}
  .office-worktime-model-dialog-shell-r030 .office-dialog-footer{position:sticky;bottom:0;background:var(--office-surface,#fff);z-index:2}
  .office-worktime-model-heading-r030{display:grid!important;grid-template-columns:1fr!important;gap:12px!important}
  .office-worktime-model-heading-r030>.office-button{width:100%;margin-left:0;justify-content:center}

  /* Contacts slightly denser while preserving readable tap targets. */
  .office-contacts-mobile-table-r029 tbody{gap:8px!important}
  .office-contacts-mobile-table-r029 tbody>tr:not(.office-contact-person-group-row):not(.office-company-contact-detail-row)>td{padding:8px 10px!important;min-height:36px!important}
  .office-contact-person-group-toggle{min-height:44px!important;padding:9px 10px!important}
}
@media(max-width:390px){
  .office-worktime-timesheet-actions,.office-time-list-actions{grid-template-columns:1fr!important}
}

/* r030 – final LV available-height and dashboard flow corrections. */
.office-collection-panel>.office-collapsible-body:not([hidden]){max-height:none!important;overflow:visible!important}
.office-holiday-table-toggle-r030 .office-svg-icon.is-open{transform:rotate(180deg)}
@media(min-width:1000px){
  .office-boq-grid-v2:not(.is-details-pinned-r028)>.office-boq-ag-grid{height:var(--office-boq-r030-grid-height,calc(100dvh - 300px))!important;max-height:none!important;min-height:360px!important}
  .office-boq-grid-v2.is-details-pinned-r028{height:var(--office-boq-r030-host-height,calc(100dvh - 258px))!important;max-height:none!important}
  .office-boq-grid-v2.is-details-pinned-r028>[data-office-boq-detail-root]{height:auto!important;max-height:none!important}
}
.office-procurement-workspace.is-focus-mode .office-boq-ag-workspace{min-height:0!important}
.office-procurement-workspace.is-focus-mode .office-boq-grid-v2{flex:1 1 auto!important;height:auto!important;min-height:0!important;max-height:none!important}
.office-procurement-workspace.is-focus-mode .office-boq-grid-v2>.office-boq-ag-grid{height:auto!important;flex:1 1 auto!important;min-height:0!important;max-height:none!important}


/* r030 archived AVA workspace entry */
.office-archive-entry-r030{display:flex;justify-content:center;margin-top:14px}
.office-archive-entry-r030 .office-button{height:36px;min-height:36px}


/* r030 build-fix 3: project LV action column follows the canonical Office table-action geometry. */
.office-project-boq-panel-r023 th.office-table-actions-column,
.office-project-boq-panel-r023 td.office-table-actions-column{
  width:132px!important;
  min-width:132px!important;
}
.office-project-boq-panel-r023 td.office-table-actions-column{
  padding-left:10px!important;
  padding-right:10px!important;
  white-space:nowrap;
}
.office-project-boq-row-actions-r030{
  width:100%;
  justify-content:flex-end;
  gap:6px;
}
.office-project-boq-open-r030{
  height:36px;
  min-height:36px;
  min-width:70px;
  padding:0 12px;
  border-radius:8px;
  box-sizing:border-box;
  font-size:12.5px;
  font-weight:600;
}
.office-project-boq-row-actions-r030>.office-context-menu-wrap{
  flex:0 0 auto;
}
.office-project-boq-row-actions-r030 .office-row-menu-trigger{
  width:36px!important;
  min-width:36px!important;
  height:36px!important;
  min-height:36px!important;
}
.office-project-boq-row-actions-r030 .office-row-menu-popover{
  min-width:250px;
}

/* r030 build-fix 4: final LV/UI correction round. */

/* LV overview: the fixed "Ohne Gruppe" bucket follows the exact group-row pattern. */
.office-project-boq-group-row-r028.is-ungrouped .office-project-boq-group-toggle-r028{
    color:var(--office-text);
}

/* LV AG Grid: keep the column line as the resize affordance, but hide the extra
   visual grip. The actual AG Grid resize hit area stays intact. */
.office-boq-ag-workspace .ag-header-cell-resize{
    background:transparent!important;
}
.office-boq-ag-workspace .ag-header-cell-resize::after{
    display:none!important;
}
.office-boq-ag-workspace .office-ag-header-menu-button{
    opacity:.78!important;
    color:#5f6872!important;
}
.office-boq-ag-workspace .ag-header-cell:hover .office-ag-header-menu-button,
.office-boq-ag-workspace .office-ag-header-menu-button:focus-visible{
    opacity:1!important;
    color:#4f5963!important;
}
.office-boq-ag-workspace .ag-header-cell.office-ag-selection-header,
.office-boq-ag-workspace .ag-cell.office-ag-selection-cell{
    border-right:0!important;
}

/* Compact LV KPI cards. Revision/check actions sit on the value row instead of
   competing with the title. Scope remains inside the LV workspace only. */
.office-procurement-workspace>.office-procurement-summary-r030{
    gap:10px;
    margin-bottom:14px;
}
.office-procurement-workspace>.office-procurement-summary-r030>div{
    min-height:54px!important;
    padding:8px 12px!important;
    gap:3px!important;
}
.office-procurement-workspace>.office-procurement-summary-r030>div>span{
    font-size:9.5px!important;
}
.office-procurement-workspace>.office-procurement-summary-r030 strong{
    font-size:16px!important;
    line-height:1.2!important;
}
.office-boq-kpi-value-row-r030{
    min-width:0;
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:8px;
}
.office-boq-kpi-value-row-r030>strong{
    min-width:0;
    flex:1 1 auto;
}
.office-boq-kpi-value-row-r030>.office-kpi-icon-button-r025{
    flex:0 0 22px;
    margin-left:auto!important;
}

/* Angebotsprüfung / Preisspiegel use the same Office panel master as Auftrag,
   Nachträge and Rechnungen; only their local action row may wrap. */
.office-boq-bids.office-dashboard-panel{
    overflow:hidden;
    padding:20px;
}
.office-boq-bids>.office-boq-bids-heading-r030{
    align-items:flex-start;
    margin-bottom:16px;
}
.office-boq-bids-heading-r030>div:first-child{
    min-width:0;
    flex:1 1 auto;
}
.office-boq-bids-heading-r030 h2{
    margin:3px 0 0;
}
.office-boq-bids-heading-r030 p{
    margin:4px 0 0;
    color:var(--office-text-secondary);
    font-size:12.5px;
    line-height:1.35;
}
.office-boq-bids-actions-r030{
    margin-left:auto;
    display:flex;
    align-items:center;
    justify-content:flex-end;
    flex-wrap:wrap;
    gap:8px;
}
.office-boq-bids-actions-r030>.office-button{
    height:36px!important;
    min-height:36px!important;
}
.office-boq-bids.office-dashboard-panel>.office-empty-state{
    min-height:230px;
}
.office-boq-bids.office-dashboard-panel>.office-boq-bid-summary-grid{
    margin:0 -20px;
}
.office-boq-bids.office-dashboard-panel>.office-boq-comparison-scroll{
    margin:0 -20px -20px;
}
.office-boq-bids.office-dashboard-panel>.office-price-summary-r030{
    margin-left:-20px;
    margin-right:-20px;
}

/* Docked LV sidebar: the r030 available-height host must give the detail root a
   definite height so the sidebar itself can scroll independently. */
@media(min-width:1000px){
    .office-boq-grid-v2.is-details-pinned-r028{
        grid-template-rows:minmax(0,1fr) 42px!important;
        align-items:stretch!important;
    }
    .office-boq-grid-v2.is-details-pinned-r028>.office-boq-ag-grid{
        height:100%!important;
        min-height:0!important;
        max-height:none!important;
        align-self:stretch!important;
    }
    .office-boq-grid-v2.is-details-pinned-r028>[data-office-boq-detail-root]{
        grid-row:1 / span 2!important;
        height:100%!important;
        max-height:100%!important;
        min-height:0!important;
        align-self:stretch!important;
        overflow:hidden!important;
    }
    .office-boq-detail-sidebar-v2.is-docked-r028{
        height:100%!important;
        max-height:100%!important;
        min-height:0!important;
        overflow-y:auto!important;
        overflow-x:hidden!important;
        overscroll-behavior:contain;
        padding-bottom:18px!important;
    }
    .office-procurement-workspace.is-focus-mode .office-boq-grid-v2.is-details-pinned-r028{
        height:100%!important;
        min-height:0!important;
    }
}

/* Administration: no duplicate page title. Anmeldung and Quick Capture are
   independent compact Office cards with consistent card-button geometry. */
.office-administration-card-r030>.office-administration-heading-r030,
.office-qc-admin-r025>.office-administration-heading-r030,
.office-qc-admin-user-heading-r030{
    display:flex!important;
    align-items:flex-start!important;
    justify-content:space-between!important;
    gap:16px!important;
}
.office-administration-card-r030>.office-administration-heading-r030{
    margin-bottom:14px;
}
.office-settings-auth-body-r030{
    display:grid;
    gap:10px;
}
.office-administration-card-r030 .office-field-help{
    padding:0;
}
.office-qc-admin-r025>.office-administration-heading-r030{
    margin-bottom:12px!important;
}
.office-qc-admin-r025>.office-administration-heading-r030>div{
    min-width:0;
    flex:1 1 auto;
}
.office-qc-admin-r025>.office-administration-heading-r030>.office-button,
.office-qc-admin-user-heading-r030>.office-button{
    flex:0 0 auto;
    height:36px!important;
    min-height:36px!important;
    margin-left:auto!important;
}
.office-qc-admin-user-r025{
    gap:8px!important;
    margin-top:12px!important;
}
.office-qc-admin-user-r025+.office-qc-admin-user-r025{
    padding-top:14px!important;
}
.office-qc-admin-user-heading-r030{
    margin:0!important;
}
.office-qc-admin-user-heading-r030 h3{
    margin:0;
}
.office-qc-admin-user-heading-r030 p{
    margin:3px 0 0;
}
@media(max-width:700px){
    .office-boq-bids>.office-boq-bids-heading-r030,
    .office-administration-card-r030>.office-administration-heading-r030,
    .office-qc-admin-r025>.office-administration-heading-r030,
    .office-qc-admin-user-heading-r030{
        display:grid!important;
        grid-template-columns:1fr!important;
        gap:10px!important;
    }
    .office-boq-bids-actions-r030{
        width:100%;
        margin-left:0;
        justify-content:flex-start;
    }
    .office-boq-bids-actions-r030>.office-button{
        flex:1 1 auto;
    }
    .office-qc-admin-r025>.office-administration-heading-r030>.office-button,
    .office-qc-admin-user-heading-r030>.office-button{
        width:100%;
        margin-left:0!important;
        justify-content:center;
    }
}


/* r030 build-fix 5 – final Office UI consistency corrections. */
.office-field textarea.office-textarea{
  width:100%;min-height:92px;padding:10px 11px;border:1px solid var(--office-border-strong);border-radius:8px;
  background:var(--office-surface);color:var(--office-text);font:inherit;font-size:14px;font-weight:400;line-height:1.45;
  resize:vertical;box-sizing:border-box
}
.office-field textarea.office-textarea:focus{
  border-color:var(--office-primary);outline:2px solid color-mix(in srgb,var(--office-primary) 18%,transparent);outline-offset:0
}
.office-company-quick-dialog>form{
  min-height:0;overflow:hidden;display:grid;grid-template-rows:minmax(0,1fr) auto
}
.office-company-quick-dialog>form>.office-dialog-body{overflow-y:auto;overflow-x:hidden;min-height:0}
.office-cost-wizard-dialog-r030{
  width:min(720px,calc(100vw - 24px));max-height:calc(100dvh - 24px);overflow:hidden
}
.office-cost-wizard-dialog-r030>.office-dialog-body{overflow-y:auto;overflow-x:hidden;min-height:0}
.office-cost-source-mode-r030-bf5{margin-bottom:16px}
.office-cost-source-picker-r030-bf5{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin:0 0 16px}
.office-cost-source-picker-r030-bf5 .office-field{min-width:0}
.office-cost-source-picker-r030-bf5 .office-client-combobox{width:100%}
.office-cost-source-picker-r030-bf5 .office-combobox-popover{max-height:min(320px,42dvh)}
.office-cost-source-picker-r030-bf5 .office-combobox-options{max-height:min(250px,32dvh);overflow:auto}
.office-cost-name-field-r030-bf5{margin-top:4px}
@media(max-width:700px){.office-cost-source-picker-r030-bf5{grid-template-columns:1fr}}

/* Selection and action columns are utility columns, not data columns. */
.office-boq-ag-workspace .ag-header-cell.office-ag-selection-header,
.office-boq-ag-workspace .ag-cell.office-ag-selection-cell,
.office-boq-ag-workspace .ag-header-cell.office-ag-issue-header,
.office-boq-ag-workspace .ag-cell.office-ag-issue-cell,
.office-boq-ag-workspace .ag-header-cell.office-ag-action-header,
.office-boq-ag-workspace .ag-cell.office-ag-action-cell{border-right:0!important;border-left:0!important}
.office-boq-ag-workspace .ag-pinned-right-header,
.office-boq-ag-workspace .ag-pinned-right-cols-container{border-left:0!important;box-shadow:none!important}
.office-imported-offer-data-grid-r030-bf5{grid-template-columns:repeat(4,minmax(0,1fr))}
.office-imported-offer-status-field-r030-bf5{grid-column:span 2}
.office-imported-offer-status-field-r030-bf5 dd{display:flex;align-items:center;gap:10px}
.office-imported-offer-status-field-r030-bf5 select{min-width:180px}
.office-imported-offer-pdf-viewer-r030-bf5{height:min(70dvh,780px);min-height:520px}
.office-imported-offer-pdf-viewer-r030-bf5 object{width:100%;height:100%;border:0}
.office-imported-billing-toolbar-r030-bf5{display:flex;flex-wrap:wrap;gap:8px;margin:0 0 14px}
.office-imported-billing-block-r030-bf5{border-top:1px solid var(--office-border);padding:16px 0;margin-top:10px}
.office-imported-billing-block-r030-bf5:first-of-type{border-top:0}
.office-imported-billing-footer-r030-bf5{display:flex;align-items:flex-end;justify-content:space-between;gap:18px;margin-top:18px;padding-top:16px;border-top:1px solid var(--office-border)}
.office-imported-billing-footer-r030-bf5>div{display:grid;gap:2px}.office-imported-billing-footer-r030-bf5 strong{font-size:20px}.office-imported-billing-footer-r030-bf5 small{color:var(--office-text-muted)}
@media(max-width:900px){.office-imported-offer-data-grid-r030-bf5{grid-template-columns:1fr 1fr}.office-imported-offer-pdf-viewer-r030-bf5{min-height:420px}}
@media(max-width:700px){.office-imported-offer-data-grid-r030-bf5{grid-template-columns:1fr}.office-imported-offer-status-field-r030-bf5{grid-column:auto}.office-imported-offer-status-field-r030-bf5 dd,.office-imported-billing-footer-r030-bf5{align-items:stretch;flex-direction:column}.office-imported-offer-pdf-viewer-r030-bf5{min-height:360px}}


/* r030 build-fix 7 – final LV utility-column borders + compact contractor invoice empty state. */
/* The selection and action columns are utility columns. Remove the pinned-container
   boundaries themselves, not only the individual header/cell borders. */
.office-boq-ag-workspace .ag-pinned-left-header,
.office-boq-ag-workspace .ag-pinned-left-cols-viewport,
.office-boq-ag-workspace .ag-pinned-left-cols-container{
  border-right:0!important;
  box-shadow:none!important;
}
.office-boq-ag-workspace .ag-pinned-right-header,
.office-boq-ag-workspace .ag-pinned-right-cols-viewport,
.office-boq-ag-workspace .ag-pinned-right-cols-container{
  border-left:0!important;
  box-shadow:none!important;
}
.office-boq-ag-workspace .ag-header-cell.office-ag-selection-header,
.office-boq-ag-workspace .ag-cell.office-ag-selection-cell,
.office-boq-ag-workspace .ag-header-cell.office-ag-action-header,
.office-boq-ag-workspace .ag-cell.office-ag-action-cell{
  border-left:0!important;
  border-right:0!important;
}


/* r030 build-fix 8 – definitive LV utility-column boundaries + clean AVA empty states. */
/* AG Grid Quartz draws pinned-column separators at theme/container level in addition
   to cell borders. Disable those separators for this LV grid only. */
.office-boq-ag-workspace .ag-theme-quartz{
  --ag-pinned-column-border:none;
  --ag-pinned-column-shadow:none;
}
.office-boq-ag-workspace .ag-pinned-left-header,
.office-boq-ag-workspace .ag-pinned-left-cols-viewport,
.office-boq-ag-workspace .ag-pinned-left-cols-container,
.office-boq-ag-workspace .ag-pinned-right-header,
.office-boq-ag-workspace .ag-pinned-right-cols-viewport,
.office-boq-ag-workspace .ag-pinned-right-cols-container{
  border-left:0!important;
  border-right:0!important;
  box-shadow:none!important;
}
.office-boq-ag-workspace .ag-pinned-left-header::before,
.office-boq-ag-workspace .ag-pinned-left-header::after,
.office-boq-ag-workspace .ag-pinned-left-cols-viewport::before,
.office-boq-ag-workspace .ag-pinned-left-cols-viewport::after,
.office-boq-ag-workspace .ag-pinned-right-header::before,
.office-boq-ag-workspace .ag-pinned-right-header::after,
.office-boq-ag-workspace .ag-pinned-right-cols-viewport::before,
.office-boq-ag-workspace .ag-pinned-right-cols-viewport::after{
  border:0!important;
  box-shadow:none!important;
}
/* Selection, drag, issue and action columns are utility columns and do not
   participate in the visual data-column grid. */
.office-boq-ag-workspace .ag-header-cell.office-ag-selection-header,
.office-boq-ag-workspace .ag-cell.office-ag-selection-cell,
.office-boq-ag-workspace .ag-header-cell.office-ag-drag-header,
.office-boq-ag-workspace .ag-cell.office-ag-drag-cell,
.office-boq-ag-workspace .ag-header-cell.office-ag-issue-header,
.office-boq-ag-workspace .ag-cell.office-ag-issue-cell,
.office-boq-ag-workspace .ag-header-cell.office-ag-action-header,
.office-boq-ag-workspace .ag-cell.office-ag-action-cell{
  border-left:0!important;
  border-right:0!important;
}
/* Also remove the final data-column border directly before the utility area.
   :has() follows the actually displayed columns, so hidden optional columns do
   not reintroduce a separator. */
.office-boq-ag-workspace .ag-header-cell:has(+ .office-ag-issue-header),
.office-boq-ag-workspace .ag-cell:has(+ .office-ag-issue-cell){
  border-right:0!important;
}

.office-ava-empty-clean-r030{
  padding:28px 16px 18px;
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  gap:5px;
  text-align:center;
  color:var(--office-text-muted);
}
.office-ava-empty-clean-r030 strong{color:var(--office-text);font-size:14px;font-weight:650}
.office-ava-empty-clean-r030 p{max-width:560px;margin:0;color:var(--office-text-muted);line-height:1.4}
.office-ava-empty-clean-r030>.office-button{margin-top:8px}


/* r031 – consolidated corrections. */
/* Worktime model dialogs stay centered with a scrollable body and visible footer. */
.office-worktime-model-dialog-r029{display:flex!important;align-items:center!important;justify-content:center!important;padding:18px!important;overflow:hidden!important}
.office-worktime-model-dialog-shell-r030{position:relative!important;inset:auto!important;transform:none!important;margin:auto!important;width:min(1100px,calc(100vw - 36px))!important;max-height:calc(100dvh - 36px)!important;display:grid!important;grid-template-rows:auto minmax(0,1fr) auto!important;overflow:hidden!important}
.office-worktime-model-body-r029{min-height:0!important;overflow-y:auto!important;overflow-x:hidden!important}
.office-worktime-target-summary-r031{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin:12px 0;padding:10px 12px;border:1px solid var(--office-border);border-radius:10px;background:var(--office-surface-soft)}
.office-worktime-target-summary-r031>div{display:grid;gap:2px}.office-worktime-target-summary-r031 span{font-size:12px;color:var(--office-text-muted)}.office-worktime-target-summary-r031 strong{font-size:15px}.office-worktime-target-summary-r031 .is-difference strong{color:#b54708}.office-worktime-target-summary-r031 .is-match strong{color:#277a46}
@media(max-width:760px){.office-worktime-target-summary-r031{grid-template-columns:1fr}}

/* Project context: the complete breadcrumb row is centered by the parent, with no child offsets. */
.office-project-workspace>.office-context-bar.is-contextual,.office-procurement-workspace>.office-context-bar.is-contextual{height:82px!important;min-height:82px!important;padding:0!important;display:flex!important;align-items:center!important}
.office-project-workspace>.office-context-bar.is-contextual>.office-context-main,.office-procurement-workspace>.office-context-bar.is-contextual>.office-context-main{height:100%!important;margin:0!important;padding:0!important;display:flex!important;align-items:center!important}
.office-project-workspace>.office-context-bar.is-contextual .office-context-path,.office-procurement-workspace>.office-context-bar.is-contextual .office-context-path{height:auto!important;min-height:0!important;margin:0!important;padding:0!important;display:flex!important;align-items:center!important}
.office-project-workspace>.office-context-bar.is-contextual .office-context-title-link,.office-procurement-workspace>.office-context-bar.is-contextual .office-context-title-link{transform:none!important;margin:0!important}

/* LV: slightly denser rows; data grid starts at Kurztext and ends at GP. */
.office-boq-ag-grid{--ag-row-height:33px;--ag-header-height:38px}
.office-boq-ag-workspace .ag-header-cell.office-ag-title-header,.office-boq-ag-workspace .ag-cell.office-ag-title-cell{border-left:1px solid var(--office-border,#d9e0e7)!important}
.office-boq-ag-workspace .ag-header-cell.office-ag-total-header,.office-boq-ag-workspace .ag-cell.office-ag-total-cell{border-right:1px solid var(--office-border,#d9e0e7)!important}
.office-boq-ag-workspace .ag-header-cell.office-ag-selection-header,.office-boq-ag-workspace .ag-cell.office-ag-selection-cell,.office-boq-ag-workspace .ag-header-cell.office-ag-drag-header,.office-boq-ag-workspace .ag-cell.office-ag-drag-cell,.office-boq-ag-workspace .ag-header-cell.office-ag-issue-header,.office-boq-ag-workspace .ag-cell.office-ag-issue-cell,.office-boq-ag-workspace .ag-header-cell.office-ag-action-header,.office-boq-ag-workspace .ag-cell.office-ag-action-cell{border-left:0!important;border-right:0!important}
.office-boq-position-fields-r031>h3{display:none!important}
.office-boq-bidder-field-r031{margin:10px 0!important;padding:12px!important;border:1px solid var(--office-border)!important;border-radius:10px!important;background:var(--office-surface-soft)!important}
.office-boq-unit-picker-r031{display:grid;gap:6px}.office-boq-unit-picker-r031 select{width:100%}

/* Cost wizard: depth cards use deliberate line breaks and comboboxes remain top-layer overlays. */
.office-cost-wizard-dialog-r030 .office-boq-depth-choices-r028 .office-choice-card-r023 span{display:block}
.office-cost-wizard-dialog-r030 .office-combobox-popover{position:fixed!important;z-index:2147483000!important;max-height:min(360px,50dvh)!important;overflow:auto!important}


/* r031 – Offer, PDF and mail consolidation. */
.office-offer-phases-heading-r031{margin-bottom:18px!important}
.office-offer-phase-checkbox-r031{appearance:none!important;-webkit-appearance:none!important;width:18px!important;height:18px!important;min-width:18px!important;min-height:18px!important;margin:0 auto!important;border:1px solid var(--office-border-strong)!important;border-radius:4px!important;background:var(--office-surface)!important;display:grid!important;place-items:center!important;box-shadow:none!important;cursor:pointer}
.office-offer-phase-checkbox-r031:checked{background:var(--office-primary)!important;border-color:var(--office-primary)!important}
.office-offer-phase-checkbox-r031:checked::after{content:"";width:8px;height:4px;border-left:2px solid #fff;border-bottom:2px solid #fff;transform:rotate(-45deg) translateY(-1px)}
.office-external-mail-dialog-r031{width:min(820px,calc(100vw - 32px));max-height:calc(100dvh - 32px)}
.office-external-mail-dialog-r031>.office-dialog-body,.office-external-mail-body-r031{display:grid;gap:14px;overflow:auto;min-height:0}
.office-mail-sender-r031{display:grid;grid-template-columns:110px minmax(0,1fr);gap:3px 12px;padding:11px 13px;border:1px solid var(--office-border);border-radius:10px;background:var(--office-surface-soft)}
.office-mail-sender-r031>span{grid-row:1/3;color:var(--office-text-muted);font-size:12px;font-weight:650;align-self:center}.office-mail-sender-r031 strong{font-size:14px}.office-mail-sender-r031 small{color:var(--office-text-muted)}
.office-mail-editor-r031 .office-richtext-editor{min-height:360px}.office-mail-editor-r031 .office-richtext-surface,.office-mail-editor-r031 [contenteditable="true"]{font-family:Arial,Helvetica,sans-serif!important;font-size:10pt!important;color:#000!important;font-weight:400!important}
.office-invoice-preview-dialog-r027{width:min(1180px,calc(100vw - 32px));height:min(920px,calc(100dvh - 32px));max-height:calc(100dvh - 32px)}
.office-invoice-preview-body-r031{overflow:hidden!important;min-height:0!important;padding:12px!important}.office-invoice-preview-pdf-r031{height:100%;min-height:0}.office-invoice-preview-pdf-r031 object{width:100%;height:100%;min-height:0}
.office-offer-pdf-dialog-r027{width:min(1280px,calc(100vw - 32px));height:min(920px,calc(100dvh - 32px));max-height:calc(100dvh - 32px)}
.office-offer-pdf-dialog-r027 .office-offer-pdf-layout-r016{min-height:0;overflow:hidden}.office-offer-pdf-dialog-r027 .office-offer-pdf-preview-r016,.office-offer-pdf-dialog-r027 .office-offer-pdf-settings-r016{min-height:0;overflow:auto}
.office-mail-suggestions-r019{z-index:40;max-height:240px;overflow:auto}


/* r031 final – custom LV units and structural context centering. */
.office-boq-unit-create-r031{margin-top:8px;padding:10px;border:1px solid var(--office-border);border-radius:10px;background:var(--office-surface-soft);display:grid;gap:9px}
.office-boq-unit-create-r031[hidden]{display:none!important}
.office-boq-unit-create-r031 .office-field{margin:0!important}.office-boq-unit-create-r031 input{width:100%;box-sizing:border-box}
.office-boq-unit-create-actions-r031{display:flex;justify-content:flex-end;gap:8px;flex-wrap:wrap}.office-boq-unit-create-actions-r031 .office-button{height:32px;min-height:32px}
.office-project-workspace>.office-context-bar.is-contextual,.office-procurement-workspace>.office-context-bar.is-contextual{display:grid!important;grid-template-columns:minmax(0,1fr) auto!important;align-items:stretch!important;height:82px!important;min-height:82px!important;padding:0!important;margin:0!important}
.office-project-workspace>.office-context-bar.is-contextual>.office-context-main,.office-procurement-workspace>.office-context-bar.is-contextual>.office-context-main{height:82px!important;min-height:82px!important;display:flex!important;align-items:center!important;align-self:stretch!important;margin:0!important;padding:0!important;transform:none!important}
.office-project-workspace>.office-context-bar.is-contextual>.office-context-actions,.office-procurement-workspace>.office-context-bar.is-contextual>.office-context-actions{height:82px!important;display:flex!important;align-items:center!important;align-self:stretch!important;margin:0!important;padding:0!important}
.office-project-workspace>.office-context-bar.is-contextual .office-context-path,.office-procurement-workspace>.office-context-bar.is-contextual .office-context-path{align-self:center!important;margin:0!important;transform:none!important}

/* r031: Ausschreibungs-Mail nutzt den zentralen sichtbaren Mailmaster. */
.office-ava-tender-message-r031 .office-rich-surface{min-height:180px;max-height:320px;overflow:auto;font-family:Arial,Helvetica,sans-serif;font-size:10pt;color:#000}
.office-ava-tender-message-r031 .office-rich-editor{width:100%}

/* r031: Buchhaltungsempfänger ist lokal im Office-Formmaster, ohne globale Textarea-Änderung. */
.office-mail-accounting-recipients-r031{width:100%!important;min-height:96px!important;padding:11px 12px!important;border:1px solid var(--office-border-strong)!important;border-radius:10px!important;background:var(--office-surface)!important;color:var(--office-text)!important;font:inherit!important;font-size:14px!important;line-height:1.45!important;resize:vertical!important;box-sizing:border-box!important}
.office-mail-accounting-recipients-r031:focus{border-color:var(--office-primary)!important;outline:2px solid color-mix(in srgb,var(--office-primary) 18%,transparent)!important;outline-offset:0!important}

/* r031 build-fix 2 – workforce settings consistency and manual ordering. */
.office-holiday-table-toggle-r030 .office-holiday-toggle-icon-r031{width:14px!important;height:14px!important;min-width:14px!important}
.office-worktime-model-heading-r030>.office-button{margin-top:14px!important}
.office-worktime-model-name-r031{display:flex;align-items:center;justify-content:space-between;gap:8px;min-width:150px}
.office-worktime-model-sort-r031{display:flex;align-items:center;gap:2px;flex:0 0 auto}
.office-worktime-model-sort-r031 .office-icon-button{width:28px!important;height:28px!important;min-width:28px!important;min-height:28px!important;padding:6px!important}
.office-worktime-model-sort-r031 .office-svg-icon{width:12px!important;height:12px!important}
.office-worktime-model-sort-r031 .office-svg-icon.is-up{transform:rotate(180deg)}
.office-workforce-assignment-heading-r031 .office-year-switcher{margin-top:14px}
.office-workforce-assignment-r031 .office-workforce-assignment-input-r031{width:100%;height:36px;min-height:36px;box-sizing:border-box;padding:0 10px;border:1px solid var(--office-border-strong);border-radius:8px;background:var(--office-surface);color:var(--office-text);font:inherit;font-size:14px;font-weight:400}
.office-workforce-assignment-r031 select.office-workforce-assignment-input-r031{padding-right:30px}
.office-workforce-assignment-r031 .office-table-frame td{vertical-align:middle}
@media(max-width:700px){
  .office-workforce-assignment-heading-r031 .office-year-switcher{margin-top:12px}
  .office-worktime-model-name-r031{min-width:0}
}
.office-workforce-assignment-r031 select.office-workforce-assignment-input-r031{
  -webkit-appearance:none;appearance:none;
  background-image:url('/icons/office/navigation/chevron-down.svg');
  background-repeat:no-repeat;background-position:right 10px center;background-size:14px 14px;
}


/* r031 Build-Fix 3: copy-source pickers, group/dialog polish. */
.office-boq-copy-source-picker-r031{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin:14px 0 0}
.office-boq-copy-source-picker-r031 .office-field{min-width:0}
.office-boq-copy-source-picker-r031 .office-client-combobox{width:100%}
.office-boq-copy-source-picker-r031 .office-combobox-options{max-height:min(250px,32dvh);overflow:auto}
.office-boq-create-dialog .office-boq-depth-choices-r028 .office-choice-card-r023 span{display:block}
.office-email-recipient-custom-r023{grid-template-columns:minmax(190px,1fr) auto;align-items:center}
.office-email-recipient-custom-r023 .office-input{width:100%;min-width:0}
@media(max-width:700px){.office-boq-copy-source-picker-r031{grid-template-columns:1fr}}

/* r031 Build-Fix 4 – final dialog geometry and cost/LV consistency. */
.office-dialog-layer.office-worktime-model-dialog-r029{
  position:fixed!important;inset:0!important;width:auto!important;max-width:none!important;height:auto!important;
  display:flex!important;align-items:center!important;justify-content:center!important;padding:18px!important;box-sizing:border-box!important
}
.office-dialog-layer.office-worktime-model-dialog-r029>.office-worktime-model-dialog-shell-r030{
  margin:0!important;position:relative!important;left:auto!important;top:auto!important;right:auto!important;bottom:auto!important;
  width:min(1100px,calc(100vw - 36px))!important;max-height:calc(100dvh - 36px)!important
}
@media(min-width:901px){
  .office-worktime-model-dialog-shell-r030 .office-worktime-day-row-r029{
    grid-template-columns:56px 64px 108px 126px 126px minmax(180px,240px)!important;
    justify-content:start!important
  }
}
.office-project-cost-planning-r030 .office-project-boq-row-actions-r030{display:flex;align-items:center;justify-content:flex-end;gap:8px}
.office-combobox-popover[data-office-popover][aria-hidden="true"]{display:none!important}
.office-combobox-popover[data-office-popover].is-open{display:block}

/* r031 Build-Fix 5: Quick Capture + Bauleitung konsistent/kompakt */
.office-qc-mobile-cards-r032{display:none}
.office-qc-group-content-r032{display:grid;gap:6px;min-width:0}
.office-qc-group-thumbs-r032{display:flex;gap:6px;flex-wrap:wrap;min-width:0}
.office-quick-capture-details-r024[open] .office-qc-desktop-table-r032 .office-table-frame{
    border-radius:10px!important;
    overflow:hidden!important;
}
.office-quick-capture-details-r024[open] .office-qc-desktop-table-r032 .office-table-viewport{
    border-radius:inherit!important;
    overflow:hidden!important;
}

.office-task-description-editor-r032 .office-rich-surface{
    font-family:Arial,Helvetica,sans-serif!important;
    font-size:10pt!important;
    color:#000!important;
    font-weight:400;
}
.office-task-photo-card-r032{min-width:0;overflow:hidden}
.office-task-selected-photo-strip-r032{display:grid;grid-template-columns:repeat(auto-fill,minmax(88px,1fr));gap:8px;min-width:0}
.office-task-selected-photo-strip-r032 article{position:relative;min-width:0;border:1px solid var(--office-border);border-radius:10px;overflow:hidden;background:var(--office-surface-soft)}
.office-task-selected-photo-strip-r032 img{display:block;width:100%;height:82px;object-fit:cover}
.office-task-selected-photo-strip-r032 .office-icon-button{position:absolute;top:5px;right:5px;width:28px;height:28px;min-width:28px;min-height:28px;background:rgba(255,255,255,.94)}
.office-task-photo-picker-dialog-r032{width:min(820px,calc(100vw - 32px));max-height:min(760px,calc(100dvh - 32px))}
.office-photo-picker-grid-r032{display:grid;grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:10px}
.office-photo-picker-item-r032{position:relative;display:grid;grid-template-rows:112px auto;gap:6px;padding:7px;border:1px solid var(--office-border);border-radius:10px;background:var(--office-surface);text-align:left;min-width:0;cursor:pointer}
.office-photo-picker-item-r032:hover{background:var(--office-surface-soft)}
.office-photo-picker-item-r032.is-selected{border-color:var(--office-accent);box-shadow:0 0 0 1px var(--office-accent)}
.office-photo-picker-item-r032>img{width:100%;height:112px;object-fit:cover;border-radius:7px}
.office-photo-picker-item-r032>span:not(.office-photo-picker-check-r032){font-size:12px;line-height:1.25;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.office-photo-picker-check-r032{position:absolute;top:12px;right:12px;display:grid;place-items:center;width:25px;height:25px;border-radius:50%;background:var(--office-accent);color:#fff}
.office-photo-picker-check-r032 .office-svg-icon{width:14px;height:14px}

/* Office-Selects: systemweit im vorhandenen Office-Feldmaster, keine nativen Browser-Chevrons. */
.office-field select,
select.office-inline-select-r015{
    -webkit-appearance:none!important;
    appearance:none!important;
    background-image:url('/icons/office/navigation/chevron-down.svg')!important;
    background-repeat:no-repeat!important;
    background-position:right 11px center!important;
    background-size:14px 14px!important;
    padding-right:34px!important;
}

@media (max-width:700px){
    .office-quick-capture-page{width:100%!important;max-width:100%!important;overflow-x:hidden!important;padding-inline:10px!important;box-sizing:border-box!important}
    .office-quick-capture-card,.office-quick-capture-details-r024{width:100%!important;max-width:100%!important;min-width:0!important;box-sizing:border-box!important}
    .office-quick-capture-details-body-r024{overflow:visible!important;min-width:0!important;padding:0 8px 10px!important}
    .office-qc-desktop-table-r032{display:none!important}
    .office-qc-mobile-cards-r032{display:grid!important;gap:8px;width:100%!important;min-width:0!important}
    .office-qc-mobile-card-r032{display:grid;gap:7px;width:100%;max-width:100%;min-width:0;padding:10px;border:1px solid var(--office-border);border-radius:10px;background:var(--office-surface);box-sizing:border-box;overflow:hidden}
    .office-qc-mobile-card-head-r032{display:grid;gap:2px;min-width:0}
    .office-qc-mobile-card-head-r032 strong{font-size:14px;line-height:1.25;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
    .office-qc-mobile-card-head-r032 small{font-size:11px;color:var(--office-text-muted)}
    .office-qc-mobile-card-meta-r032{display:flex;gap:8px;justify-content:space-between;color:var(--office-text-muted);font-size:11px;min-width:0}
    .office-qc-mobile-card-r032 p{margin:0;font-size:13px;line-height:1.35;overflow-wrap:anywhere;word-break:break-word;max-width:100%}
    .office-qc-mobile-thumbs-r032{display:flex;gap:6px;flex-wrap:wrap;max-width:100%;overflow:hidden}
    .office-qc-mobile-thumbs-r032 img{width:64px;height:48px;object-fit:cover;border-radius:7px;flex:none}
    .office-qc-mobile-card-actions-r032{display:flex;justify-content:flex-end;border-top:1px solid var(--office-border);padding-top:7px;min-width:0}
    .office-qc-mobile-apply-r024{display:block!important;position:relative!important;max-width:100%!important}
    .office-qc-mobile-apply-menu-r024{right:0!important;left:auto!important;max-width:min(220px,calc(100vw - 42px))!important}
    .office-quick-capture-details-r024 .office-table-frame,
    .office-quick-capture-details-r024 .office-table-viewport{overflow:hidden!important}
}

/* ========================================================================== */
/* r031 build-fix 6 – mobile period navigation and separated access labels    */
/* ========================================================================== */
.office-settings-access-pills{display:flex;align-items:center;flex-wrap:wrap;gap:6px;margin-top:auto}
.office-settings-access-pills .office-settings-access-pill{margin-top:0}

@media(max-width:700px){
  /* Period navigation: the actual month/year is the visual anchor. */
  .office-absence-month-controls-r019,
  .office-leave-year-controls,
  .office-worktime-timesheet-month-r019{
    display:grid!important;
    grid-template-columns:40px minmax(0,1fr) 40px!important;
    grid-template-areas:"prev label next" "current current current"!important;
    gap:7px!important;
    width:100%!important;
    align-items:center!important;
  }
  .office-absence-month-controls-r019>.office-period-current-r031,
  .office-leave-year-controls>.office-period-current-r031,
  .office-worktime-timesheet-month-r019>.office-period-current-r031{
    grid-area:current!important;
    justify-self:center!important;
    width:auto!important;
    min-width:0!important;
    min-height:34px!important;
    height:34px!important;
    padding:5px 12px!important;
    font-size:12px!important;
    font-weight:600!important;
  }
  .office-absence-month-controls-r019>.office-icon-button:nth-of-type(2),
  .office-leave-year-controls>.office-icon-button:nth-of-type(2),
  .office-worktime-timesheet-month-r019>.office-icon-button:nth-of-type(2){grid-area:prev!important}
  .office-absence-month-controls-r019>.office-icon-button:nth-of-type(3),
  .office-leave-year-controls>.office-icon-button:nth-of-type(3),
  .office-worktime-timesheet-month-r019>.office-icon-button:nth-of-type(3){grid-area:next!important}
  .office-absence-month-controls-r019>.office-period-label-r031,
  .office-leave-year-controls>.office-period-label-r031,
  .office-worktime-timesheet-month-r019>.office-period-label-r031{
    grid-area:label!important;
    width:auto!important;
    min-width:0!important;
    margin:0!important;
    padding:0 4px!important;
    text-align:center!important;
    font-size:18px!important;
    line-height:1.2!important;
    font-weight:750!important;
    white-space:nowrap!important;
  }

  /* Absence action stays compact and never escapes its card. */
  .office-absence-commandbar-r019 .office-leave-command-actions{
    display:flex!important;
    width:100%!important;
    justify-content:flex-start!important;
    align-items:center!important;
  }
  .office-absence-commandbar-r019 .office-leave-command-actions>.office-button{
    width:auto!important;
    max-width:100%!important;
    min-height:40px!important;
    height:40px!important;
    padding-inline:12px!important;
    white-space:nowrap!important;
  }
  .office-absence-day-entry{
    padding:3px 2px!important;
    border-radius:6px!important;
    font-size:9px!important;
    line-height:1.1!important;
    letter-spacing:-.1px!important;
    text-overflow:clip!important;
  }

  /* Vacation plan: keep year immediately visible and reduce vertical drift. */
  .office-leave-commandbar{gap:8px!important}
  .office-leave-command-actions{margin-top:2px!important}
  .office-leave-balance{margin-top:4px!important}

  /* Timesheet: month/year first, secondary current-month action below. */
  .office-worktime-timesheet-commandbar-r019{gap:10px!important}
  .office-worktime-timesheet-summary>div{padding:10px 12px!important}
  .office-worktime-timesheet-summary span{font-size:11px!important}
  .office-worktime-timesheet-summary strong{font-size:17px!important}

  /* Role badges remain separate on narrow cards. */
  .office-settings-access-pills{gap:5px!important}
  .office-settings-access-pills .office-settings-access-pill{max-width:100%;white-space:normal;text-align:center}
}

/* r032 – systemweite Office-Master-Korrekturen */
.office-rich-surface{
  font-family:Arial,Helvetica,sans-serif;
  font-size:10pt;
  line-height:1.4;
  color:#000;
  font-weight:400;
}
.office-rich-editor.is-compact-r032 .office-rich-toolbar{gap:2px;padding:5px 7px;flex-wrap:nowrap;overflow-x:auto;overflow-y:hidden}
.office-rich-editor.is-compact-r032 .office-rich-format-button,
.office-rich-editor.is-compact-r032 .office-rich-toolbar>.is-icon{width:30px;min-width:30px;height:30px;min-height:30px;padding:4px;border-radius:6px}
.office-rich-editor.is-compact-r032 .office-rich-toolbar-separator{margin-inline:2px}
.office-rich-editor.is-compact-r032 .office-rich-toolbar-spacer{min-width:4px}

.office-context-back[data-office-back-tooltip]{position:relative}
.office-context-back-title[data-office-back-tooltip]{position:relative}
.office-context-back[data-office-back-tooltip]::after,
.office-context-back-title[data-office-back-tooltip]::after{
  content:attr(data-office-back-tooltip);position:absolute;left:0;top:calc(100% + 7px);z-index:2147482000;
  padding:7px 10px;border-radius:8px;background:#363636;color:#fff;font-size:12px;font-weight:600;line-height:1.2;
  white-space:nowrap;opacity:0;pointer-events:none;transform:translateY(-3px);transition:opacity .12s ease,transform .12s ease;
  box-shadow:0 8px 20px rgba(0,0,0,.16)
}
.office-context-back[data-office-back-tooltip]:hover::after,
.office-context-back[data-office-back-tooltip]:focus-visible::after,
.office-context-back-title[data-office-back-tooltip]:hover::after,
.office-context-back-title[data-office-back-tooltip]:focus-visible::after{opacity:1;transform:none}

/* Einheitlicher kompakter Kontext-Header – ersetzt modulweise 82-px-Sonderlösungen. */
.office-context-bar.is-contextual,
.office-project-workspace>.office-context-bar.is-contextual,
.office-procurement-workspace>.office-context-bar.is-contextual{
  min-height:64px!important;height:64px!important;padding:0!important;margin:0!important;
  display:grid!important;grid-template-columns:minmax(0,1fr) auto!important;align-items:center!important
}
.office-context-bar.is-contextual>.office-context-main,
.office-project-workspace>.office-context-bar.is-contextual>.office-context-main,
.office-procurement-workspace>.office-context-bar.is-contextual>.office-context-main,
.office-context-bar.is-contextual>.office-context-actions,
.office-project-workspace>.office-context-bar.is-contextual>.office-context-actions,
.office-procurement-workspace>.office-context-bar.is-contextual>.office-context-actions{
  min-height:64px!important;height:64px!important;display:flex!important;align-items:center!important;align-self:center!important;margin:0!important;padding:0!important
}
.office-context-bar.is-contextual .office-context-path{align-items:center!important;align-self:center!important;margin:0!important;transform:none!important}

/* Dialog-Radius muss auch durch Body/Footer hindurch sichtbar bleiben. */
.office-dialog-layer.is-open>.office-dialog,
.office-dialog{border-radius:16px!important;overflow:hidden!important}
.office-dialog>.office-dialog-header{border-radius:16px 16px 0 0}
.office-dialog>.office-dialog-footer{border-radius:0 0 16px 16px}

/* Ein gemeinsamer Top-Layer-Popover-Master. */
.office-combobox-popover[data-office-popover],
.office-popover[data-office-popover]{overscroll-behavior:contain}

/* Generischer Office-Checkbox-Master für InputCheckbox/native Inputs in alten Masken. */
.office-checkbox-master-r032,
.office-checkbox-row input[type="checkbox"],
.office-check-field input[type="checkbox"],
.office-checkbox-field input[type="checkbox"]{
  width:17px!important;height:17px!important;min-width:17px!important;min-height:17px!important;margin:0!important;
  accent-color:var(--office-primary);border-radius:4px
}

@media(max-width:700px){
  .office-context-bar.is-contextual,
  .office-project-workspace>.office-context-bar.is-contextual,
  .office-procurement-workspace>.office-context-bar.is-contextual{min-height:58px!important;height:58px!important}
  .office-context-bar.is-contextual>.office-context-main,
  .office-context-bar.is-contextual>.office-context-actions,
  .office-project-workspace>.office-context-bar.is-contextual>.office-context-main,
  .office-project-workspace>.office-context-bar.is-contextual>.office-context-actions,
  .office-procurement-workspace>.office-context-bar.is-contextual>.office-context-main,
  .office-procurement-workspace>.office-context-bar.is-contextual>.office-context-actions{min-height:58px!important;height:58px!important}
}

/* r032 – Projektkosten-Tabellen und Gruppenverwaltung */
.office-project-boq-name-col-r032,.office-project-cost-name-col-r032{width:28%;min-width:240px}
.office-project-boq-number-col-r032{width:132px;max-width:155px}.office-project-cost-number-col-r032{width:128px;max-width:145px}
.office-group-manager-dialog-r032{width:min(860px,calc(100vw - 32px));max-height:min(780px,calc(100dvh - 32px))}
.office-group-manager-body-r032{display:grid;gap:16px;overflow:auto!important}
.office-group-create-r032{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:10px;align-items:end;padding:14px;border:1px solid var(--office-border);border-radius:12px;background:var(--office-surface-soft)}
.office-group-create-r032>.office-button{height:36px;min-height:36px}.office-group-manager-list-r032{display:grid;gap:12px}
.office-group-card-r032{border:1px solid var(--office-border);border-radius:12px;background:var(--office-surface);overflow:hidden}
.office-group-card-r032>header{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:10px;align-items:end;padding:12px;border-bottom:1px solid var(--office-border)}
.office-group-card-r032>header .office-field{margin:0;min-width:0}.office-group-card-r032>header .office-input{width:100%;height:36px;box-sizing:border-box;border:1px solid var(--office-border-strong);border-radius:8px;padding:0 10px;background:var(--office-surface);font:inherit}
.office-group-member-list-r032{display:grid;gap:2px;padding:10px 12px 12px}.office-field-caption-r032{font-size:12px;font-weight:650;color:var(--office-text-muted);padding:0 2px 4px}.office-group-member-list-r032 .office-checkbox-row{min-height:38px;padding:6px 8px}
@media(max-width:700px){.office-project-boq-name-col-r032,.office-project-cost-name-col-r032{min-width:190px}.office-group-create-r032{grid-template-columns:1fr}.office-group-create-r032>.office-button{width:100%}}

/* r032 – Zeiterfassung / Urlaubsplan */
.office-period-navigator-r032{display:flex;align-items:center;justify-content:center;gap:10px;flex-wrap:wrap}
.office-period-label-button-r032{height:40px;min-height:40px;border:1px solid var(--office-border-strong)!important;border-radius:10px!important;background:var(--office-surface)!important;font-weight:700;min-width:156px;justify-content:center}
.office-leave-overlap-legend-r032{display:inline-flex;align-items:center;gap:7px}.office-leave-overlap-legend-r032>i{width:9px;height:9px;border-radius:50%;background:#d88912;display:inline-block}
.office-overtime-compensation-note-r032{grid-column:1/-1;margin:2px 0 0;padding:10px 12px;border-radius:9px;background:var(--office-surface-soft);color:var(--office-text-muted);font-size:13px}
.office-worktime-model-dialog-shell-r030{width:min(980px,calc(100vw - 36px))!important}
.office-worktime-model-dialog-shell-r030 .office-worktime-day-row-r029 input[type="text"],
.office-worktime-model-dialog-shell-r030 .office-worktime-day-row-r029 input[type="number"],
.office-worktime-model-dialog-shell-r030 .office-worktime-day-row-r029 select,
.office-worktime-model-dialog-shell-r030 .office-form-grid input[type="number"]{height:36px;min-height:36px;border:1px solid var(--office-border-strong);border-radius:8px;background:var(--office-surface);color:var(--office-text);font:inherit;padding:0 9px;box-sizing:border-box}
@media(min-width:901px){.office-worktime-model-dialog-shell-r030 .office-worktime-day-row-r029{grid-template-columns:48px 60px 100px 116px 116px minmax(170px,210px)!important}}
@media(max-width:700px){
  .office-period-current-desktop-r032{display:none!important}.office-period-navigator-r032{display:grid!important;grid-template-columns:40px minmax(0,1fr) 40px;gap:8px;width:100%}.office-period-label-button-r032{min-width:0;width:100%;height:40px}.office-period-navigator-r032>.office-icon-button{width:40px;height:40px;min-width:40px;min-height:40px}
  .office-absence-commandbar-r019 .office-leave-command-actions{width:100%;display:flex;justify-content:center}.office-absence-commandbar-r019 .office-leave-command-actions .office-button{margin-inline:auto}
  .office-leave-command-actions{display:grid!important;grid-template-columns:minmax(0,1fr) 40px minmax(0,1fr)!important;gap:8px!important;width:100%}.office-leave-command-actions>.office-button,.office-leave-command-actions>.office-icon-button{margin:0!important;min-width:0!important;width:100%!important;justify-content:center!important}.office-leave-command-actions>.office-icon-button{width:40px!important}
}

/* r032 – Angebot / Leistungsphasen */
.office-offer-phase-table-r032 table{table-layout:fixed;width:100%}.office-offer-phase-table-r032 th:nth-child(1),.office-offer-phase-table-r032 td:nth-child(1){width:72px;text-align:center}.office-offer-phase-table-r032 th:nth-child(2),.office-offer-phase-table-r032 td:nth-child(2){width:auto}.office-offer-phase-table-r032 th:nth-child(3),.office-offer-phase-table-r032 td:nth-child(3){width:92px}.office-offer-phase-table-r032 th:nth-child(4),.office-offer-phase-table-r032 td:nth-child(4){width:132px}.office-offer-phase-table-r032 th:nth-child(5),.office-offer-phase-table-r032 td:nth-child(5){width:160px}.office-offer-phase-table-r032 td:nth-child(4) input{width:92px!important;max-width:100%;margin-left:auto}.office-offer-phase-table-r032 td:nth-child(5){white-space:nowrap}
.office-offer-phase-checkbox-r032{display:block;margin-inline:auto!important}
.office-offer-letter-editor-r032 .office-rich-surface{min-height:210px}.office-offer-generated-block-note-r032{display:flex;align-items:center;gap:8px;padding:9px 11px;border:1px dashed var(--office-border);border-radius:9px;color:var(--office-text-muted);font-size:12px;background:var(--office-surface-soft)}.office-offer-generated-block-note-r032 .office-svg-icon{width:15px;height:15px}
.office-offer-final-totals-r016 .is-grand strong{font-size:inherit!important;line-height:inherit!important}

/* r032 – central e-mail recipient pill + Office top-layer selector */
.office-email-recipient-trigger-row-r032{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:6px;align-items:center}
.office-email-recipient-trigger-r032{min-height:36px;height:auto;padding:5px 9px;justify-content:space-between}
.office-mail-token-readonly-r032{max-width:calc(100% - 26px);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.office-email-recipient-clear-r032{width:36px;height:36px}
.office-email-recipient-picker-r032 .office-email-recipient-popover-r023{max-height:min(420px,55dvh)}

/* r032 – invoice entry/editor + central mail suggestions */
.office-mail-address-field-r032{position:relative}
.office-mail-suggestions-r032{padding:8px;max-height:min(380px,52dvh)}
.office-mail-suggestions-r032 .office-combobox-option{width:100%}
.office-invoice-lines-table-r032 table{table-layout:fixed;width:100%}
.office-invoice-lines-table-r032 .office-invoice-pos-col-r032{width:64px}
.office-invoice-lines-table-r032 .office-invoice-description-col-r032{width:auto}
.office-invoice-lines-table-r032 .office-invoice-quantity-col-r032{width:112px}
.office-invoice-lines-table-r032 .office-invoice-unitprice-col-r032{width:150px}
.office-invoice-lines-table-r032 .office-invoice-total-col-r032{width:150px}
.office-invoice-manual-lines-r032 .office-input{height:36px;min-height:36px;width:100%;box-sizing:border-box}
.office-invoice-manual-lines-r032 .office-invoice-quantity-input-r032{max-width:92px;margin-left:auto}
.office-invoice-manual-lines-r032 .office-invoice-unitprice-input-r032{max-width:126px;margin-left:auto}
.office-invoice-period-final-row-r024 .office-checkbox-field,
.office-invoice-span-2-r016.office-checkbox-field{align-self:end;min-height:36px;display:flex;align-items:center;gap:9px}
@media(max-width:700px){
  .office-invoice-lines-table-r032{min-width:720px}
}

/* r032 – construction diary details */
.office-diary-report-tools-r032{display:flex;gap:8px;align-items:center;flex-wrap:wrap;justify-content:flex-end}
.office-diary-photo-count-col-r032{text-align:center!important;width:86px}
.office-diary-unlink-button-r032{width:28px!important;height:28px!important;min-width:28px!important}
.office-diary-unlink-button-r032 .office-svg-icon{width:14px;height:14px}
.office-diary-photo-heading-r032>div:first-child p{white-space:nowrap}
.office-diary-photo-actions-r032{display:flex;gap:8px;align-items:center;flex-wrap:wrap}
@media(max-width:700px){
  .office-diary-report-tools-r032{width:100%;justify-content:flex-start}
  .office-diary-photo-heading-r032{align-items:flex-start}
  .office-diary-photo-actions-r032{width:100%;display:grid;grid-template-columns:1fr}
  .office-diary-photo-actions-r032 .office-button{width:100%;justify-content:center}
}

/* r032 – Bautagebuch: Fotoanzahl zentriert, Entkoppeln bewusst kompakt. */
.office-diary-photo-count-col-r032{text-align:center!important;width:72px!important;min-width:72px!important}
.office-diary-unlink-button-r032{width:30px!important;height:30px!important;min-width:30px!important;min-height:30px!important;padding:7px!important}
.office-diary-unlink-button-r032 .office-svg-icon{width:14px!important;height:14px!important}

/* r032 correction 1 – definitive Office form controls. */
.office-select-master{position:relative;display:block;width:100%;min-width:0}
.office-select-native{position:absolute!important;width:1px!important;height:1px!important;opacity:0!important;pointer-events:none!important;overflow:hidden!important;clip:rect(0 0 0 0)!important;white-space:nowrap!important}
.office-select-master .office-select-trigger{width:100%;height:40px;min-height:40px;padding:0 38px 0 12px;border:1px solid var(--office-border-strong);border-radius:10px;background:var(--office-surface);color:var(--office-text);font:inherit;text-align:left;box-sizing:border-box;position:relative}
.office-select-master .office-select-trigger>span:first-child{display:block;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.office-select-master .office-select-trigger .office-combobox-chevron{position:absolute;right:12px;top:50%;transform:translateY(-50%);width:16px;height:16px}
.office-select-master .office-select-trigger[aria-expanded="true"] .office-combobox-chevron{transform:translateY(-50%) rotate(180deg)}
.office-select-popover{padding:7px!important;border:1px solid var(--office-border)!important;border-radius:12px!important;background:var(--office-surface)!important;box-shadow:0 16px 38px rgba(25,32,38,.16)!important;overflow:hidden!important}
.office-select-popover .office-select-options{display:grid;gap:2px;max-height:min(360px,55dvh);overflow:auto;overscroll-behavior:contain}
.office-select-popover .office-combobox-option{min-height:36px;padding:7px 10px;border:0;border-radius:8px;background:transparent;color:var(--office-text);font:inherit;font-size:13px;text-align:left;display:flex;align-items:center;width:100%;cursor:pointer}
.office-select-popover .office-combobox-option:hover{background:var(--office-surface-hover,#f2f4f6)}
.office-select-popover .office-combobox-option.is-selected{background:color-mix(in srgb,var(--office-primary) 9%,var(--office-surface));color:var(--office-primary);font-weight:650}
.office-select-popover .office-combobox-option:disabled{opacity:.45;cursor:not-allowed}
.office-select-popover .office-select-search-host:empty{display:none}
.office-select-popover .office-select-search-host{padding:0 0 6px}
.office-select-popover .office-select-search{height:36px;width:100%;border:1px solid var(--office-border);border-radius:8px;background:var(--office-surface);padding:0 34px 0 10px;font:inherit;color:var(--office-text);box-sizing:border-box}
.office-select-popover .office-select-search-wrap{position:relative;display:block}
.office-select-popover .office-select-search-wrap .office-svg-icon{position:absolute;right:10px;top:50%;transform:translateY(-50%);width:15px;height:15px;pointer-events:none}

.office-number-input-master{position:relative;display:block;width:100%;min-width:0}
.office-number-input-master>input{width:100%;height:36px;min-height:36px;padding:0 12px;border:1px solid var(--office-border-strong);border-radius:8px;background:var(--office-surface);color:var(--office-text);font:inherit;text-align:right;font-variant-numeric:tabular-nums;box-sizing:border-box}
.office-number-input-master:has(.office-number-input-suffix)>input{padding-right:34px}
.office-number-input-suffix{position:absolute;right:11px;top:50%;transform:translateY(-50%);color:var(--office-text-muted);font-size:12px;pointer-events:none}
.office-number-input-master>input:focus{outline:none;border-color:var(--office-primary);box-shadow:0 0 0 3px color-mix(in srgb,var(--office-primary) 11%,transparent)}

/* Exactly one checkbox appearance across Office; switch controls remain visually hidden by their own master. */
input[type="checkbox"]{appearance:none;-webkit-appearance:none;width:16px!important;height:16px!important;min-width:16px!important;min-height:16px!important;margin:0!important;padding:0!important;border:1px solid var(--office-border-strong)!important;border-radius:4px!important;background:var(--office-surface)!important;box-shadow:none!important;vertical-align:middle;cursor:pointer;box-sizing:border-box}
input[type="checkbox"]:checked{border-color:var(--office-primary)!important;background-color:var(--office-primary)!important;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='M3.2 8.2 6.4 11.2 12.8 4.8' fill='none' stroke='white' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E")!important;background-position:center!important;background-size:13px 13px!important;background-repeat:no-repeat!important}
input[type="checkbox"]:focus-visible{outline:2px solid color-mix(in srgb,var(--office-primary) 38%,transparent)!important;outline-offset:2px}
input[type="checkbox"]:disabled{opacity:.45;cursor:not-allowed}
.office-toggle-r028>input[type="checkbox"]{position:absolute!important;opacity:0!important;pointer-events:none!important;width:1px!important;height:1px!important;min-width:1px!important;min-height:1px!important}

/* Office date picker: explicit trigger class always wins over captured component attributes. */
.office-date-picker-r025 .office-date-picker-trigger-r025{height:40px!important;min-height:40px!important;padding:0 12px!important;border-radius:10px!important;font-weight:500!important}
.office-date-picker-r025 .office-date-picker-value-r025{font-variant-numeric:tabular-nums}

/* Rich-text master: dense 32 px toolbar, no oversized button surfaces. */
.office-rich-editor .office-rich-toolbar{min-height:32px!important;height:32px!important;padding:0 6px!important;gap:1px!important;align-items:center!important;flex-wrap:nowrap!important;overflow-x:auto!important;overflow-y:hidden!important}
.office-rich-editor .office-rich-format-button,.office-rich-editor .office-rich-toolbar>.is-icon{width:28px!important;min-width:28px!important;height:28px!important;min-height:28px!important;padding:3px!important;border:0!important;border-radius:6px!important;background:transparent!important;display:grid!important;place-items:center!important;line-height:1!important}
.office-rich-editor .office-rich-format-button:hover,.office-rich-editor .office-rich-toolbar>.is-icon:hover{background:var(--office-surface-hover,#eef1f4)!important}
.office-rich-editor .office-rich-toolbar-separator{height:18px!important;margin:0 3px!important}
.office-rich-editor .office-rich-toolbar-spacer{min-width:3px!important}

/* r033: filled-action master. Neutral dark gray with restrained hover/pressed feedback. */
:root{
    --office-primary-button:#3d3d3d;
    --office-primary-button-hover:#494949;
    --office-primary-button-active:#343434;
}
html[data-office-theme="dark"]{
    --office-primary-button:#3d3d3d;
    --office-primary-button-hover:#494949;
    --office-primary-button-active:#343434;
}

/* Project/context header: one centered Office master directly below the topbar. */
.office-project-workspace,.office-procurement-workspace{margin-top:-30px!important}
.office-topbar{border-bottom-color:var(--office-border)!important}
.office-context-bar.is-contextual,.office-project-workspace>.office-context-bar.is-contextual,.office-procurement-workspace>.office-context-bar.is-contextual{
    position:relative!important;
    height:var(--office-topbar-height)!important;
    min-height:var(--office-topbar-height)!important;
    padding:0!important;
    margin:0!important;
    align-items:center!important;
    border-bottom:0!important;
}
.office-context-bar.is-contextual::after{
    content:"";
    position:absolute;
    z-index:0;
    left:50%;
    bottom:0;
    width:100vw;
    border-bottom:1px solid var(--office-border);
    transform:translateX(-50%);
    pointer-events:none;
}
.office-context-bar.is-contextual>.office-context-main,.office-project-workspace>.office-context-bar.is-contextual>.office-context-main,.office-procurement-workspace>.office-context-bar.is-contextual>.office-context-main,.office-context-bar.is-contextual>.office-context-actions{
    position:relative;
    z-index:1;
    height:var(--office-topbar-height)!important;
    min-height:var(--office-topbar-height)!important;
    align-items:center!important;
}
.office-context-bar.is-contextual .office-context-title-link,.office-context-bar.is-contextual .office-context-label,.office-context-bar.is-contextual .office-context-back-title,.office-context-bar.is-contextual .office-context-select{
    font-size:15px!important;
    font-weight:600!important;
    line-height:1.2!important;
}
.office-context-bar.is-contextual .office-context-path,.office-context-bar.is-contextual .office-context-menu-wrap,.office-context-bar.is-contextual .office-context-split{height:42px!important;min-height:42px!important;align-items:center!important}
.office-context-bar.is-contextual .office-context-select{
    height:42px!important;
    min-height:42px!important;
    max-width:none!important;
    padding:0 11px!important;
    gap:12px!important;
    border:0!important;
    border-radius:10px!important;
    background:transparent!important;
    align-items:center!important;
    flex:0 0 auto!important;
}
.office-context-bar.is-contextual .office-context-select:hover,.office-context-bar.is-contextual .office-context-select[aria-expanded="true"]{background:var(--office-hover)!important}
.office-context-bar.is-contextual .office-context-select .office-context-value,
.office-context-bar.is-contextual .office-context-select>span:first-child,
.office-context-bar.is-contextual .office-context-select>strong:first-child{
    max-width:none!important;
    overflow:visible!important;
    text-overflow:clip!important;
    white-space:nowrap!important;
    font-weight:600!important;
}
.office-context-bar.is-contextual .office-context-select .office-context-chevron{width:12px!important;height:12px!important;margin-left:2px!important}
.office-context-bar.is-contextual .office-context-back{width:34px!important;height:34px!important;min-width:34px!important;min-height:34px!important;align-self:center!important}
.office-context-bar.is-contextual .office-context-back-icon{width:25px!important;height:25px!important}
.office-context-bar.is-contextual .office-context-more{height:28px!important;width:28px!important;min-height:28px!important;min-width:28px!important;align-self:center!important}
.office-local-tab.active,button.office-local-tab.active{border-bottom-width:3px!important;border-bottom-style:solid!important}
@media(max-width:1180px){.office-project-workspace,.office-procurement-workspace{margin-top:-26px!important}}
@media(max-width:920px){.office-project-workspace,.office-procurement-workspace{margin-top:-22px!important}}
@media(max-width:760px){.office-project-workspace,.office-procurement-workspace{margin-top:-18px!important}}
@media(max-width:560px){.office-project-workspace,.office-procurement-workspace{margin-top:-15px!important}}
.office-tooltip-toplayer{position:fixed;z-index:2147483646;padding:7px 10px;border-radius:8px;background:#363636;color:#fff;font-size:12px;font-weight:600;line-height:1.2;white-space:nowrap;box-shadow:0 8px 20px rgba(0,0,0,.16);pointer-events:none}
/* Disable the old pseudo tooltip; the top-layer JS tooltip is authoritative. */
.office-context-back[data-office-back-tooltip]::after,.office-context-back-title[data-office-back-tooltip]::after{display:none!important}
/* r032 correction 2 – context project search is an Office control, 10 visible results max. */
.office-context-menu-search{position:relative;display:block;margin:5px 0;padding:0}
.office-context-menu-search>input{width:100%;height:36px;border:1px solid var(--office-border-strong);border-radius:9px;background:var(--office-surface);color:var(--office-text);font:inherit;padding:0 62px 0 10px;box-sizing:border-box;outline:none}
.office-context-menu-search>input:focus{border-color:var(--office-primary);box-shadow:0 0 0 3px color-mix(in srgb,var(--office-primary) 10%,transparent)}
.office-context-search-icon{position:absolute;right:16px;top:50%;transform:translateY(-50%);width:16px;height:16px;pointer-events:none;color:var(--office-text-muted)}
.office-context-search-clear{position:absolute;right:38px;top:50%;transform:translateY(-50%);width:26px;height:26px;border:0;border-radius:6px;background:transparent;padding:5px;display:grid;place-items:center;cursor:pointer}
.office-context-search-clear:hover{background:var(--office-surface-hover,#eef1f4)}
.office-context-search-clear[hidden]{display:none!important}
.office-context-search-clear .office-svg-icon{width:14px;height:14px}
/* r032 correction 2 – grouped cost/BoQ overview rows share exactly one interaction master. */
.office-project-boq-group-row-r028>td{padding:0!important;height:42px!important;min-height:42px!important}
.office-project-boq-group-toggle-r028{width:100%;height:42px;min-height:42px;padding:0 12px;display:flex;align-items:center;gap:8px;border:0;background:var(--office-surface-soft);color:var(--office-text);font:inherit;text-align:left;cursor:pointer}
.office-project-boq-group-toggle-r028 .office-svg-icon{width:14px;height:14px;flex:0 0 14px}
.office-project-boq-group-toggle-r028 strong{font-weight:700}
.office-project-boq-group-toggle-r028 span:last-child{font-size:12px;color:var(--office-text-muted);font-weight:400}
.office-clickable-row-r032{cursor:pointer}
.office-clickable-row-r032:hover>td{background:var(--office-surface-hover,#f7f8f9)}
/* r032 correction 2 – leave dialog spacing and desktop action alignment. */
.office-leave-entry-dialog-r026 .office-checkbox-field{display:flex!important;align-items:center!important;gap:9px!important;min-height:36px!important;margin:2px 0 0!important}
.office-leave-entry-dialog-r026 .office-checkbox-field>span{line-height:1.25}
.office-leave-entry-dialog-r026 .office-overtime-compensation-note-r032{margin-top:12px!important;padding:11px 12px!important}
.office-leave-overlap-legend-r032::before{display:none!important;content:none!important}
.office-leave-command-actions>.office-button.is-primary{display:inline-flex!important;align-items:center!important;justify-content:center!important;gap:7px!important;padding-inline:14px!important}
.office-leave-command-actions>.office-button.is-primary .office-svg-icon{margin:0!important;flex:0 0 auto}
/* r032 correction 2 – invoice line editor: compact Office fields and correct payment checkbox alignment. */
.office-invoice-lines-table-r032 .office-invoice-pos-col-r032{width:64px!important}
.office-invoice-lines-table-r032 .office-invoice-description-col-r032{width:auto!important;min-width:300px!important}
.office-invoice-lines-table-r032 .office-invoice-quantity-col-r032{width:118px!important;min-width:118px!important;max-width:118px!important}
.office-invoice-lines-table-r032 .office-invoice-unitprice-col-r032{width:160px!important;min-width:160px!important;max-width:160px!important}
.office-invoice-lines-table-r032 .office-invoice-total-col-r032{width:145px!important;min-width:145px!important}
.office-invoice-lines-table-r032 td{vertical-align:middle!important}
.office-invoice-lines-table-r032 input.office-invoice-description-input-r032{height:36px!important;min-height:36px!important;padding:0 10px!important}
.office-invoice-lines-table-r032 .office-number-input-master>input{height:36px!important;min-height:36px!important}
.office-invoice-lines-table-r032 .office-invoice-quantity-input-r032{text-align:right!important}
.office-invoice-payment-overview-r032{display:flex!important;align-items:center!important;gap:9px!important;min-height:40px!important;height:40px!important;align-self:end!important;margin:0!important;padding:0 0 0 4px!important}
.office-invoice-payment-overview-r032>span{line-height:1.25!important}
@media(max-width:700px){.office-invoice-lines-table-r032 .office-invoice-description-col-r032{min-width:220px!important}}
/* r032 correction 2 – diary report controls, photo heading and manual trade order. */
.office-diary-report-heading-r023{display:block!important}
.office-diary-report-controls-r032{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:10px;flex-wrap:wrap}
.office-diary-report-controls-r032>.office-dashboard-panel-tabs{order:1}
.office-diary-report-controls-r032>.office-diary-report-tools-r032{order:2;margin-left:auto;display:flex;gap:8px;align-items:center}
.office-diary-photo-heading-r032{display:grid!important;grid-template-columns:minmax(0,1fr) auto!important;gap:12px!important;align-items:start!important}
.office-diary-photo-heading-r032>div:first-child{min-width:0}.office-diary-photo-heading-r032>div:first-child p{margin-top:4px!important;white-space:normal!important;position:static!important}
.office-diary-photo-actions-r032{align-self:start!important;justify-self:end!important;display:flex!important;gap:8px!important;flex-wrap:wrap!important}
.office-diary-order-col-r032{width:86px!important;text-align:center!important}
.office-sort-chevron-pair-r032{display:inline-flex;gap:3px;align-items:center;justify-content:center}
.office-sort-chevron-pair-r032 .office-icon-button.is-dense{width:28px!important;height:28px!important;min-width:28px!important;min-height:28px!important;padding:6px!important}
@media(max-width:700px){.office-diary-report-controls-r032{display:grid;grid-template-columns:1fr}.office-diary-report-controls-r032>.office-diary-report-tools-r032{margin-left:0;justify-content:flex-start;flex-wrap:wrap}.office-diary-photo-heading-r032{grid-template-columns:1fr!important}.office-diary-photo-actions-r032{justify-self:stretch!important;display:grid!important;grid-template-columns:1fr!important}}
/* r032 correction 2 – compact project-role/trade settings. */
.office-definition-compact-list-r032{display:grid;gap:8px}.office-definition-compact-row-r032{display:grid;grid-template-columns:64px minmax(220px,1fr) 190px 86px auto;gap:10px;align-items:start;padding:9px 10px;border:1px solid var(--office-border);border-radius:10px;background:var(--office-surface-soft)}
.office-definition-compact-row-r032>.office-input{height:36px!important}.office-definition-compact-row-r032 .office-check-field{min-height:36px;display:flex;align-items:center;gap:8px}.office-definition-compact-row-r032>.office-inline-actions{min-height:36px;align-items:center}
.office-color-picker-r028.is-compact-r032{display:grid;grid-template-columns:1fr auto;gap:5px;align-items:start;position:relative}.office-color-picker-r028.is-compact-r032 .office-color-picker-controls-r028{min-height:36px}.office-color-picker-r028.is-compact-r032 .office-color-palette-toggle-r032{height:28px;border:0;background:transparent;color:var(--office-primary);font:inherit;font-size:11px;font-weight:650;cursor:pointer;padding:0 4px}.office-color-picker-r028.is-compact-r032 .office-color-palette-r028{grid-column:1/-1;position:relative;padding:7px;max-width:300px;grid-template-columns:repeat(10,20px)!important;gap:4px!important}.office-color-picker-r028.is-compact-r032 .office-color-swatch-r028{width:20px!important;height:20px!important}
@media(max-width:900px){.office-definition-compact-row-r032{grid-template-columns:56px minmax(0,1fr) 150px auto}.office-definition-compact-row-r032>.office-check-field{grid-column:2/3}.office-definition-compact-row-r032>.office-inline-actions{grid-column:3/5}}
@media(max-width:700px){.office-definition-compact-row-r032{grid-template-columns:52px minmax(0,1fr)}.office-definition-compact-row-r032>*{min-width:0}.office-definition-compact-row-r032>.office-color-picker-r028,.office-definition-compact-row-r032>.office-check-field,.office-definition-compact-row-r032>.office-inline-actions{grid-column:2/-1}}
/* r032 correction 2 – offer numeric alignment and one summary hierarchy in wizard/workspace. */
.office-offer-phase-table-r032 th.is-numeric,.office-offer-phase-table-r032 td.is-numeric{text-align:right!important}
.office-offer-phase-table-r032 td:nth-child(3),.office-offer-phase-table-r032 td:nth-child(4),.office-offer-phase-table-r032 td:nth-child(5){text-align:right!important;font-variant-numeric:tabular-nums}
.office-offer-phase-table-r032 td:nth-child(4) .office-number-input-master{width:88px!important;max-width:88px!important;margin-left:auto!important}
.office-offer-phase-table-r032 td:nth-child(4) .office-number-input-master>input{text-align:right!important}
.office-offer-summary-row-r016{height:42px!important;min-height:42px!important;font-size:13px!important}
.office-offer-summary-row-r016 td{padding:7px 10px!important;vertical-align:middle!important}
.office-offer-summary-row-r016.is-strong td,.office-offer-summary-row-r016.is-grand td{font-size:13px!important;font-weight:700!important}
.office-offer-section-total-r016{min-height:42px!important;padding:8px 12px!important;margin-top:8px!important;font-size:13px!important}
.office-offer-section-total-r016 strong{font-size:13px!important;font-weight:700!important}
.office-offer-final-totals-r016>div{min-height:42px!important;padding:8px 12px!important;font-size:13px!important}
.office-offer-final-totals-r016>div strong{font-size:13px!important;font-weight:700!important}
.office-offer-final-totals-r016>.is-grand strong,.office-offer-final-totals-r016>.is-grand span{font-size:14px!important;font-weight:750!important}

/* r032 correction 2 – every legacy searchable combobox uses the same Office popup surface. */
.office-combobox-popover-r018,.office-hospitality-picker-popover-r023{padding:7px!important;border:1px solid var(--office-border)!important;border-radius:12px!important;background:var(--office-surface)!important;box-shadow:0 16px 38px rgba(25,32,38,.16)!important;overflow:hidden!important}
.office-combobox-popover-r018 .office-combobox-options-r018,.office-hospitality-picker-popover-r023 .office-combobox-options{display:grid!important;gap:2px!important;max-height:min(360px,55dvh)!important;overflow:auto!important}
.office-combobox-popover-r018 .office-combobox-option-r018,.office-hospitality-picker-popover-r023 .office-combobox-option{min-height:36px!important;padding:7px 10px!important;border:0!important;border-radius:8px!important;background:transparent!important;color:var(--office-text)!important;font:inherit!important;font-size:13px!important;text-align:left!important;display:flex!important;align-items:center!important;width:100%!important;cursor:pointer!important}
.office-combobox-popover-r018 .office-combobox-option-r018:hover,.office-hospitality-picker-popover-r023 .office-combobox-option:hover{background:var(--office-surface-hover,#f2f4f6)!important}
.office-combobox-popover-r018 .office-combobox-option-r018.is-selected,.office-hospitality-picker-popover-r023 .office-combobox-option.is-selected{background:color-mix(in srgb,var(--office-primary) 9%,var(--office-surface))!important;color:var(--office-primary)!important;font-weight:650!important}

/* r032 correction loop – invoice layout acceptance master */
.office-invoice-lines-table-r032 .office-invoice-quantity-col-r032{width:88px!important;min-width:88px!important;max-width:88px!important}
.office-invoice-lines-table-r032 .office-invoice-unitprice-col-r032{width:136px!important;min-width:136px!important;max-width:136px!important}
.office-invoice-lines-table-r032 .office-invoice-total-col-r032{width:132px!important;min-width:132px!important;max-width:132px!important}
.office-invoice-due-payment-row-r032{display:grid!important;grid-template-columns:minmax(0,1fr) minmax(260px,1fr)!important;gap:18px!important;align-items:end!important}
.office-invoice-due-payment-row-r032>.office-field{min-width:0}
.office-invoice-due-payment-row-r032 .office-invoice-payment-overview-r032{height:40px!important;min-height:40px!important;align-self:end!important;display:flex!important;align-items:center!important;padding:0!important;margin:0!important;gap:9px!important}
@media(max-width:900px){.office-invoice-due-payment-row-r032{grid-template-columns:1fr!important}.office-invoice-due-payment-row-r032 .office-invoice-payment-overview-r032{align-self:start!important}}
/* r032 correction 3 – eliminate historic checkbox pseudo-checkmarks after the global master. */
input[type="checkbox"]::before,input[type="checkbox"]::after{content:none!important}
.office-toggle-r028>input[type="checkbox"]::before,.office-toggle-r028>input[type="checkbox"]::after{content:none!important}

/* r032 correction final gate – one checkbox geometry wins over all historic module rules. */
html body .office-master-checkbox-r027,
html body .office-checkbox-master-r032,
html body .office-checkbox-row input[type="checkbox"],
html body .office-check-field input[type="checkbox"],
html body .office-checkbox-field input[type="checkbox"],
html body .office-offer-hourly-table-r024 input[type="checkbox"],
html body .office-invoice-final-field-r024 input[type="checkbox"],
html body .office-time-billable-r030 input[type="checkbox"],
html body input[type="checkbox"]:not(.office-toggle-input-r028){
  appearance:none!important;-webkit-appearance:none!important;
  width:16px!important;height:16px!important;min-width:16px!important;min-height:16px!important;max-width:16px!important;max-height:16px!important;
  margin:0!important;padding:0!important;border:1px solid var(--office-border-strong)!important;border-radius:4px!important;
  background-color:var(--office-surface)!important;background-image:none!important;background-position:center!important;background-repeat:no-repeat!important;background-size:13px 13px!important;
  box-shadow:none!important;vertical-align:middle!important;cursor:pointer;box-sizing:border-box!important;flex:0 0 16px!important;
}
html body .office-master-checkbox-r027:checked,
html body .office-checkbox-master-r032:checked,
html body .office-checkbox-row input[type="checkbox"]:checked,
html body .office-check-field input[type="checkbox"]:checked,
html body .office-checkbox-field input[type="checkbox"]:checked,
html body .office-offer-hourly-table-r024 input[type="checkbox"]:checked,
html body .office-invoice-final-field-r024 input[type="checkbox"]:checked,
html body .office-time-billable-r030 input[type="checkbox"]:checked,
html body input[type="checkbox"]:not(.office-toggle-input-r028):checked{
  border-color:var(--office-primary)!important;background-color:var(--office-primary)!important;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='M3.2 8.2 6.4 11.2 12.8 4.8' fill='none' stroke='white' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E")!important;
}
html body .office-toggle-r028>input[type="checkbox"]{position:absolute!important;opacity:0!important;pointer-events:none!important;width:1px!important;height:1px!important;min-width:1px!important;min-height:1px!important;max-width:1px!important;max-height:1px!important;flex:none!important}


/* r033 corrected navigation slider: move the EXISTING active/hover marker, never add a second hover surface. */
.office-project-tabs,
.office-local-tabs,
.office-topbar-actions{
    position:relative;
    isolation:isolate;
    --office-nav-slider-left:0px;
    --office-nav-slider-width:0px;
    --office-nav-slider-opacity:0;
}

.office-project-tabs::before,
.office-topbar-actions::before,
.office-local-tabs::after{
    content:"";
    position:absolute;
    pointer-events:none;
    opacity:var(--office-nav-slider-opacity);
    left:var(--office-nav-slider-left);
    width:var(--office-nav-slider-width);
    will-change:left,width,opacity;
    transition:
        left 210ms var(--office-ease-out-quint),
        width 210ms var(--office-ease-out-quint),
        opacity 130ms var(--office-ease-out);
}

/* Main project navigation: the already selected gray pill itself travels to the hovered item. */
.office-project-tabs::before{
    z-index:0;
    top:50%;
    height:40px;
    border-radius:9px;
    background:#f1f2f3;
    box-shadow:0 1px 4px rgba(17,24,39,.05);
    transform:translateY(-50%);
}
.office-project-tabs>.office-project-tab{position:relative;z-index:1}
.office-project-tabs>.office-project-tab.active{background:transparent!important;box-shadow:none!important}
.office-project-tabs>.office-project-tab:hover{background:transparent!important}

/* Local/sub navigation: only the existing blue active underline travels to the hovered item. */
.office-local-tabs::after{
    z-index:2;
    bottom:0;
    height:3px;
    border-radius:3px 3px 0 0;
    background:var(--office-primary);
}
.office-local-tabs>.office-local-tab{position:relative;z-index:1}
.office-local-tabs>.office-local-tab.active,
.office-local-tabs>button.office-local-tab.active{border-bottom-color:transparent!important}

/* Dashboard header actions keep their existing hover surface; it simply glides between actions. */
.office-topbar-actions::before{
    z-index:0;
    top:50%;
    height:40px;
    border-radius:9px;
    background:var(--office-hover);
    transform:translateY(-50%);
}
.office-topbar-actions>.office-quick-action{position:relative;z-index:1}
.office-topbar-actions>.office-quick-action:not(:disabled):hover{background:transparent!important}
.office-topbar-actions>.office-profile-wrap,
.office-topbar-actions>.office-profile-button{position:relative;z-index:1}

@media(prefers-reduced-motion:reduce){
    .office-project-tabs::before,
    .office-topbar-actions::before,
    .office-local-tabs::after{transition:opacity 80ms linear}
}

/* r033 patch 07 – Zeiterfassung: Projekt- und Mitarbeiterfilter identisch dimensionieren. */
.office-time-filter-inline-r019-final .office-time-project-filter-r019,
.office-time-filter-inline-r023 .office-compact-filter {
    width: 250px;
    min-width: 250px;
    max-width: 250px;
}
.office-time-filter-inline-r019-final .office-combobox-trigger,
.office-time-filter-inline-r023 .office-select-master .office-select-trigger {
    height: 42px;
    min-height: 42px;
}

/* r033 patch 08 – Zeiterfassung: Filtertypografie im Projekt- und Mitarbeiterdropdown identisch. */
.office-time-filter-inline-r019-final .office-combobox-trigger,
.office-time-filter-inline-r023 .office-select-master .office-select-trigger {
    font-size: 14px;
    font-weight: 400;
}

/* r033 patch 09b – animated attendance clock: fixed check-in time glides left, live time resumes on the right. */
.office-dashboard-time-clock,
.office-worktime-live-clock {
    transition: min-width 720ms cubic-bezier(.22,.82,.24,1), color .18s ease, background .18s ease, border-color .18s ease;
}
.office-dashboard-time-clock.has-check-in-time,
.office-worktime-live-clock.has-check-in-time {
    min-width: 218px;
}
.office-time-clock-pair {
    width: 176px;
    min-width: 176px;
    display: grid;
    grid-template-columns: minmax(76px, 1fr) 1px minmax(76px, 1fr);
    align-items: center;
    gap: 10px;
    overflow: hidden;
}
.office-time-clock-check-in,
.office-time-clock-live {
    min-width: 0;
    white-space: nowrap;
    font-variant-numeric: tabular-nums;
}
.office-time-clock-check-in {
    justify-self: start;
    color: #929292 !important;
    font-weight: 550 !important;
}
.office-time-clock-live {
    justify-self: end;
    color: #555b60 !important;
}
.office-time-clock-divider {
    width: 1px;
    height: 14px;
    border-radius: 999px;
    background: var(--office-border-strong);
    opacity: .8;
}
.office-dashboard-time-clock.is-check-in-transition .office-time-clock-check-in,
.office-worktime-live-clock.is-check-in-transition .office-time-clock-check-in {
    animation: office-r033-check-in-clock-slide 620ms cubic-bezier(.22,.82,.24,1) 980ms both;
}
.office-dashboard-time-clock.is-check-in-transition .office-time-clock-divider,
.office-worktime-live-clock.is-check-in-transition .office-time-clock-divider {
    animation: office-r033-check-in-clock-reveal 360ms ease 1180ms both;
}
.office-dashboard-time-clock.is-check-in-transition .office-time-clock-live,
.office-worktime-live-clock.is-check-in-transition .office-time-clock-live {
    animation: office-r033-check-in-clock-reveal 420ms ease 1200ms both;
}
@keyframes office-r033-check-in-clock-slide {
    0%, 20% {
        transform: translateX(49px);
        color: #555b60;
    }
    100% {
        transform: translateX(0);
        color: #929292;
    }
}
@keyframes office-r033-check-in-clock-reveal {
    0% { opacity: 0; transform: translateX(8px); }
    100% { opacity: 1; transform: translateX(0); }
}
@media (max-width: 700px) {
    .office-dashboard-time-clock.has-check-in-time,
    .office-worktime-live-clock.has-check-in-time { min-width: 205px; }
    .office-time-clock-pair { width: 164px; min-width: 164px; grid-template-columns:minmax(70px,1fr) 1px minmax(70px,1fr); gap:8px; }
}
@media (prefers-reduced-motion: reduce) {
    .office-dashboard-time-clock.is-check-in-transition .office-time-clock-check-in,
    .office-worktime-live-clock.is-check-in-transition .office-time-clock-check-in,
    .office-dashboard-time-clock.is-check-in-transition .office-time-clock-divider,
    .office-worktime-live-clock.is-check-in-transition .office-time-clock-divider,
    .office-dashboard-time-clock.is-check-in-transition .office-time-clock-live,
    .office-worktime-live-clock.is-check-in-transition .office-time-clock-live { animation-duration: 1ms; animation-delay: 0ms; }
}


/* r033 patch 10 – offer mask acceptance: phase alignment, compact commercial close and simple header master. */
.office-context-bar.is-simple{
    position:relative!important;
    height:var(--office-topbar-height)!important;
    min-height:var(--office-topbar-height)!important;
    padding:0!important;
    margin:0 0 22px!important;
    display:flex!important;
    align-items:center!important;
    border-bottom:0!important;
}
.office-context-bar.is-simple::after{
    content:"";
    position:absolute;
    z-index:0;
    left:50%;
    bottom:0;
    width:100vw;
    border-bottom:1px solid var(--office-border);
    transform:translateX(-50%);
    pointer-events:none;
}
.office-context-bar.is-simple>.office-context-main{
    position:relative;
    z-index:1;
    height:var(--office-topbar-height)!important;
    min-height:var(--office-topbar-height)!important;
    display:flex!important;
    align-items:center!important;
    margin:0!important;
    padding:0!important;
}
.office-context-bar.is-simple .office-context-back-title{
    min-height:42px!important;
    height:42px!important;
    padding:0 11px 0 8px!important;
    display:inline-flex!important;
    align-items:center!important;
    gap:10px!important;
    font-size:15px!important;
    font-weight:600!important;
    line-height:1.2!important;
}
.office-context-bar.is-simple .office-context-back-title .office-context-back-icon{
    width:25px!important;
    height:25px!important;
}

.office-offer-phase-table-r032 th:nth-child(1),
.office-offer-phase-table-r032 td:nth-child(1){
    width:88px!important;
    min-width:88px!important;
    text-align:center!important;
}
.office-offer-phase-table-r032 th:nth-child(1){white-space:nowrap!important}
.office-offer-phase-table-r032 td:nth-child(1)>input[type="checkbox"]{
    display:block!important;
    margin-left:auto!important;
    margin-right:auto!important;
}
.office-offer-summary-row-r016>td:first-child{
    text-align:left!important;
}
.office-offer-adjustment-row-r033>td{
    text-align:left!important;
}
.office-offer-adjustment-label-r033{
    width:min(360px,100%)!important;
    min-width:0!important;
}
.office-offer-adjustment-input-r033{
    display:grid!important;
    grid-template-columns:minmax(96px,1fr) auto!important;
    gap:8px!important;
    align-items:center!important;
    width:min(230px,100%)!important;
    margin-left:auto!important;
}
.office-offer-adjustment-input-r033 .office-number-input-master{
    width:100%!important;
    min-width:0!important;
}
.office-offer-adjustment-mode-r033{
    height:38px!important;
    min-height:38px!important;
    padding:3px!important;
    align-items:center!important;
}
.office-offer-adjustment-mode-r033>button{
    min-width:42px!important;
    height:30px!important;
    min-height:30px!important;
    cursor:pointer!important;
}

.office-offer-commercial-r033>.office-settings-section-heading{
    margin-bottom:18px!important;
}
.office-offer-commercial-r033 .office-offer-commercial-layout-r021{
    grid-template-columns:minmax(0,680px) minmax(300px,1fr)!important;
    gap:36px!important;
    align-items:start!important;
}
.office-offer-commercial-r033 .office-offer-commercial-left-r021{
    width:100%!important;
    max-width:680px!important;
    min-width:0!important;
}
.office-offer-commercial-r033 .office-offer-commercial-inputs-r021{
    gap:16px!important;
}
.office-offer-commercial-r033 .office-offer-commercial-inputs-r021>.office-field{
    width:100%!important;
    max-width:620px!important;
}
.office-offer-commercial-r033 .office-offer-advanced-r016{
    gap:16px!important;
}
@media(max-width:1100px){
    .office-offer-commercial-r033 .office-offer-commercial-layout-r021{grid-template-columns:1fr!important}
    .office-offer-commercial-r033 .office-offer-final-totals-r016{max-width:680px!important}
}
@media(max-width:700px){
    .office-context-bar.is-simple{margin-bottom:18px!important}
    .office-offer-commercial-r033 .office-offer-commercial-left-r021,
    .office-offer-commercial-r033 .office-offer-commercial-inputs-r021>.office-field,
    .office-offer-commercial-r033 .office-offer-final-totals-r016{max-width:none!important}
    .office-offer-commercial-r033 .office-offer-advanced-r016{grid-template-columns:1fr!important}
    .office-offer-adjustment-input-r033{width:100%!important;margin-left:0!important}
}

/* r033 patch 11 – simple context headers consume the workspace top padding so their visible band matches the topbar height exactly. */
.office-page > .office-context-bar.is-simple {
    margin-top: -30px !important;
}
@media (max-width: 1180px) {
    .office-page > .office-context-bar.is-simple { margin-top: -26px !important; }
}
@media (max-width: 920px) {
    .office-page > .office-context-bar.is-simple { margin-top: -22px !important; }
}
@media (max-width: 760px) {
    .office-page > .office-context-bar.is-simple { margin-top: -18px !important; }
}
@media (max-width: 560px) {
    .office-page > .office-context-bar.is-simple { margin-top: -15px !important; }
}


/* r033 patch 12 – normal page scroll chaining, compact offer commercial fields and remaining header/table alignment. */
/* Ordinary Office tables may scroll horizontally, but must never trap the page's vertical mouse-wheel gesture. */
.office-table-frame > .office-table-viewport {
    overscroll-behavior-x: contain !important;
    overscroll-behavior-y: auto !important;
}

/* Offer commercial values are short numeric values, not full-width prose fields. */
.office-offer-commercial-r033 .office-offer-commercial-layout-r021 {
    grid-template-columns:minmax(0,720px) minmax(300px,1fr) !important;
}
.office-offer-commercial-r033 .office-offer-commercial-left-r021 {
    max-width:720px !important;
}
.office-offer-commercial-r033 .office-offer-commercial-inputs-r021 > .office-field {
    width:min(360px,100%) !important;
    max-width:360px !important;
}
.office-offer-commercial-r033 .office-offer-commercial-inputs-r021 .office-number-input-master,
.office-offer-commercial-r033 .office-offer-commercial-inputs-r021 input {
    max-width:360px !important;
}
.office-offer-commercial-r033 .office-offer-advanced-r016 {
    width:min(684px,100%) !important;
    max-width:684px !important;
    grid-template-columns:minmax(0,330px) minmax(0,330px) !important;
    gap:16px 24px !important;
}
.office-offer-commercial-r033 .office-offer-advanced-r016 > .office-field {
    min-width:0 !important;
    max-width:330px !important;
}
.office-offer-commercial-r033 .office-offer-advanced-r016 > .office-field.office-field-span-two {
    grid-column:1 / -1 !important;
    width:100% !important;
    max-width:684px !important;
}
.office-offer-commercial-r033 .office-field-with-pills {
    grid-template-columns:minmax(0,1fr) auto !important;
}

/* "Abrechnung nach Honorar": selection column follows the same centered checkbox master as HOAI phases. */
.office-offer-hourly-table-r024 th:first-child,
.office-offer-hourly-table-r024 td:first-child {
    width:72px !important;
    min-width:72px !important;
    text-align:center !important;
}
.office-offer-hourly-table-r024 td:first-child > input[type="checkbox"] {
    display:block !important;
    margin-left:auto !important;
    margin-right:auto !important;
}

@media(max-width:1100px) {
    .office-offer-commercial-r033 .office-offer-commercial-layout-r021 { grid-template-columns:1fr !important; }
}
@media(max-width:700px) {
    .office-offer-commercial-r033 .office-offer-commercial-inputs-r021 > .office-field,
    .office-offer-commercial-r033 .office-offer-commercial-inputs-r021 .office-number-input-master,
    .office-offer-commercial-r033 .office-offer-commercial-inputs-r021 input,
    .office-offer-commercial-r033 .office-offer-advanced-r016,
    .office-offer-commercial-r033 .office-offer-advanced-r016 > .office-field,
    .office-offer-commercial-r033 .office-offer-advanced-r016 > .office-field.office-field-span-two {
        width:100% !important;
        max-width:none !important;
    }
    .office-offer-commercial-r033 .office-offer-advanced-r016 { grid-template-columns:1fr !important; }
    .office-offer-commercial-r033 .office-offer-advanced-r016 > .office-field.office-field-span-two { grid-column:auto !important; }
}

/* r033 patch 14 – construction diary/task UI consolidation. */
/* Detail pages use the same visible context-header band as project/LV workspaces. */
.office-construction-detail-page > .office-context-bar.is-contextual {
    margin-top:-30px !important;
}
@media(max-width:1180px){.office-construction-detail-page > .office-context-bar.is-contextual{margin-top:-26px !important}}
@media(max-width:920px){.office-construction-detail-page > .office-context-bar.is-contextual{margin-top:-22px !important}}
@media(max-width:760px){.office-construction-detail-page > .office-context-bar.is-contextual{margin-top:-18px !important}}
@media(max-width:560px){.office-construction-detail-page > .office-context-bar.is-contextual{margin-top:-15px !important}}

/* Date, time and weather are one visual control family on a daily report. */
.office-diary-meta-r015 .office-date-picker-trigger-r025,
.office-diary-meta-r015 .office-time-input-control-r033,
.office-diary-meta-r015 .office-weather-trigger-r015 {
    width:100% !important;
    height:40px !important;
    min-height:40px !important;
    box-sizing:border-box !important;
    font-family:inherit !important;
    font-size:13px !important;
    font-weight:400 !important;
    line-height:1.2 !important;
    color:var(--office-text) !important;
}
.office-diary-meta-r015 .office-date-picker-trigger-r025 .office-date-picker-value-r025,
.office-diary-meta-r015 .office-weather-trigger-r015 strong,
.office-diary-meta-r015 .office-weather-trigger-r015 > span:nth-child(2) {
    font:inherit !important;
    color:inherit !important;
}
.office-diary-meta-r015 .office-date-picker-trigger-r025 .office-svg-icon,
.office-diary-meta-r015 .office-time-input-icon-r033,
.office-diary-meta-r015 .office-weather-trigger-r015 .office-weather-local-icon {
    width:18px !important;
    height:18px !important;
    min-width:18px !important;
    flex:0 0 18px !important;
    opacity:.82 !important;
}
.office-time-input-r033 {
    position:relative;
    width:100%;
}
.office-time-input-control-r033 {
    padding-right:42px !important;
    -webkit-appearance:none;
    appearance:none;
}
.office-time-input-icon-r033 {
    position:absolute;
    right:12px;
    top:50%;
    transform:translateY(-50%);
    pointer-events:none;
    color:var(--office-text-secondary);
}
.office-time-input-control-r033::-webkit-calendar-picker-indicator {
    position:absolute;
    inset:0 0 0 auto;
    width:42px;
    height:100%;
    margin:0;
    opacity:0;
    cursor:pointer;
}

/* Photo action buttons stack to free heading space and use identical widths. */
.office-diary-photo-actions-r032 {
    width:164px !important;
    display:grid !important;
    grid-template-columns:1fr !important;
    gap:8px !important;
    align-items:stretch !important;
}
.office-diary-photo-actions-r032 > .office-button {
    width:100% !important;
    min-width:0 !important;
    justify-content:center !important;
    box-sizing:border-box !important;
}
.office-diary-photo-heading-r032 > div:first-child p {
    white-space:nowrap !important;
}

/* Task list spacing follows the diary list master. */
.office-construction-list-r015.office-construction-list-r012 {
    display:grid;
    gap:14px;
}

/* Task history: plain Office list rows instead of pill/card rows. */
.office-history-row.office-history-row-r023 {
    grid-template-columns:170px minmax(0,1fr) !important;
    gap:20px !important;
    align-items:center !important;
    padding:11px 4px !important;
    margin:0 !important;
    border:0 !important;
    border-bottom:1px solid var(--office-border) !important;
    border-radius:0 !important;
    background:transparent !important;
    box-shadow:none !important;
    font-size:13px !important;
    line-height:1.35 !important;
}
.office-history-row.office-history-row-r023:last-child {
    border-bottom:0 !important;
}
.office-history-row.office-history-row-r023 > span:first-child {
    color:var(--office-text-muted) !important;
    font-weight:500 !important;
    font-variant-numeric:tabular-nums;
}
.office-history-row.office-history-row-r023 > span:last-child {
    color:var(--office-text) !important;
    font-weight:400 !important;
}
@media(max-width:700px){
    .office-history-row.office-history-row-r023{grid-template-columns:1fr !important;gap:3px !important;padding:10px 2px !important}
    .office-diary-photo-actions-r032{width:100% !important}
}

/* r033 patch 15 – construction/document master refinements. */
/* Diary report: less dead space between explanatory copy and mode pill. */
.office-diary-report-card-r019{gap:14px!important}
.office-diary-report-card-r019>.office-diary-report-heading-r023{margin:0!important;padding:0!important}
.office-diary-report-controls-r032{margin-top:0!important}

/* Photo actions: keep both labels on one line at identical widths; always-visible count stays readable. */
.office-diary-photo-actions-r032{width:196px!important}
.office-diary-photo-actions-r032>.office-button{white-space:nowrap!important}
.office-diary-photo-heading-r032>div:first-child p{white-space:normal!important}

/* Construction selection follows Documents: first, narrow, unlabeled checkbox column. */
/* Task company group rows are intentionally only a slight hierarchy above normal table rows. */
.office-task-group-table-r019-final .office-task-company-table-group-content-r019-final{min-height:44px!important;padding:5px 10px!important;gap:8px!important}
.office-task-group-table-r019-final .office-task-group-toggle-r015{gap:6px!important;padding:3px 0!important}
.office-task-group-table-r019-final .office-task-group-toggle-r015 strong{font-size:13px!important;font-weight:650!important}
.office-task-group-table-r019-final .office-task-group-toggle-r015>span:last-child{font-size:11.5px!important}
.office-task-group-table-r019-final .office-task-group-chevron-r019-final{width:12px!important;height:12px!important;flex-basis:12px!important}

/* Documents: the OfficeTableFrame itself is the card; no second white card around it. */
.office-document-table-card-r025{overflow:visible!important;background:transparent!important;border:0!important;border-radius:0!important;padding:0!important;box-shadow:none!important}
.office-document-table-card-r025>.office-table-frame{margin:0!important}
.office-document-toolbar-actions-r025 .office-svg-icon{width:16px!important;height:16px!important;flex:0 0 16px!important}

@media(max-width:700px){
  .office-diary-photo-actions-r032{width:100%!important}
}

/* r033 patch 16 – document/selection/photo-count/header-search master refinements. */
/* Construction selection uses exactly the generic Documents table master: no local width/padding override. */

/* Photo availability/link counts are stacked for quick scanning in diary and task detail cards. */
.office-photo-count-stack-r033{
    display:grid!important;
    gap:1px!important;
    margin-top:4px!important;
    line-height:1.25!important;
}
.office-photo-count-stack-r033>span{display:block}

/* Documents use the normal non-sticky table header divider, matching the diary table. */
.office-document-table-card-r025 .office-table:not(.has-sticky-header) thead th{box-shadow:none!important}

/* The consolidated documents note is plain helper copy, without decorative bullets. */
.office-document-legend-r025{display:block!important}

/* Context-header live search: author display rules must never override [hidden]. */
.office-context-menu-list [data-office-context-item][hidden]{display:none!important}
.office-context-menu-list [data-office-context-item].is-search-current{
    background:rgba(15,108,189,.065)!important;
    color:var(--office-primary)!important;
}


/* r033 patch 17 – click-driven navigation motion and construction table column master. */
/* Main project navigation: hover is text-only; the selected grey pill moves only when selection changes. */
.office-project-tabs > .office-project-tab:hover{
    color:var(--office-text)!important;
    background:transparent!important;
}
.office-project-tabs > .office-project-tab.active{
    color:var(--office-text)!important;
}

/* Local navigation: hover is text-only. The existing blue indicator is intentionally subtle. */
.office-local-tabs::after{
    height:2px!important;
    border-radius:2px 2px 0 0!important;
}
.office-local-tabs > .office-local-tab:hover{
    color:var(--office-text)!important;
    background:transparent!important;
    border-bottom-color:transparent!important;
}
.office-local-tab.active,
button.office-local-tab.active{
    border-bottom-width:2px!important;
}

/* Documents defines the Office selection-column geometry. Diary and tasks use exactly the same 94 px master. */
.office-document-table-card-r025 .office-table-select-column,
.office-diary-list-table-r033 .office-table-select-column,
.office-task-group-table-r019-final .office-table-select-column{
    width:94px!important;
    min-width:94px!important;
    max-width:94px!important;
    box-sizing:border-box!important;
    padding-left:24px!important;
    padding-right:24px!important;
    text-align:center!important;
}
.office-document-table-card-r025 .office-table-select-column > input[type="checkbox"],
.office-diary-list-table-r033 .office-table-select-column > input[type="checkbox"],
.office-task-group-table-r019-final .office-table-select-column > input[type="checkbox"]{
    display:block!important;
    margin-left:auto!important;
    margin-right:auto!important;
}

/* Diary: lock utility/date columns so spare width belongs to the report title, not the checkbox column. */
.office-diary-list-table-r033 .office-table{
    table-layout:fixed!important;
    min-width:900px!important;
}
.office-diary-list-table-r033 th:nth-child(2),
.office-diary-list-table-r033 td:nth-child(2){width:auto!important}
.office-diary-list-table-r033 th:nth-child(3),
.office-diary-list-table-r033 td:nth-child(3){width:130px!important}
.office-diary-list-table-r033 th:nth-child(4),
.office-diary-list-table-r033 td:nth-child(4){width:105px!important}
.office-diary-list-table-r033 th:nth-child(5),
.office-diary-list-table-r033 td:nth-child(5){width:250px!important}
.office-diary-list-table-r033 th.office-table-actions-column,
.office-diary-list-table-r033 td.office-table-actions-column{
    width:82px!important;
    min-width:82px!important;
    max-width:82px!important;
    text-align:center!important;
}
.office-diary-list-table-r033 td.office-table-actions-column > .office-context-menu-wrap{
    display:flex!important;
    justify-content:center!important;
}

/* Tasks: title receives the flexible width; compact identifiers, dates, photo count and actions stay compact. */
.office-task-group-table-r019-final .office-table{
    table-layout:fixed!important;
    min-width:1180px!important;
}
.office-task-group-table-r019-final th:nth-child(2),
.office-task-group-table-r019-final td:nth-child(2){width:82px!important}
.office-task-group-table-r019-final th:nth-child(3),
.office-task-group-table-r019-final td:nth-child(3){width:auto!important}
.office-task-group-table-r019-final th:nth-child(4),
.office-task-group-table-r019-final td:nth-child(4){width:146px!important}
.office-task-group-table-r019-final th:nth-child(5),
.office-task-group-table-r019-final td:nth-child(5){width:190px!important}
.office-task-group-table-r019-final th:nth-child(6),
.office-task-group-table-r019-final td:nth-child(6){width:142px!important}
.office-task-group-table-r019-final th:nth-child(7),
.office-task-group-table-r019-final td:nth-child(7){width:142px!important}
.office-task-group-table-r019-final th:nth-child(8),
.office-task-group-table-r019-final td:nth-child(8){width:70px!important;text-align:center!important}
.office-task-group-table-r019-final th.office-table-actions-column,
.office-task-group-table-r019-final td.office-table-actions-column{
    width:82px!important;
    min-width:82px!important;
    max-width:82px!important;
    text-align:center!important;
}
.office-task-group-table-r019-final td.office-table-actions-column > .office-context-menu-wrap{
    display:flex!important;
    justify-content:center!important;
}

/* Company-group action button occupies the same final 82 px action track as every task row. */
.office-task-group-table-r019-final .office-task-company-table-group-content-r019-final{
    display:grid!important;
    grid-template-columns:minmax(0,1fr) 82px!important;
    align-items:center!important;
    padding-right:0!important;
}
.office-task-group-table-r019-final .office-task-company-table-group-content-r019-final > .office-context-menu-wrap{
    width:82px!important;
    display:flex!important;
    justify-content:center!important;
    align-items:center!important;
}

@media(prefers-reduced-motion:reduce){
    .office-project-tabs::before,
    .office-local-tabs::after{transition:opacity 80ms linear!important}
}


/* r033 patch 18 – Bauleitung sharing/mail finalization */
.office-construction-send-dialog-r015 .office-mail-sender-r031{
  grid-template-columns:82px minmax(0,1fr)!important;
  column-gap:10px!important;
  row-gap:1px!important;
  align-items:center!important;
}
.office-construction-send-dialog-r015 .office-mail-sender-r031>span{
  grid-row:1/3!important;
  align-self:center!important;
}
.office-construction-send-dialog-r015 .office-mail-sender-r031>strong{
  line-height:1.25!important;
  min-height:18px;
}
.office-construction-mail-ai-row-r033{display:flex;justify-content:flex-end;margin:-2px 0 0}
.office-construction-send-dialog-r015 .office-construction-mail-editor-r033 .office-rich-surface{
  height:360px!important;
  min-height:360px!important;
  max-height:360px!important;
  overflow-y:auto!important;
  overscroll-behavior:contain;
  scrollbar-gutter:stable;
}
.office-diary-report-card-r019 .office-rich-surface{
  max-height:min(52dvh,520px)!important;
  overflow-y:auto!important;
  overscroll-behavior:contain;
  scrollbar-gutter:stable;
}
.office-construction-send-dialog-r015 .office-mail-pdf-card-r024{min-height:58px}
.office-construction-send-dialog-r015 .office-share-link-r015{margin-top:0}
.office-construction-send-dialog-r015 .office-share-link-r015 .office-button .office-svg-icon{width:14px!important;height:14px!important}
.office-share-banner-r015>.office-svg-icon{width:15px!important;height:15px!important}
.office-share-banner-r015>.office-button.is-compact .office-svg-icon{width:14px!important;height:14px!important}
.office-share-banner-r015>.office-icon-button{width:28px!important;height:28px!important;min-width:28px!important;min-height:28px!important}
.office-share-banner-r015>.office-icon-button .office-svg-icon{width:13px!important;height:13px!important}
@media(max-width:700px){
  .office-construction-send-dialog-r015 .office-mail-sender-r031{grid-template-columns:72px minmax(0,1fr)!important}
  .office-construction-send-dialog-r015 .office-construction-mail-editor-r033 .office-rich-surface{height:260px!important;min-height:260px!important;max-height:260px!important}
}

/* r033 patch 19 – Bauleitung mail dialog master / compact inline icons */
.office-construction-send-dialog-r015{
  width:min(820px,calc(100vw - 32px))!important;
  max-width:820px!important;
  max-height:min(96dvh,1040px)!important;
}
.office-construction-send-dialog-r015 .office-dialog-body{
  gap:8px!important;
  min-height:0;
  overflow-y:auto;
}
.office-construction-send-dialog-r015 .office-mail-sender-r031{
  display:grid!important;
  grid-template-columns:82px minmax(0,1fr)!important;
  align-items:center!important;
  gap:10px!important;
  min-height:42px;
  padding:0!important;
  border:0!important;
  border-radius:0!important;
  background:transparent!important;
}
.office-construction-send-dialog-r015 .office-mail-sender-r031>span{
  grid-row:auto!important;
  align-self:center!important;
  color:var(--office-text-muted);
  font-size:12px;
  font-weight:600;
}
.office-mail-sender-copy-r033{
  min-width:0;
  min-height:42px;
  display:flex;
  align-items:center;
  gap:10px;
  padding:0 12px;
  border:1px solid var(--office-border);
  border-radius:10px;
  background:var(--office-surface-soft);
  box-sizing:border-box;
}
.office-mail-sender-copy-r033 strong{
  flex:0 1 auto;
  min-width:0;
  font-size:14px;
  line-height:1.2;
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
}
.office-mail-sender-copy-r033 small{
  flex:0 0 auto;
  color:var(--office-text-muted);
  line-height:1.2;
}
.office-construction-send-dialog-r015 .office-mail-recipient-row-r023{
  width:100%;
  grid-template-columns:82px minmax(0,1fr)!important;
  gap:10px!important;
  margin:0!important;
}
.office-construction-send-dialog-r015 .office-mail-recipient-row-r023>.office-email-recipient-picker-r023,
.office-construction-send-dialog-r015 .office-mail-recipient-row-r023>input{
  width:100%!important;
  min-width:0!important;
  max-width:none!important;
  box-sizing:border-box!important;
}
.office-construction-send-dialog-r015 .office-construction-mail-editor-r033 .office-rich-surface{
  height:430px!important;
  min-height:430px!important;
  max-height:430px!important;
}
.office-construction-send-dialog-r015 .office-checkbox-row{
  min-height:32px;
  margin:0!important;
  padding:2px 0!important;
}
.office-construction-send-dialog-r015 .office-share-link-r015{
  display:grid!important;
  grid-template-columns:minmax(0,1fr) auto!important;
  align-items:center!important;
  gap:10px!important;
  margin:0!important;
  padding:7px 9px!important;
}
.office-construction-send-dialog-r015 .office-share-link-r015 code{
  min-width:0;
  margin:0;
}
.office-construction-send-dialog-r015 .office-share-link-r015 .office-button{
  justify-self:end;
  align-self:center;
  white-space:nowrap;
}
.office-task-group-table-r019-final .office-inline-select-r015 .office-combobox-chevron{
  width:14px!important;
  height:14px!important;
}
.office-task-group-table-r019-final .office-date-picker-trigger-r025>.office-svg-icon{
  width:15px!important;
  height:15px!important;
}
@media(max-width:700px){
  .office-construction-send-dialog-r015{
    width:calc(100vw - 20px)!important;
    max-height:calc(100dvh - 20px)!important;
  }
  .office-construction-send-dialog-r015 .office-mail-sender-r031,
  .office-construction-send-dialog-r015 .office-mail-recipient-row-r023{
    grid-template-columns:72px minmax(0,1fr)!important;
  }
  .office-mail-sender-copy-r033{
    align-items:flex-start;
    flex-direction:column;
    justify-content:center;
    gap:1px;
    padding:6px 10px;
  }
  .office-mail-sender-copy-r033 small{white-space:normal}
  .office-construction-send-dialog-r015 .office-construction-mail-editor-r033 .office-rich-surface{
    height:300px!important;
    min-height:300px!important;
    max-height:300px!important;
  }
  .office-construction-send-dialog-r015 .office-share-link-r015{
    grid-template-columns:1fr!important;
  }
  .office-construction-send-dialog-r015 .office-share-link-r015 .office-button{
    justify-self:end;
  }
}

/* r033 patch 20 – worktime import / tracking start dates / construction mail+PDF polish */
.office-user-worktime-section-r033{
  margin-top:22px;
  padding-top:20px;
  border-top:1px solid var(--office-border);
}
.office-user-worktime-section-r033 .office-settings-section-heading{margin-bottom:14px}
.office-user-worktime-section-r033 .office-settings-section-heading h3{margin:3px 0 4px}
.office-user-worktime-section-r033 .office-settings-section-heading p{margin:0;color:var(--office-text-secondary)}
.office-user-worktime-grid-r033{max-width:760px}
.office-user-worktime-grid-r033 .office-worktime-compliance-setting-r027{margin-top:2px}

.office-worktime-import-card-r033{display:grid;gap:14px}
.office-worktime-import-actions-r033{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.office-worktime-import-file-r033{min-width:min(420px,100%);max-width:620px;flex:1 1 360px}
.office-worktime-import-actions-r033>.office-button{flex:0 0 auto}
.office-worktime-import-hint-r033{margin:-4px 0 0;color:var(--office-text-muted);font-size:12px;line-height:1.45}
.office-worktime-import-source-r033,
.office-worktime-import-summary-r033{
  display:grid;
  gap:1px;
  overflow:hidden;
  border:1px solid var(--office-border);
  border-radius:12px;
  background:var(--office-border);
}
.office-worktime-import-source-r033{grid-template-columns:repeat(5,minmax(0,1fr))}
.office-worktime-import-summary-r033{grid-template-columns:repeat(8,minmax(0,1fr))}
.office-worktime-import-source-r033>div,
.office-worktime-import-summary-r033>div{
  min-width:0;
  padding:10px 12px;
  background:var(--office-surface);
  display:grid;
  gap:3px;
}
.office-worktime-import-source-r033 span,
.office-worktime-import-summary-r033 span{font-size:11px;color:var(--office-text-muted)}
.office-worktime-import-source-r033 strong,
.office-worktime-import-summary-r033 strong{font-size:13px;line-height:1.25;min-width:0;overflow-wrap:anywhere}
.office-worktime-import-preview-heading-r033{display:flex;align-items:flex-end;justify-content:space-between;gap:14px;margin-top:2px}
.office-worktime-import-preview-heading-r033 h3{margin:0 0 2px;font-size:14px}
.office-worktime-import-preview-heading-r033 p{margin:0;color:var(--office-text-secondary);font-size:12px}
.office-worktime-import-date-r033{width:116px;white-space:nowrap;font-variant-numeric:tabular-nums}

.office-construction-send-dialog-r015{max-height:min(98dvh,1120px)!important}
.office-construction-send-dialog-r015 .office-mail-sender-copy-r033 strong,
.office-construction-send-dialog-r015 .office-mail-sender-copy-r033 small{
  font-size:14px!important;
  font-weight:400!important;
  font-style:normal!important;
  line-height:1.25!important;
}
.office-construction-send-dialog-r015 .office-mail-sender-copy-r033 strong{color:var(--office-text)!important}
.office-construction-send-dialog-r015 .office-mail-sender-copy-r033 small{color:var(--office-text-muted)!important}
.office-construction-send-dialog-r015 .office-construction-mail-editor-r033 .office-rich-surface{
  height:500px!important;
  min-height:500px!important;
  max-height:500px!important;
}
.office-construction-send-dialog-r015 .office-mail-pdf-card-r024>.office-construction-preview-button-r033,
.office-construction-send-dialog-r015 .office-share-link-r015>.office-button{
  width:148px!important;
  min-width:148px!important;
  justify-content:center!important;
}
.office-construction-preview-button-r033 .office-svg-icon{width:14px!important;height:14px!important}
.office-construction-send-dialog-r015 .office-checkbox-row{min-height:28px!important;padding:0!important}
.office-construction-send-dialog-r015 .office-mail-pdf-card-r024{min-height:54px!important}

@media(max-width:1100px){
  .office-worktime-import-source-r033{grid-template-columns:repeat(2,minmax(0,1fr))}
  .office-worktime-import-summary-r033{grid-template-columns:repeat(4,minmax(0,1fr))}
}
@media(max-width:700px){
  .office-user-worktime-grid-r033{grid-template-columns:1fr!important}
  .office-user-worktime-grid-r033 .office-field-span-two{grid-column:auto}
  .office-worktime-import-actions-r033{align-items:stretch;flex-direction:column}
  .office-worktime-import-file-r033{min-width:0;width:100%;max-width:none;flex:none}
  .office-worktime-import-actions-r033>.office-button{width:100%}
  .office-worktime-import-source-r033,
  .office-worktime-import-summary-r033{grid-template-columns:1fr 1fr}
  .office-worktime-import-preview-heading-r033{align-items:flex-start;flex-direction:column}
  .office-construction-send-dialog-r015 .office-construction-mail-editor-r033 .office-rich-surface{
    height:340px!important;
    min-height:340px!important;
    max-height:340px!important;
  }
  .office-construction-send-dialog-r015 .office-mail-pdf-card-r024>.office-construction-preview-button-r033,
  .office-construction-send-dialog-r015 .office-share-link-r015>.office-button{width:148px!important;min-width:148px!important}
}

/* r033 Patch 25 – Projektrollen & Fachbereiche: kompakter Office-Master */
.office-project-contact-settings-r025{
  width:100%;
  min-width:0;
}
.office-project-contact-grid-r025{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:18px;
  align-items:start;
}
.office-project-contact-card-r025{
  min-width:0;
  padding:20px;
  overflow:visible;
}
.office-project-contact-heading-r025{
  margin:0 0 16px!important;
  padding:0;
}
.office-project-contact-heading-r025 h2{
  margin:0;
}
.office-project-contact-heading-r025 p{
  margin:4px 0 0;
}
.office-definition-list-r025{
  display:grid;
  gap:8px;
  min-width:0;
}
.office-definition-row-r025{
  display:grid;
  grid-template-columns:26px minmax(150px,1fr) 116px 72px 126px;
  gap:8px;
  align-items:center;
  min-width:0;
  min-height:54px;
  padding:7px 8px;
  border:1px solid var(--office-border);
  border-radius:10px;
  background:var(--office-surface-soft);
  transition:border-color .14s ease,background-color .14s ease,opacity .14s ease;
}
.office-definition-row-r025:hover{
  border-color:var(--office-border-strong);
}
.office-definition-row-r025.is-dragging{
  opacity:.5;
  border-color:var(--office-primary);
}
.office-definition-row-r025.is-new{
  background:var(--office-surface);
  border-style:dashed;
}
.office-definition-row-r025>*{
  min-width:0;
}
.office-definition-name-r025{
  width:100%;
  height:36px!important;
  min-height:36px!important;
  box-sizing:border-box;
  padding:0 10px!important;
  border:1px solid var(--office-border-strong)!important;
  border-radius:8px!important;
  background:var(--office-surface)!important;
  color:var(--office-text)!important;
  font:inherit!important;
  box-shadow:none!important;
}
.office-definition-name-r025:focus{
  border-color:var(--office-primary)!important;
  outline:0;
  box-shadow:0 0 0 2px color-mix(in srgb,var(--office-primary) 12%,transparent)!important;
}
.office-definition-drag-handle-r025,
.office-definition-drag-placeholder-r025{
  width:26px;
  height:36px;
}
.office-definition-drag-handle-r025{
  display:grid;
  place-items:center;
  border-radius:7px;
  color:var(--office-text-muted);
  cursor:grab;
  user-select:none;
}
.office-definition-drag-handle-r025:hover{
  background:var(--office-surface-hover,#f1f4f7);
  color:var(--office-text);
}
.office-definition-drag-handle-r025:active{
  cursor:grabbing;
}
.office-definition-drag-handle-r025 .office-svg-icon{
  width:14px;
  height:14px;
}
.office-definition-active-r025{
  display:flex!important;
  align-items:center!important;
  justify-content:flex-start;
  gap:7px!important;
  min-height:36px;
  margin:0!important;
  padding:0 2px;
  white-space:nowrap;
  font-size:13px;
  color:var(--office-text-secondary);
}
.office-definition-actions-r025{
  display:grid;
  grid-template-columns:minmax(0,1fr) 36px;
  gap:6px;
  align-items:center;
  min-width:0;
}
.office-definition-actions-r025 .office-button,
.office-definition-add-r025{
  min-width:0;
  width:100%;
  height:36px;
  min-height:36px;
  justify-content:center;
}
.office-definition-actions-r025 .office-icon-button{
  width:36px;
  height:36px;
  min-width:36px;
}

/* Kompakte Farbauswahl: ein Office-Trigger, Palette als schwebendes Popover. */
.office-color-picker-compact-r025{
  position:relative;
  display:block;
  width:116px;
  min-width:0;
}
.office-color-trigger-r025{
  display:grid;
  grid-template-columns:20px minmax(0,1fr) 12px;
  align-items:center;
  gap:7px;
  width:100%;
  height:36px;
  padding:0 8px;
  border:1px solid var(--office-border-strong);
  border-radius:8px;
  background:var(--office-surface);
  color:var(--office-text);
  font:inherit;
  font-size:12px;
  cursor:pointer;
  box-sizing:border-box;
}
.office-color-trigger-r025:hover{
  border-color:color-mix(in srgb,var(--office-border-strong) 72%,var(--office-text));
  background:var(--office-surface-hover,#f7f8fa);
}
.office-color-trigger-r025[aria-expanded="true"]{
  border-color:var(--office-primary);
  box-shadow:0 0 0 2px color-mix(in srgb,var(--office-primary) 12%,transparent);
}
.office-color-preview-r025{
  width:20px;
  height:20px;
  border-radius:5px;
  border:1px solid color-mix(in srgb,#111827 20%,transparent);
  box-sizing:border-box;
}
.office-color-value-r025{
  min-width:0;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
  font-family:ui-monospace,SFMono-Regular,Consolas,monospace;
  font-size:11px;
}
.office-color-chevron-r025{
  width:11px!important;
  height:11px!important;
  opacity:.65;
  transition:transform .14s ease;
}
.office-color-trigger-r025[aria-expanded="true"] .office-color-chevron-r025{
  transform:rotate(180deg);
}
.office-color-popover-r025{
  position:absolute;
  z-index:120;
  top:calc(100% + 6px);
  right:0;
  width:260px;
  padding:10px;
  border:1px solid var(--office-border-strong);
  border-radius:10px;
  background:var(--office-surface);
  box-shadow:0 12px 28px rgba(15,23,42,.14);
}
.office-color-popover-controls-r025{
  display:grid;
  grid-template-columns:42px minmax(0,1fr);
  gap:8px;
  align-items:center;
  margin-bottom:10px;
}
.office-color-popover-controls-r025 .office-color-hex-r028 .office-input{
  width:100%;
  height:36px;
  min-height:36px;
  border:1px solid var(--office-border-strong);
  border-radius:8px;
  box-sizing:border-box;
}
.office-color-palette-compact-r025{
  position:static!important;
  display:grid!important;
  grid-template-columns:repeat(10,20px)!important;
  gap:4px!important;
  width:auto!important;
  max-width:none!important;
  padding:0!important;
}
.office-color-palette-compact-r025 .office-color-swatch-r028{
  width:20px!important;
  height:20px!important;
}

@media(max-width:1380px){
  .office-project-contact-grid-r025{
    grid-template-columns:1fr;
  }
  .office-project-contact-card-r025{
    max-width:1080px;
  }
}
@media(max-width:760px){
  .office-project-contact-card-r025{
    padding:16px;
  }
  .office-definition-row-r025{
    grid-template-columns:26px minmax(0,1fr) 116px;
    align-items:center;
  }
  .office-definition-active-r025{
    grid-column:2/3;
  }
  .office-definition-actions-r025,
  .office-definition-add-r025{
    grid-column:3/4;
  }
  .office-definition-actions-r025{
    grid-template-columns:minmax(0,1fr) 36px;
  }
  .office-definition-active-placeholder-r025{
    display:none;
  }
}
@media(max-width:560px){
  .office-definition-row-r025{
    grid-template-columns:26px minmax(0,1fr);
  }
  .office-definition-row-r025>.office-color-picker-compact-r025,
  .office-definition-row-r025>.office-definition-active-r025,
  .office-definition-row-r025>.office-definition-actions-r025,
  .office-definition-row-r025>.office-definition-add-r025{
    grid-column:2/3;
  }
  .office-color-picker-compact-r025{
    width:136px;
  }
  .office-definition-actions-r025,
  .office-definition-add-r025{
    width:min(100%,180px);
  }
}

/* r033 Patch 26 – responsive content axis + quiet material context navigation.
   The page content and the visible back glyph share one horizontal rhythm at every viewport width. */
:root{
  --office-content-gutter-r033:clamp(10px,1.75vw,34px);
}
.office-workspace{
  padding-left:var(--office-content-gutter-r033)!important;
  padding-right:var(--office-content-gutter-r033)!important;
}

/* Context bands use a restrained translucent material instead of a hard divider line. */
.office-context-bar.is-contextual,
.office-context-bar.is-simple{
  isolation:isolate;
  overflow:visible!important;
  background:transparent!important;
  border-bottom:0!important;
  box-shadow:none!important;
}
.office-context-bar.is-contextual::after,
.office-context-bar.is-simple::after{
  content:""!important;
  position:absolute!important;
  z-index:0!important;
  inset:0 auto auto 50%!important;
  width:100vw!important;
  height:100%!important;
  transform:translateX(-50%)!important;
  border:0!important;
  background:var(--office-surface)!important;
  background:color-mix(in srgb,var(--office-surface) 94%,transparent)!important;
  -webkit-backdrop-filter:saturate(145%) blur(16px);
  backdrop-filter:saturate(145%) blur(16px);
  box-shadow:0 1px 0 rgba(15,23,42,.018),0 7px 18px rgba(15,23,42,.028)!important;
  pointer-events:none!important;
}
.office-context-bar.is-contextual>.office-context-main,
.office-context-bar.is-contextual>.office-context-actions,
.office-context-bar.is-simple>.office-context-main{
  position:relative;
  z-index:1;
}

/* The actual arrow artwork, not only its hit target, starts on the page-content axis. */
.office-context-bar.is-contextual .office-context-back{
  justify-content:flex-start!important;
  padding-left:0!important;
}
.office-context-bar.is-simple .office-context-back-title{
  padding-left:0!important;
}

/* Small desktop widths stay deliberately close to the viewport edge; the gutter changes continuously,
   avoiding the visible jumps caused by the former 1180/920 px padding steps. */
@media(max-width:700px){
  :root{--office-content-gutter-r033:clamp(10px,2.2vw,15px)}
  .office-context-bar.is-contextual::after,
  .office-context-bar.is-simple::after{
    -webkit-backdrop-filter:saturate(135%) blur(12px);
    backdrop-filter:saturate(135%) blur(12px);
    box-shadow:0 1px 0 rgba(15,23,42,.016),0 5px 14px rgba(15,23,42,.024)!important;
  }
}

/* r033 Patch 27 – project-module layout master + context/navigation refinement.
   Honorar > Angebote defines the shared rhythm for every project module/subpage. */

/* Context band: sit visually between the white shell and the soft-grey page instead of reading as a white foreign body. */
.office-context-bar.is-contextual::after,
.office-context-bar.is-simple::after{
  background:color-mix(in srgb,var(--office-surface) 58%,var(--office-bg) 42%)!important;
  -webkit-backdrop-filter:saturate(125%) blur(14px)!important;
  backdrop-filter:saturate(125%) blur(14px)!important;
  box-shadow:0 1px 0 rgba(15,23,42,.018),0 6px 16px rgba(15,23,42,.024)!important;
}

/* Back and project selector use the same 42 px interaction height, radius and hover material.
   The back target extends a little left so the visible arrow, not its box, stays on the shared content axis. */
.office-context-bar.is-contextual .office-context-back{
  width:42px!important;
  min-width:42px!important;
  height:42px!important;
  min-height:42px!important;
  margin-left:-8px!important;
  padding:0!important;
  display:grid!important;
  place-items:center!important;
  justify-content:center!important;
  border-radius:10px!important;
  background:transparent!important;
  transition:background-color .16s var(--office-ease-out),color .16s var(--office-ease-out)!important;
}
.office-context-bar.is-contextual .office-context-select{
  min-height:42px!important;
  height:42px!important;
  border-radius:10px!important;
  transition:background-color .16s var(--office-ease-out),color .16s var(--office-ease-out)!important;
}
.office-context-bar.is-contextual .office-context-back:hover,
.office-context-bar.is-contextual .office-context-back:focus-visible,
.office-context-bar.is-contextual .office-context-select:hover,
.office-context-bar.is-contextual .office-context-select:focus-visible,
.office-context-bar.is-contextual .office-context-select[aria-expanded="true"]{
  background:var(--office-hover)!important;
}
.office-context-bar.is-contextual .office-context-back-icon{
  width:25px!important;
  height:25px!important;
}
.office-context-bar.is-simple .office-context-back-title{
  min-height:42px!important;
  height:42px!important;
  margin-left:-8px!important;
  padding:0 12px 0 8px!important;
  border-radius:10px!important;
}

/* One project-content card master. */
.office-project-module-card-r033{
  min-width:0!important;
  padding:26px 28px!important;
  border:1px solid var(--office-border)!important;
  border-radius:12px!important;
  background:var(--office-surface)!important;
  box-shadow:none!important;
}
.office-project-module-heading-r033{
  width:100%;
  min-width:0;
  margin:0 0 20px!important;
  padding:0!important;
  border:0!important;
  display:flex!important;
  align-items:flex-start!important;
  justify-content:space-between!important;
  gap:20px!important;
  background:transparent!important;
}
.office-project-module-heading-r033>div:first-child{min-width:0}
.office-project-module-heading-r033 h2{
  margin:0!important;
  color:var(--office-text)!important;
  font-size:18px!important;
  line-height:1.24!important;
  font-weight:700!important;
  letter-spacing:-.012em!important;
}
.office-project-module-heading-r033 p{
  margin:5px 0 0!important;
  color:var(--office-text-secondary)!important;
  font-size:13px!important;
  line-height:1.45!important;
  font-weight:400!important;
}
.office-project-module-heading-r033>.office-time-list-actions,
.office-project-module-heading-r033>.office-inline-actions,
.office-project-module-heading-r033>.office-page-heading-actions,
.office-project-module-heading-r033>.office-document-toolbar-actions-r025,
.office-project-module-heading-r033>.office-button{
  flex:0 0 auto;
  margin:0 0 0 auto!important;
  align-self:flex-start!important;
}
.office-project-module-heading-r033 .office-project-heading-actions-r019{margin-bottom:0!important}
.office-project-module-toolbar-r033{
  min-width:0;
  margin:0 0 18px!important;
  padding:0!important;
  border:0!important;
  border-radius:0!important;
  background:transparent!important;
  box-shadow:none!important;
}
.office-project-module-inner-r033{
  min-width:0;
  margin:0!important;
  padding:0!important;
  border:0!important;
  border-radius:0!important;
  background:transparent!important;
  box-shadow:none!important;
}

/* The old per-panel heading classes must not reintroduce different spacing. */
.office-project-module-card-r033>.office-project-module-heading-r033,
.office-project-fee-overview-r023>.office-project-module-heading-r033,
.office-project-invoices-panel>.office-project-module-heading-r033,
.office-project-contacts-panel>.office-project-module-heading-r033{
  margin-bottom:20px!important;
}
.office-project-module-card-r033 .office-contract-heading-copy-r025{margin:0!important;padding:0!important}
.office-project-module-card-r033 .office-contract-heading-r023{width:100%!important}

/* Tätigkeiten: heading/actions above, filters below – same structure as offers/cost planning. */
.office-project-time-panel>.office-time-list-toolbar.office-project-module-toolbar-r033{
  display:flex!important;
  align-items:center!important;
  justify-content:flex-start!important;
  gap:12px!important;
}
.office-project-time-panel>.office-time-list-toolbar.office-project-module-toolbar-r033 .office-time-filter-inline-r023{
  width:100%;
}

/* Contacts: remove the one-off divider/header padding and inherit the project module card master. */
.office-project-contacts-panel{padding:26px 28px!important}
.office-project-contacts-panel>.office-project-contacts-toolbar{
  margin:0 0 20px!important;
  padding:0!important;
  border:0!important;
  min-height:0!important;
}

/* Documents: one leading card. Search/filter controls and table live inside its content inset. */
.office-project-documents-module-r033{
  display:block!important;
}
.office-project-documents-module-r033>.office-document-toolbar-r025{
  display:flex!important;
  padding:0!important;
  margin-bottom:14px!important;
}
.office-project-documents-module-r033>.office-document-quickfilters-r025{
  margin:0 0 16px!important;
}
.office-project-documents-module-r033>.office-document-filters-r025{
  margin:0 0 16px!important;
  border:1px solid var(--office-border)!important;
  border-radius:10px!important;
  background:var(--office-surface-soft)!important;
  box-shadow:none!important;
}
.office-project-documents-module-r033>.office-document-table-card-r025{
  margin:0!important;
}
.office-project-documents-module-r033>.office-document-legend-r025{
  margin-top:12px!important;
}

/* Termine: filters and all list/calendar content share a single leading card and a consistent table inset. */
.office-project-deadlines-module-r033{
  display:block!important;
}
.office-project-deadlines-module-r033>.office-deadline-toolbar-r025{
  display:flex!important;
  align-items:center!important;
  flex-wrap:wrap!important;
  gap:12px!important;
  margin-bottom:18px!important;
  padding:0!important;
}
.office-project-deadlines-module-r033>.office-deadline-group-r025{
  overflow:visible!important;
}
.office-project-deadlines-module-r033>.office-deadline-group-r025+.office-deadline-group-r025{
  margin-top:18px!important;
}
.office-project-deadlines-module-r033 .office-deadline-group-head-r025{
  padding:0 0 10px!important;
}
.office-project-deadlines-module-r033 .office-deadline-group-r025>.office-table-frame,
.office-project-deadlines-module-r033>.office-deadline-calendar-card-r025 .office-deadline-calendar-r025{
  border:1px solid var(--office-border)!important;
  border-radius:10px!important;
  overflow:hidden!important;
}
.office-project-deadlines-module-r033>.office-deadline-calendar-card-r025{
  padding:0!important;
}

/* Bauleitung: Bautagebuch, Aufgaben and Fotos now use the same leading card and heading/actions master. */
.office-construction-module-r033>.office-construction-section{
  min-width:0;
  margin:0!important;
  padding:0!important;
  border:0!important;
  border-radius:0!important;
  background:transparent!important;
  box-shadow:none!important;
}
.office-construction-module-r033 .office-construction-toolbar.office-project-module-toolbar-r033{
  display:flex!important;
  align-items:center!important;
  justify-content:flex-start!important;
  margin-bottom:18px!important;
}
.office-construction-module-r033 .office-construction-search{max-width:630px}
.office-construction-module-r033 .office-photo-day:first-of-type{margin-top:0!important}

/* Nachträge keep their KPI information but receive the same leading module card/title rhythm. */
.office-project-change-orders-r033>.office-change-order-summary-grid{margin-top:0!important;margin-bottom:18px!important}
.office-project-change-orders-r033>.office-change-order-list-panel{
  margin:0!important;
  border:1px solid var(--office-border)!important;
  border-radius:10px!important;
  overflow:hidden!important;
  background:var(--office-surface)!important;
}
.office-project-change-orders-r033 .office-change-order-toolbar{padding:12px!important}

/* Keep the module title/action hierarchy usable when the window narrows. */
@media(max-width:900px){
  .office-project-module-card-r033{padding:22px 20px!important}
  .office-project-module-heading-r033{gap:14px!important;flex-wrap:wrap!important}
  .office-project-module-heading-r033>.office-time-list-actions,
  .office-project-module-heading-r033>.office-inline-actions,
  .office-project-module-heading-r033>.office-page-heading-actions,
  .office-project-module-heading-r033>.office-document-toolbar-actions-r025{
    margin-left:0!important;
    width:100%;
    justify-content:flex-end;
    flex-wrap:wrap;
  }
}
@media(max-width:620px){
  .office-project-module-card-r033{padding:18px 14px!important}
  .office-project-module-heading-r033 h2{font-size:17px!important}
  .office-project-module-heading-r033 p{font-size:12.5px!important}
  .office-project-module-heading-r033>.office-time-list-actions,
  .office-project-module-heading-r033>.office-inline-actions,
  .office-project-module-heading-r033>.office-page-heading-actions,
  .office-project-module-heading-r033>.office-document-toolbar-actions-r025{
    justify-content:stretch;
  }
  .office-project-module-heading-r033>.office-time-list-actions>.office-button,
  .office-project-module-heading-r033>.office-inline-actions>.office-button,
  .office-project-module-heading-r033>.office-page-heading-actions>.office-button,
  .office-project-module-heading-r033>.office-document-toolbar-actions-r025>.office-button{
    flex:1 1 auto;
  }
}

/* Navigation has a CSS-native active fallback until the JS slider has measured the current tab.
   This prevents a blank active state during direct loads/enhanced-navigation rerenders. */
.office-project-tabs:not(.is-nav-ready-r033)>.office-project-tab.active{
  background:#f1f2f3!important;
  box-shadow:0 1px 4px rgba(17,24,39,.05)!important;
}
.office-local-tabs:not(.is-nav-ready-r033)>.office-local-tab.active,
.office-local-tabs:not(.is-nav-ready-r033)>button.office-local-tab.active{
  border-bottom-color:var(--office-primary)!important;
}

/* r033 Patch 28 – final shell/worktime/address-book/message polish. */

/* Shell separator: keep the structural edge, but make it visually subordinate to the context material. */
.office-topbar{
  border-bottom-color:color-mix(in srgb,var(--office-border) 48%,transparent)!important;
}

/* Worktime month disclosure: compact glyph, optically centred on the month label. */
.office-worktime-month-title{
  gap:10px!important;
  align-items:center!important;
}
.office-worktime-month-title>strong{
  line-height:1.25!important;
}
.office-worktime-month-chevron{
  width:12px!important;
  height:12px!important;
  flex:0 0 12px!important;
  align-self:center!important;
  transform-origin:50% 50%!important;
  transition:transform .18s ease!important;
}
.office-worktime-month-group.is-open .office-worktime-month-chevron{
  transform:rotate(90deg)!important;
}

/* Absence list: give the copy breathing room and keep the desktop year picker intentionally compact. */
.office-absence-overview-heading-r020{
  display:grid!important;
  grid-template-columns:minmax(0,1fr)!important;
  align-items:start!important;
  gap:14px!important;
  margin-bottom:16px!important;
}
.office-absence-year-filter-r019{
  width:154px!important;
  min-width:154px!important;
  max-width:154px!important;
  margin:0!important;
  justify-self:start!important;
  align-self:start!important;
}
.office-absence-year-filter-r019 .office-select,
.office-absence-year-filter-r019 select{
  width:100%!important;
}
@media(max-width:620px){
  .office-absence-overview-heading-r020{gap:12px!important}
  .office-absence-year-filter-r019{
    width:100%!important;
    min-width:0!important;
    max-width:none!important;
  }
}

/* Global address book: remove the legacy toolbar top-margin that doubled the card inset. */
.office-contacts-page .office-user-management-card{
  padding-top:18px!important;
}
.office-contacts-page .office-contacts-toolbar-r027{
  margin-top:0!important;
  margin-bottom:12px!important;
}

/* Notification centre: preserve floating row menus while restoring the card's rounded bottom frame. */
.office-message-center-heading{
  border-radius:calc(var(--office-radius-lg) - 1px) calc(var(--office-radius-lg) - 1px) 0 0;
}
.office-message-list{
  overflow:hidden;
  border-radius:0 0 calc(var(--office-radius-lg) - 1px) calc(var(--office-radius-lg) - 1px);
}
.office-message-item:last-child{
  border-bottom:0!important;
}


/* r033 Patch 29 – Office-UI harmonisation across project modules and settings. */

/* Honorar > Aufträge: match the tighter heading/table rhythm used by Angebote and Rechnungen. */
.office-project-contract-panel-r019.office-project-module-card-r033>.office-project-module-heading-r033{
  margin-bottom:14px!important;
}
.office-project-contract-panel-r019.office-project-module-card-r033>.office-contract-subsection-r019:first-of-type{
  margin-top:0!important;
}

/* Bauleitung module cards: standard 36 px card controls; keep detail-page header actions at the larger outside-card size. */
.office-construction-module-r033>.office-project-module-heading-r033 .office-button,
.office-construction-module-r033 .office-construction-toolbar .office-button{
  min-height:36px!important;
  height:36px!important;
  padding:6px 12px!important;
  border-radius:9px!important;
  font-size:13px!important;
}
.office-construction-module-r033>.office-project-module-heading-r033 .office-svg-icon,
.office-construction-module-r033 .office-construction-toolbar .office-svg-icon{
  width:14px!important;height:14px!important;
}
.office-construction-module-r033 .office-photo-grid-r019{
  grid-template-columns:repeat(auto-fill,minmax(210px,270px))!important;
  justify-content:start!important;
  align-items:start!important;
}
.office-construction-module-r033 .office-photo-card-r019{width:100%!important;max-width:270px!important;min-width:0!important;box-sizing:border-box!important}
.office-construction-module-r033 .office-photo-card-r019>*{min-width:0!important;max-width:100%;box-sizing:border-box}
.office-construction-module-r033 .office-photo-thumb-r019{
  min-width:0!important;max-width:100%!important;overflow:hidden!important;box-sizing:border-box!important;
}
.office-construction-module-r033 .office-photo-card-body-r019{
  min-width:0!important;max-width:100%!important;overflow:hidden!important;box-sizing:border-box!important;
}
.office-construction-module-r033 .office-photo-description{
  display:block!important;width:100%!important;min-width:0!important;max-width:100%!important;box-sizing:border-box!important;
  white-space:pre-wrap!important;overflow-wrap:anywhere!important;word-break:break-word!important;
}
.office-construction-module-r033 .office-photo-meta-r019{min-width:0!important;max-width:100%!important;overflow:hidden!important}
.office-construction-module-r033 .office-photo-meta-r019>span{min-width:0!important;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.office-construction-module-r033 .office-photo-card-actions-r019{min-width:0!important;max-width:100%!important;box-sizing:border-box!important}

/* Tagesbericht: remove surplus top whitespace, and scale list/select chevrons to the compact Office master. */
.office-diary-meta-r015{padding-top:16px!important;padding-bottom:16px!important}
.office-diary-meta-r015>.office-form-grid{gap:12px 14px!important}
.office-sort-chevron-pair-r032 .office-icon-button.is-dense{
  width:24px!important;height:24px!important;min-width:24px!important;min-height:24px!important;padding:5px!important;
}
.office-sort-chevron-pair-r032 .office-icon-button.is-dense .office-svg-icon{width:11px!important;height:11px!important}
.office-diary-company-add-r018 .office-select .office-svg-icon,
.office-diary-company-add-r018 .office-select-chevron,
.office-diary-company-add-r018 .office-combobox-chevron{width:12px!important;height:12px!important}
.office-diary-company-add-r018>.office-button{min-height:36px!important;height:36px!important}

/* AVA post-award subpages: use the same title/subtitle typography and card spacing as Honorar > Angebote. */
.office-procurement-workspace>.office-ava-process-panel{
  padding:26px 28px!important;
  border:1px solid var(--office-border)!important;
  border-radius:var(--office-radius-lg)!important;
  background:var(--office-surface)!important;
  box-shadow:none!important;
}
.office-procurement-workspace>.office-ava-process-panel>.office-panel-heading{
  display:flex!important;align-items:flex-start!important;justify-content:space-between!important;gap:18px!important;
  margin:0 0 20px!important;padding:0!important;border:0!important;
}
.office-procurement-workspace>.office-ava-process-panel>.office-panel-heading h2{
  margin:0 0 4px!important;font-size:18px!important;line-height:1.25!important;font-weight:700!important;color:var(--office-text)!important;
}
.office-procurement-workspace>.office-ava-process-panel>.office-panel-heading p{
  margin:0!important;font-size:13px!important;line-height:1.4!important;color:var(--office-text-muted)!important;
}
.office-procurement-workspace>.office-ava-process-panel>.office-panel-heading .office-button{min-height:36px!important}
@media(max-width:700px){.office-procurement-workspace>.office-ava-process-panel{padding:18px 14px!important}}

/* Settings master: one typography/spacing language for every section. */
.office-settings-page .office-settings-section-heading,
.office-settings-page .office-panel-heading{
  margin-bottom:16px!important;
}
.office-settings-page .office-settings-section-heading h2,
.office-settings-page .office-panel-heading h2,
.office-settings-page .office-panel-heading h3{
  margin-top:0!important;
}
.office-settings-page .office-settings-section-heading p,
.office-settings-page .office-panel-heading p{
  color:var(--office-text-muted)!important;
}
.office-settings-page .office-checkbox-field,
.office-settings-page .office-check-field,
.office-settings-page .office-checkbox-row{
  display:flex!important;align-items:center!important;column-gap:9px!important;
}
.office-settings-page .office-checkbox-field>input,
.office-settings-page .office-check-field>input,
.office-settings-page .office-checkbox-row>input{margin:0!important;flex:0 0 auto!important}
.office-settings-page .office-settings-stack+.office-settings-stack,
.office-settings-page .office-dashboard-panel+.office-dashboard-panel,
.office-settings-page .office-settings-card+.office-settings-card{margin-top:16px!important}
.office-settings-page .office-settings-section-heading+.office-table-frame,
.office-settings-page .office-panel-heading+.office-table-frame{margin-top:4px!important}

/* Personal settings. */
.office-personal-settings-card-r024 .office-settings-section-heading{margin-bottom:16px!important}
.office-quick-access-choice-r024{
  min-height:54px!important;padding:7px 10px!important;grid-template-columns:30px minmax(0,1fr) 18px!important;gap:8px!important;border-radius:10px!important;
}
.office-quick-access-choice-r024 .office-quick-icon .office-svg-icon{width:17px!important;height:17px!important}
.office-quick-access-check-r024 .office-svg-icon{width:13px!important;height:13px!important}
.office-hospitality-occasion-settings-r029>.office-settings-section-heading{margin-bottom:16px!important}
.office-hospitality-occasion-settings-r029>.office-button,
.office-hospitality-settings-r025>.office-button{margin-top:4px!important}

/* Angebote / HOAI. */
.office-offer-settings-r033>.office-settings-section-heading{margin-bottom:16px!important}
.office-offer-settings-r033 .office-table-frame input[type="text"],
.office-offer-settings-r033 .office-table-frame input[type="number"],
.office-offer-settings-r033 .office-table-frame .office-input{
  min-height:36px!important;height:36px!important;border:1px solid var(--office-border-strong)!important;border-radius:9px!important;background:var(--office-surface)!important;padding:6px 9px!important;box-shadow:none!important;
}
.office-offer-settings-r033 .office-settings-actions{margin-top:14px!important}

/* AVA settings – calm editor rows, compact sorting, consistent Office inputs and rounded tables. */
.office-ava-settings-r033 .office-award-settings-r025{gap:10px!important}
.office-ava-settings-r033 .office-award-setting-row-r025{
  display:grid!important;grid-template-columns:130px minmax(200px,.8fr) minmax(360px,1.8fr) 78px 36px!important;gap:10px!important;align-items:start!important;padding:10px!important;border:1px solid var(--office-border)!important;border-radius:10px!important;background:var(--office-surface)!important;
}
.office-ava-settings-r033 .office-award-setting-row-r025 input,
.office-ava-settings-r033 .office-award-setting-row-r025 textarea,
.office-ava-settings-r033 .office-award-setting-row-r025 .office-select{
  width:100%!important;min-height:36px!important;border-radius:9px!important;
}
.office-ava-settings-r033 .office-award-setting-row-r025 textarea{min-height:72px!important;resize:vertical!important}
.office-ava-settings-r033 .office-award-setting-row-r025 .office-check-field{min-height:36px!important;align-self:center!important}
.office-ava-units-settings-r033 .office-table-frame,
.office-ava-costgroups-settings-r033 .office-table-frame{border-radius:10px!important;overflow:hidden!important}
.office-ava-units-settings-r033 .office-table input,
.office-ava-costgroups-settings-r033 .office-table input{
  width:100%!important;min-height:34px!important;height:34px!important;border:1px solid var(--office-border-strong)!important;border-radius:8px!important;padding:5px 8px!important;background:var(--office-surface)!important;box-shadow:none!important;
}
.office-ava-units-settings-r033 .office-table th:nth-child(2),
.office-ava-units-settings-r033 .office-table td:nth-child(2){width:30%!important}
.office-ava-units-settings-r033 .office-table th:nth-child(4),
.office-ava-units-settings-r033 .office-table td:nth-child(4){width:110px!important}
.office-ava-units-settings-r033 .office-table th:nth-child(5),
.office-ava-units-settings-r033 .office-table td:nth-child(5){width:82px!important;text-align:center!important}
.office-ava-costgroups-settings-r033 .office-table th:nth-child(2),
.office-ava-costgroups-settings-r033 .office-table td:nth-child(2){width:34%!important}
.office-ava-costgroups-settings-r033 .office-table th:nth-child(4),
.office-ava-costgroups-settings-r033 .office-table td:nth-child(4){width:82px!important;text-align:center!important}
@media(max-width:1000px){.office-ava-settings-r033 .office-award-setting-row-r025{grid-template-columns:120px minmax(0,1fr);}.office-ava-settings-r033 .office-award-setting-row-r025>*:nth-child(3){grid-column:1/-1}.office-ava-settings-r033 .office-award-setting-row-r025>.office-check-field{grid-column:1}.office-ava-settings-r033 .office-award-setting-row-r025>.office-icon-button{grid-column:2;justify-self:end}}

/* Time / leave settings. */
.office-leave-settings-r033 .office-form-grid-two{row-gap:16px!important;column-gap:22px!important}
.office-month-close-settings-r033 .office-form-grid-two{row-gap:16px!important;column-gap:22px!important}
.office-month-close-settings-r033 .office-input-with-suffix{width:min(360px,100%)!important;grid-template-columns:120px auto!important}
.office-month-close-settings-r033 .office-input-with-suffix input{text-align:right!important}
.office-holiday-settings-r033 .office-holiday-sync-panel{display:grid!important;gap:14px!important;margin-bottom:18px!important}
.office-holiday-settings-r033 .office-holiday-create-grid{gap:16px!important;margin-top:4px!important}
.office-holiday-settings-r033>.office-settings-actions{margin-top:14px!important}
.office-workforce-assignment-r031 .office-workforce-assignment-input-r031{width:100%!important;min-height:36px!important;height:36px!important;border-radius:9px!important}
.office-workforce-assignment-r031 .office-table-frame{overflow:hidden!important;border-radius:10px!important}
.office-mileage-settings-r033 .office-form-grid{grid-template-columns:minmax(220px,320px)!important}
.office-mileage-settings-r033 .office-settings-actions{justify-content:flex-end!important}

/* System settings – missing rhythm and compact number+suffix controls. */
.office-system-information-r033>.office-settings-section-heading{margin-bottom:18px!important}
.office-administration-card-r030+.office-qc-admin-r025{margin-top:16px!important}
.office-retention-settings-r025 .office-input-with-suffix,
.office-settings-page .office-retention-policy-row .office-input-with-suffix{width:220px!important;grid-template-columns:110px auto!important}
.office-compliance-standard-grid{margin-top:16px!important}
.office-standards-compliance-r033 .office-form-grid .office-input-with-suffix{width:220px!important;grid-template-columns:110px auto!important}
.office-standards-compliance-r033+.office-standards-compliance-r033{margin-top:16px!important}
.office-standards-compliance-r033>.office-settings-section-heading+.office-table-frame{margin-top:10px!important}
.office-integration-settings-r025>.office-dashboard-panel+.office-dashboard-panel{margin-top:16px!important}
.office-notification-settings-r033 .office-settings-subsection{margin-top:18px!important}

/* Generic settings tables: keep headings away from frames, but avoid oversized empty bands. */
.office-settings-page .office-settings-subsection>h3+ p{margin-bottom:14px!important}
.office-settings-page .office-settings-section-heading+.office-compliance-standard-grid,
.office-settings-page .office-settings-section-heading+.office-system-info-grid-r025{margin-top:2px!important}

/* Patch 29 – remaining settings spacing/field polish. */
.office-settings-page .office-retention-years{display:inline-grid!important;grid-template-columns:96px auto!important;align-items:center!important;gap:8px!important;white-space:nowrap!important}
.office-settings-page .office-retention-years .office-input,
.office-settings-page .office-retention-years input{width:96px!important;min-width:96px!important;height:34px!important}
.office-settings-page .office-compliance-settings .office-settings-section-heading+.office-table-frame,
.office-settings-page .office-compliance-settings .office-settings-section-heading+.office-compliance-notice{margin-top:12px!important}
.office-settings-page .office-compliance-settings section+section{margin-top:16px!important}
.office-settings-page .office-compliance-settings .office-settings-section-heading{margin-bottom:14px!important}
.office-settings-page .office-backup-settings-r025 .office-settings-section-heading{margin-bottom:16px!important}
.office-settings-page .office-backup-settings-r025 .office-settings-line-r025+.office-table-frame{margin-top:14px!important}
.office-settings-page .office-backup-settings-r025>section+section{margin-top:16px!important}
.office-settings-page .office-integration-settings-r033>section+section,
.office-settings-page section.office-settings-stack+section.office-settings-stack{margin-top:16px!important}
.office-settings-page .office-compliance-options,
.office-settings-page .office-compliance-scope-grid{column-gap:18px!important;row-gap:10px!important}
.office-settings-page .office-compliance-options .office-check-field,
.office-settings-page .office-compliance-scope-grid .office-check-field{gap:9px!important}
.office-settings-page .office-system-info-grid-r025{margin-top:4px!important}
.office-settings-page .office-qc-admin-user-r025+.office-qc-admin-user-r025{margin-top:14px!important}
.office-settings-page .office-settings-note{margin-top:14px!important}

/* r033 Patch 30 – project overview redesign + final local polish. */

/* Personal hospitality templates: headline, description and CTA use a calm vertical rhythm. */
.office-hospitality-settings-r025>.office-settings-section-heading{
  display:block!important;
  margin-bottom:16px!important;
}
.office-hospitality-settings-r025>.office-settings-section-heading>div>p{
  margin:6px 0 0!important;
}
.office-hospitality-settings-r025>.office-settings-section-heading>.office-button{
  margin-top:14px!important;
}

/* Tagesbericht master: remove the remaining empty band above the title field. */
.office-diary-meta-r015{
  padding:10px 20px 16px!important;
}
@media(max-width:700px){
  .office-diary-meta-r015{padding:10px 14px 14px!important}
}

/* Honorar > Aufträge: no legacy grid gap in addition to the project-module heading margin. */
.office-project-contract-panel-r019.office-project-module-card-r033{
  gap:0!important;
}
.office-project-contract-panel-r019.office-project-module-card-r033>.office-project-module-heading-r033{
  margin-bottom:20px!important;
}
.office-project-contract-panel-r019.office-project-module-card-r033>.office-contract-list-r028{
  margin:0!important;
}

/* Project overview – a single calm stack of persistent disclosure cards. */
.office-project-overview-stack-r033{
  display:grid;
  gap:12px;
  min-width:0;
}
.office-project-overview-card-r033{
  min-width:0;
  padding:0!important;
  overflow:hidden;
  border:1px solid var(--office-border)!important;
  border-radius:12px!important;
  background:var(--office-surface)!important;
  box-shadow:none!important;
}
.office-project-overview-card-toggle-r033{
  width:100%;
  min-height:68px;
  padding:15px 18px;
  border:0;
  background:transparent;
  color:var(--office-text);
  font:inherit;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:18px;
  text-align:left;
  cursor:pointer;
}
.office-project-overview-card-toggle-r033:hover{
  background:color-mix(in srgb,var(--office-surface-soft) 62%,transparent);
}
.office-project-overview-card-toggle-r033>span:first-child{
  min-width:0;
  display:grid;
  gap:4px;
}
.office-project-overview-card-toggle-r033 strong{
  font-size:16px;
  line-height:1.25;
  font-weight:700;
  letter-spacing:-.01em;
}
.office-project-overview-card-toggle-r033 small{
  color:var(--office-text-muted);
  font-size:12.5px;
  line-height:1.35;
  font-weight:400;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
}
.office-project-overview-card-toggle-r033>.office-svg-icon,
.office-project-overview-toggle-meta-r033>.office-svg-icon{
  width:14px;
  height:14px;
  flex:0 0 14px;
  transition:transform .18s ease;
}
.office-project-overview-card-r033:not(.is-collapsed)>.office-project-overview-card-toggle-r033>.office-svg-icon,
.office-project-overview-card-r033:not(.is-collapsed)>.office-project-overview-card-toggle-r033>.office-project-overview-toggle-meta-r033>.office-svg-icon{
  transform:rotate(180deg);
}
.office-project-overview-toggle-meta-r033{
  flex:0 0 auto;
  display:flex!important;
  grid-template-columns:none!important;
  align-items:center;
  gap:10px!important;
  color:var(--office-text-secondary);
  font-size:12.5px;
  white-space:nowrap;
}
.office-project-overview-card-body-r033{
  padding:18px;
  border-top:1px solid color-mix(in srgb,var(--office-border) 72%,transparent);
}
.office-project-overview-data-layout-r033{
  display:grid;
  grid-template-columns:minmax(0,1fr) auto;
  gap:26px;
  align-items:start;
}
.office-project-overview-data-layout-r033 .office-project-summary-list-r020{
  margin:0!important;
}
.office-project-overview-logo-r033{
  width:160px;
  min-height:96px;
  display:grid;
  place-items:center;
  padding:8px;
  border:1px solid var(--office-border);
  border-radius:10px;
  background:var(--office-surface-soft);
}
.office-project-overview-logo-r033 img{
  display:block;
  max-width:100%;
  max-height:86px;
  object-fit:contain;
}
.office-project-overview-actions-r033{
  display:flex;
  align-items:center;
  flex-wrap:wrap;
  gap:8px;
}
.office-project-overview-actions-r033 .office-button{
  min-height:36px!important;
  height:36px!important;
  padding:6px 12px!important;
  border-radius:9px!important;
}
.office-project-overview-kpis-r033{
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:10px;
}
.office-project-overview-kpis-r033>div{
  min-width:0;
  padding:13px 14px;
  border:1px solid var(--office-border);
  border-radius:10px;
  background:color-mix(in srgb,var(--office-surface-soft) 72%,var(--office-surface));
  display:grid;
  gap:4px;
}
.office-project-overview-kpis-r033 span,
.office-project-overview-kpis-r033 small{
  color:var(--office-text-muted);
  font-size:12px;
}
.office-project-overview-kpis-r033 strong{
  font-size:18px;
  line-height:1.2;
  font-variant-numeric:tabular-nums;
}
.office-project-overview-finance-grid-r033{
  display:grid;
  grid-template-columns:minmax(0,1.45fr) minmax(280px,.55fr);
  gap:18px;
  margin-top:18px;
  padding-top:18px;
  border-top:1px solid var(--office-border);
}
.office-project-overview-finance-grid-r033>section{
  min-width:0;
}
.office-project-overview-finance-grid-r033 .office-project-analysis-head-r018{
  margin-bottom:14px;
}
.office-project-overview-finance-grid-r033 .office-project-analysis-head-r018 h3{
  margin:0;
  font-size:14px;
  line-height:1.3;
}
.office-project-overview-finance-grid-r033 .office-project-analysis-head-r018 p{
  margin:4px 0 0;
}
.office-project-overview-card-actions-r033{
  display:flex;
  justify-content:flex-end;
  margin-bottom:8px;
}
.office-project-overview-card-r033 .office-project-deadline-next-r025{
  margin-top:0;
}
.office-project-overview-card-r033 .office-project-history-meta-r018{
  margin-bottom:14px;
}
@media(max-width:1100px){
  .office-project-overview-kpis-r033{grid-template-columns:repeat(2,minmax(0,1fr))}
  .office-project-overview-finance-grid-r033{grid-template-columns:1fr}
}
@media(max-width:760px){
  .office-project-overview-card-toggle-r033{padding:13px 14px;min-height:62px}
  .office-project-overview-card-toggle-r033 small{white-space:normal}
  .office-project-overview-card-body-r033{padding:14px}
  .office-project-overview-data-layout-r033{grid-template-columns:1fr;gap:14px}
  .office-project-overview-logo-r033{width:100%;min-height:84px}
  .office-project-overview-kpis-r033{grid-template-columns:1fr}
  .office-project-overview-actions-r033{align-items:stretch}
  .office-project-overview-actions-r033 .office-button{flex:1 1 100%}
  .office-project-overview-toggle-meta-r033{font-size:0}
  .office-project-overview-toggle-meta-r033>.office-svg-icon{font-size:initial}
}


/* r033 patch 31 – project overview order, calmer project data and navigation return context. */
.office-project-overview-card-r033.is-project-r031{order:10}
.office-project-overview-card-r033.is-deadlines-r031{order:20}
.office-project-overview-card-r033.is-financials-r031{order:30}
.office-project-overview-card-r033.is-actions-r031{order:40}
.office-project-overview-card-r033.is-history-r031{order:50}
.office-project-overview-data-layout-r033{
  grid-template-columns:1fr!important;
  justify-items:start;
  gap:14px!important;
}
.office-project-overview-data-layout-r033 .office-project-summary-list-r020{
  width:min(100%,980px);
  grid-template-columns:1fr!important;
}
.office-project-overview-data-layout-r033 .office-project-summary-list-r020>div{
  grid-template-columns:minmax(190px,30%) minmax(0,1fr)!important;
  gap:18px!important;
  padding:10px 0!important;
  border-bottom-color:color-mix(in srgb,var(--office-border) 34%,transparent)!important;
}
.office-project-overview-data-layout-r033 .office-project-summary-list-r020>div:last-child{border-bottom-color:transparent!important}
.office-project-overview-logo-r033{
  order:-1;
  justify-self:start;
  width:176px;
  min-height:108px;
  background:#fff!important;
  border-color:color-mix(in srgb,var(--office-border) 72%,transparent)!important;
}
.office-project-overview-logo-r033 img{max-height:94px}
.office-project-overview-actions-r033{justify-content:flex-start}
.office-project-overview-card-r033 .office-project-history-meta-r018{
  grid-template-columns:1fr!important;
  width:min(100%,720px);
  gap:0!important;
}
.office-project-overview-card-r033 .office-project-history-meta-r018>div{
  display:grid;
  grid-template-columns:minmax(170px,30%) minmax(0,1fr);
  justify-content:start;
  gap:18px;
  border-bottom-color:color-mix(in srgb,var(--office-border) 34%,transparent);
}
.office-project-overview-card-r033 .office-project-history-meta-r018>div:last-child{border-bottom-color:transparent}
@media(max-width:760px){
  .office-project-overview-data-layout-r033 .office-project-summary-list-r020>div,
  .office-project-overview-card-r033 .office-project-history-meta-r018>div{grid-template-columns:1fr!important;gap:4px!important}
  .office-project-overview-logo-r033{width:150px;min-height:94px}
}

/* r033 patch 32 – global list masters and project overview balance. */
/* Project data: restore the calm two-column master from the project cockpit while keeping the softer separators. */
.office-project-overview-data-layout-r033{
  grid-template-columns:minmax(0,1fr) auto!important;
  justify-items:stretch!important;
  gap:26px!important;
}
.office-project-overview-data-layout-r033 .office-project-summary-list-r020{
  width:100%!important;
  grid-template-columns:repeat(2,minmax(0,1fr))!important;
  column-gap:26px!important;
  row-gap:0!important;
}
.office-project-overview-data-layout-r033 .office-project-summary-list-r020>div{
  grid-template-columns:minmax(150px,42%) minmax(0,1fr)!important;
  gap:12px!important;
  padding:9px 0!important;
  border-bottom-color:color-mix(in srgb,var(--office-border) 24%,transparent)!important;
}
.office-project-overview-data-layout-r033 .office-project-summary-list-r020>div:nth-last-child(-n+2){border-bottom-color:transparent!important}
.office-project-overview-logo-r033{
  order:initial!important;
  justify-self:end!important;
  align-self:start!important;
  width:176px;
  min-height:108px;
  background:#fff!important;
}

/* Finance master: KPI column left, analyses right. */
.office-project-overview-finance-master-r032{
  display:grid;
  grid-template-columns:minmax(220px,280px) minmax(0,1fr);
  gap:24px;
  align-items:start;
}
.office-project-overview-finance-master-r032>.office-project-overview-kpis-r033{
  grid-template-columns:1fr!important;
  gap:9px!important;
}
.office-project-overview-finance-master-r032>.office-project-overview-finance-grid-r033{
  margin-top:0!important;
  padding-top:0!important;
  border-top:0!important;
  grid-template-columns:minmax(0,1fr) minmax(250px,.72fr);
  gap:22px;
}
.office-project-overview-finance-master-r032 .office-project-bars-r018>div>div{
  width:50%;
  max-width:50%;
  justify-self:start;
}

/* Project history uses one consistent lifecycle row for created, modified and real audit entries. */
.office-project-history-list-r032{
  width:min(100%,760px);
  display:grid;
  gap:0;
}
.office-project-history-list-r032 .office-status-history-item{
  min-height:42px;
  padding:8px 0;
  border-bottom:1px solid color-mix(in srgb,var(--office-border) 28%,transparent);
}
.office-project-history-list-r032 .office-status-history-item:last-child{border-bottom:0}

/* Invoice list follows the offer-list card rhythm exactly. */
.office-invoice-list-card{
  padding-top:18px!important;
}
.office-invoice-list-card>.office-invoice-list-toolbar-r025{
  padding:0 0 14px!important;
  margin:0!important;
  min-height:0!important;
}
.office-invoice-list-card>.office-invoice-table-frame{
  margin-top:0!important;
  box-shadow:none!important;
}

/* Global BOQ list: same hierarchy as offers/invoices – tabs, one leading card, compact toolbar, framed table. */
.office-specifications-status-tabs-r032{margin-bottom:18px}
.office-specifications-list-card-r032{
  padding:18px!important;
  overflow:visible;
}
.office-specifications-list-toolbar-r032{
  margin:0!important;
  padding:0 0 14px!important;
  min-height:0!important;
}
.office-specifications-list-toolbar-r032 .office-table-toolbar-primary{flex:1 1 420px;min-width:260px}
.office-specifications-list-toolbar-r032 .office-table-search-control{width:min(100%,520px)}
.office-specifications-list-card-r032 .office-specifications-table-frame-r025{
  margin:0!important;
  box-shadow:none!important;
  border-radius:10px!important;
}
.office-specifications-empty-r032{padding:18px 0 4px}

@media(max-width:1180px){
  .office-project-overview-finance-master-r032{grid-template-columns:1fr}
  .office-project-overview-finance-master-r032>.office-project-overview-kpis-r033{grid-template-columns:repeat(2,minmax(0,1fr))!important}
}
@media(max-width:900px){
  .office-project-overview-data-layout-r033{grid-template-columns:1fr!important;gap:14px!important}
  .office-project-overview-data-layout-r033 .office-project-summary-list-r020{grid-template-columns:1fr!important}
  .office-project-overview-logo-r033{order:-1!important;justify-self:start!important}
  .office-project-overview-finance-master-r032>.office-project-overview-finance-grid-r033{grid-template-columns:1fr}
  .office-project-overview-finance-master-r032 .office-project-bars-r018>div>div{width:100%;max-width:none}
}
@media(max-width:700px){
  .office-project-overview-finance-master-r032>.office-project-overview-kpis-r033{grid-template-columns:1fr!important}
  .office-specifications-list-card-r032{padding:14px!important}
}

/* r033 patch 33 – dashboard module preferences, list polish and local settings corrections. */
/* Global LV list: no extra toolbar separator, search icon stays inside a useful desktop-width field. */
.office-specifications-list-toolbar-r032{
  border-bottom:0!important;
}
.office-specifications-list-toolbar-r032 .office-table-toolbar-primary{
  flex:1 1 auto!important;
  min-width:0!important;
}
.office-specifications-list-toolbar-r032 .office-table-search-control{
  width:min(100%,680px)!important;
  max-width:680px!important;
  flex:1 1 520px!important;
}
.office-specifications-list-toolbar-r032 .office-table-search-control .office-table-search{
  width:100%!important;
  max-width:none!important;
}

/* Settings index only: grid cards must all start on the same row baseline. */
.office-settings-page .office-settings-group .office-settings-grid>.office-settings-card{
  margin-top:0!important;
}

/* Dashboard module settings. */
.office-dashboard-module-settings-r033{display:grid;gap:16px}
.office-dashboard-module-settings-r033>.office-settings-section-heading{margin-bottom:0!important}
.office-settings-check-stack-r033{display:grid;gap:12px}
.office-settings-card-actions-r033{display:flex;justify-content:flex-end;align-items:center;gap:8px}

/* Dashboard project cards: compact per-project module shortcuts, hidden by default via preference. */
.office-project-module-buttons-r033{display:inline-flex;align-items:center;gap:5px;flex:0 0 auto}
.office-project-module-button-r033{
  width:34px;min-width:34px;height:34px;min-height:34px;padding:0;
  border:1px solid var(--office-border);border-radius:8px;
  display:inline-grid;place-items:center;background:var(--office-surface);color:var(--office-text-secondary);
  text-decoration:none;box-shadow:none;transition:background-color .15s ease,border-color .15s ease,color .15s ease;
}
.office-project-module-button-r033:hover{background:var(--office-hover);border-color:var(--office-border-strong);color:var(--office-text)}
.office-project-module-button-r033>.office-svg-icon{width:13px;height:13px}
.office-project-module-button-r033.is-disabled-r027{opacity:.42;pointer-events:auto;cursor:default;background:var(--office-surface-soft)}
.office-project-card.is-reduced-r027 .office-project-module-buttons-r033{margin-left:auto}
@media(max-width:760px){
  .office-project-module-button-r033{width:32px;min-width:32px;height:32px;min-height:32px}
}

/* Project history mirrors the offer status-history grammar exactly. */
.office-project-history-r033{display:grid;gap:10px;width:min(100%,920px)}
.office-project-history-r033 .office-status-history-item{min-height:32px;padding:0;border:0}

/* Offer master data card: first label sits on the same vertical inset as other Office cards. */
.office-offer-head-r016{padding-top:16px!important}

/* r033 patch 34 – final dashboard/LV/time polish. */
/* Dashboard bookmark: keep the pinned icon visible on the pale-blue hover state despite older !important card rules. */
.office-project-actions-row .office-pin-button.is-pinned,
.office-project-actions-row .office-pin-button[aria-pressed="true"],
.office-offer-actions-row .office-pin-button.is-pinned,
.office-offer-actions-row .office-pin-button[aria-pressed="true"]{
  color:var(--office-primary)!important;
  border-color:#b9c9d9!important;
  background:#f2f7fb!important;
}
.office-project-actions-row .office-pin-button.is-pinned:hover,
.office-project-actions-row .office-pin-button[aria-pressed="true"]:hover,
.office-offer-actions-row .office-pin-button.is-pinned:hover,
.office-offer-actions-row .office-pin-button[aria-pressed="true"]:hover{
  color:var(--office-primary)!important;
  border-color:#aebfd0!important;
  background:#eaf2f9!important;
}

/* Global LV table: compact labels, stable action column and no wrapped priced-LV header. */
.office-specifications-page .office-specifications-table-frame-r025 th.is-boq-priced,
.office-specifications-page .office-specifications-table-frame-r025 th.is-boq-priced *{white-space:nowrap!important}
.office-specifications-page .office-specifications-table-frame-r025 th:nth-child(1){width:126px!important}
.office-specifications-page .office-specifications-table-frame-r025 th:nth-child(3){width:122px!important}
.office-specifications-page .office-specifications-table-frame-r025 th:nth-child(9){width:132px!important}
.office-specifications-page .office-specifications-table-frame-r025 th:nth-child(11),
.office-specifications-page .office-specifications-table-frame-r025 td:nth-child(11){width:86px!important;min-width:86px!important;white-space:nowrap!important}

/* Dashboard attendance clock: check-in time + stamp icon | live time + clock icon. */
.office-dashboard-time-clock.has-check-in-time{min-width:236px!important}
.office-dashboard-time-clock-pair-r034{
  display:grid;
  grid-template-columns:max-content 14px 1px max-content 14px;
  align-items:center;
  justify-content:end;
  column-gap:8px;
  min-width:214px;
  font-variant-numeric:tabular-nums;
}
.office-dashboard-time-clock-pair-r034 .office-time-clock-check-in,
.office-dashboard-time-clock-pair-r034 .office-time-clock-live{justify-self:auto!important}
.office-dashboard-time-clock-pair-r034 .office-time-clock-divider{margin-inline:2px}
.office-dashboard-clock-stamp-icon-r034,
.office-dashboard-clock-live-icon-r034,
.office-dashboard-clock-single-icon-r034{width:14px!important;height:14px!important;opacity:.68;flex:0 0 14px}
.office-dashboard-clock-stamp-icon-r034{color:#929292}
.office-dashboard-time-clock:not(.has-check-in-time){display:inline-flex;align-items:center;gap:8px}
@media(max-width:760px){
  .office-dashboard-time-clock.has-check-in-time{min-width:214px!important}
  .office-dashboard-time-clock-pair-r034{min-width:194px;column-gap:6px}
}


/* r033 patch 35 – final dashboard/worktime rhythm and clock alignment. */
/* Dashboard greeting shows only the localized date; the live time remains in the attendance card. */
.office-dashboard-date-line{gap:0!important}

/* Dashboard vertical rhythm: top row -> projects uses the same 18px grid gap as projects -> offers. */
.office-dashboard .office-primary-collection{margin-top:0!important}

/* Dashboard attendance: slightly larger icons and a touch more breathing room around the divider. */
.office-dashboard-time-clock.has-check-in-time{min-width:244px!important}
.office-dashboard-time-clock-pair-r034{
  grid-template-columns:max-content 16px 1px max-content 16px!important;
  column-gap:9px!important;
  min-width:222px!important;
}
.office-dashboard-time-clock-pair-r034 .office-time-clock-divider{margin-inline:4px!important}
.office-dashboard-clock-stamp-icon-r034,
.office-dashboard-clock-live-icon-r034,
.office-dashboard-clock-single-icon-r034{width:16px!important;height:16px!important;flex-basis:16px!important}
@media(max-width:760px){
  .office-dashboard-time-clock.has-check-in-time{min-width:222px!important}
  .office-dashboard-time-clock-pair-r034{min-width:204px!important;column-gap:7px!important}
}

/* Full time-tracking page: live clock first, then check-in time; both use explicit icons. */
.office-worktime-live-clock{justify-content:flex-start!important;gap:8px!important}
.office-worktime-live-clock.has-check-in-time{min-width:286px!important}
.office-worktime-time-clock-pair-r035{
  display:grid;
  grid-template-columns:18px max-content 1px 18px max-content;
  align-items:center;
  justify-content:start;
  column-gap:10px;
  min-width:270px;
  font-variant-numeric:tabular-nums;
}
.office-worktime-time-clock-pair-r035 .office-time-clock-live,
.office-worktime-time-clock-pair-r035 .office-time-clock-check-in{justify-self:start!important}
.office-worktime-time-clock-pair-r035 .office-time-clock-divider{margin-inline:5px!important}
.office-worktime-clock-live-icon-r035,
.office-worktime-clock-stamp-icon-r035,
.office-worktime-clock-single-icon-r035{width:18px!important;height:18px!important;opacity:.68;flex:0 0 18px}
.office-worktime-clock-stamp-icon-r035{color:#929292}
@media(max-width:700px){
  .office-worktime-live-clock.has-check-in-time{min-width:254px!important}
  .office-worktime-time-clock-pair-r035{min-width:240px;grid-template-columns:17px max-content 1px 17px max-content;column-gap:8px}
  .office-worktime-clock-live-icon-r035,.office-worktime-clock-stamp-icon-r035{width:17px!important;height:17px!important}
}
.office-worktime-live-clock.is-check-in-transition .office-worktime-time-clock-pair-r035 .office-time-clock-check-in{animation:office-r033-check-in-clock-reveal 360ms ease 180ms both!important}


/* r033 patch 36 – attendance status clarity and clock rhythm. */
/* The live weekly overtime delta is intentionally not shown in the compact summary; exact balances remain in timesheet/overtime views. */
.office-worktime-summary-r019-final{grid-template-columns:minmax(260px,1.45fr) repeat(4,minmax(0,1fr))!important}
.office-worktime-summary-r019-final>div:first-child{min-width:260px}
.office-worktime-summary-r019-final>div:first-child strong{white-space:normal!important;line-height:1.3}
@media(max-width:1100px){
  .office-worktime-summary-r019-final{grid-template-columns:repeat(2,minmax(0,1fr))!important}
  .office-worktime-summary-r019-final>div:first-child{grid-column:1/-1;min-width:0}
}
@media(max-width:680px){
  .office-worktime-summary-r019-final{grid-template-columns:1fr!important}
  .office-worktime-summary-r019-final>div:first-child{grid-column:auto}
}

/* Full time page: center the divider visually between the live time and the check-in icon. */
.office-worktime-time-clock-pair-r035{column-gap:11px!important}
.office-worktime-time-clock-pair-r035 .office-time-clock-divider{margin-inline:0!important;transform:translateX(-4px)}

/* Dashboard: a little more air around the divider and vertical alignment with the card title. */
.office-dashboard-time-clock-pair-r034{align-items:center!important}
.office-dashboard-time-clock-pair-r034 .office-time-clock-divider{transform:translateX(-2px);margin-inline:5px!important}
.office-time-panel .office-dashboard-time-clock{align-self:center!important;transform:translateY(1px)}

/* r034 patch 01 – dashboard check-in transition without overlapping clock digits. */
.office-dashboard-time-clock{
  transition:min-width 280ms cubic-bezier(.22,.82,.24,1),color .18s ease,background .18s ease,border-color .18s ease!important;
}
.office-dashboard-time-clock-pair-r034{overflow:hidden}
.office-dashboard-time-clock.is-check-in-transition .office-time-clock-check-in,
.office-dashboard-time-clock.is-check-in-transition .office-dashboard-clock-stamp-icon-r034{
  animation:office-r034-dashboard-check-in-reveal 260ms cubic-bezier(.2,.82,.24,1) 80ms both!important;
}
.office-dashboard-time-clock.is-check-in-transition .office-time-clock-divider,
.office-dashboard-time-clock.is-check-in-transition .office-time-clock-live,
.office-dashboard-time-clock.is-check-in-transition .office-dashboard-clock-live-icon-r034{
  animation:office-r034-dashboard-live-reveal 260ms ease 150ms both!important;
}
@keyframes office-r034-dashboard-check-in-reveal{
  from{opacity:0;transform:translateX(10px)}
  to{opacity:1;transform:translateX(0)}
}
@keyframes office-r034-dashboard-live-reveal{
  from{opacity:0}
  to{opacity:1}
}
@media(prefers-reduced-motion:reduce){
  .office-dashboard-time-clock.is-check-in-transition .office-time-clock-check-in,
  .office-dashboard-time-clock.is-check-in-transition .office-dashboard-clock-stamp-icon-r034,
  .office-dashboard-time-clock.is-check-in-transition .office-time-clock-divider,
  .office-dashboard-time-clock.is-check-in-transition .office-time-clock-live,
  .office-dashboard-time-clock.is-check-in-transition .office-dashboard-clock-live-icon-r034{animation-duration:1ms!important;animation-delay:0ms!important}
}

/* r034 patch 03A – construction diary company/trade controls. */
.office-diary-company-add-r018{border-top:0!important;padding-top:0!important}
.office-diary-chevron-up-r034{transform:rotate(180deg)}
.office-diary-trade-picker-r034{position:relative;width:100%}
.office-diary-trade-picker-r034>.office-combobox-trigger{width:100%;min-height:36px;height:36px;border-radius:var(--office-radius-md);justify-content:space-between}
.office-diary-trade-popover-r034{left:0;right:0;min-width:100%;z-index:80;max-height:min(360px,45vh);overflow:auto}
.office-diary-trade-popover-r034 .office-combobox-options{max-height:290px;overflow:auto}

/* r034 Patch 03B – Arbeitszeitmodell / Mitarbeiterzuordnung im Office-UI-Master */
.office-worktime-model-masterfields-r034 .office-input,
.office-worktime-model-masterfields-r034 .office-number-input-master,
.office-worktime-model-masterfields-r034 .office-number-input-master>input{width:100%;min-width:0;box-sizing:border-box}
.office-worktime-model-masterfields-r034 .office-number-input-master>input{height:40px;min-height:40px;border:1px solid var(--office-border-strong);border-radius:10px;background:var(--office-surface);padding:0 42px 0 11px;font:inherit}
.office-worktime-model-masterfields-r034 .office-number-input-master{position:relative}
.office-worktime-model-masterfields-r034 .office-number-input-suffix{position:absolute;right:11px;top:50%;transform:translateY(-50%);color:var(--office-text-muted);font-size:13px;pointer-events:none}
.office-worktime-break-help-r034{margin:-2px 0 4px!important;line-height:1.4}
.office-worktime-day-grid-r034{display:grid;gap:7px}
.office-worktime-model-dialog-shell-r030 .office-worktime-day-grid-r034 .office-worktime-day-row-r029{align-items:center!important}
.office-worktime-model-dialog-shell-r030 .office-worktime-day-grid-r034 .office-worktime-day-row-r029>.office-number-input-master{position:relative;min-width:0}
.office-worktime-model-dialog-shell-r030 .office-worktime-day-grid-r034 .office-number-input-master>input{width:100%;height:36px;min-height:36px;padding-right:30px}
.office-worktime-model-dialog-shell-r030 .office-worktime-day-grid-r034 .office-number-input-suffix{position:absolute;right:8px;top:50%;transform:translateY(-50%);color:var(--office-text-muted);font-size:12px;pointer-events:none}
.office-worktime-day-check-r034{display:flex;align-items:center;justify-content:center;min-height:36px;margin:0!important}
.office-worktime-day-check-r034 input[type="checkbox"]{margin:0!important}
.office-worktime-model-time-r034{width:100%;min-width:0}
.office-worktime-model-time-r034 .office-time-input-control-r033{height:36px!important;min-height:36px!important;padding-right:32px!important}
.office-worktime-location-r034{width:100%;min-width:0}
.office-worktime-location-r034 .office-select-trigger{width:100%;height:36px;min-height:36px;padding:0 9px 0 10px;border-radius:8px}
.office-worktime-location-r034 .office-combobox-chevron{width:13px!important;height:13px!important;min-width:13px!important}
.office-worktime-vacation-value-r029>.office-check-field{align-self:center;min-height:40px;display:flex;align-items:center;gap:9px;margin:0}
.office-worktime-vacation-value-r029>.office-check-field input[type="checkbox"]{margin:0!important;flex:0 0 auto}
@media(min-width:901px){
  .office-worktime-model-dialog-shell-r030{width:min(1180px,calc(100vw - 36px))!important}
  .office-worktime-model-dialog-shell-r030 .office-worktime-day-grid-r034 .office-worktime-day-row-r029{grid-template-columns:46px 64px 104px 126px 126px minmax(170px,1fr) 92px!important;gap:9px!important}
}
@media(max-width:900px){
  .office-worktime-model-dialog-shell-r030 .office-worktime-day-grid-r034 .office-worktime-day-row-r029{grid-template-columns:52px 72px minmax(100px,1fr) minmax(100px,1fr)!important}
  .office-worktime-model-dialog-shell-r030 .office-worktime-day-grid-r034 .office-worktime-day-row-r029>.office-worktime-location-r034{grid-column:1/-1}
  .office-worktime-model-dialog-shell-r030 .office-worktime-day-grid-r034 .office-worktime-day-check-r034.is-no-break{grid-column:auto}
}
.office-workforce-assignment-table-r034 table{table-layout:fixed;width:100%}
.office-workforce-assignment-table-r034 th:nth-child(1),.office-workforce-assignment-table-r034 td:nth-child(1){width:180px}
.office-workforce-assignment-table-r034 th:nth-child(2),.office-workforce-assignment-table-r034 td:nth-child(2){width:300px}
.office-workforce-assignment-table-r034 th:nth-child(3),.office-workforce-assignment-table-r034 td:nth-child(3){width:160px}
.office-workforce-assignment-table-r034 th:nth-child(4),.office-workforce-assignment-table-r034 td:nth-child(4){width:auto}
.office-workforce-assignment-table-r034 th:last-child,.office-workforce-assignment-table-r034 td:last-child{width:116px}
.office-workforce-assignment-table-r034 td{vertical-align:middle!important;padding-top:8px!important;padding-bottom:8px!important}
.office-workforce-assignment-table-r034 .office-select-master{width:100%;min-width:0}
.office-workforce-assignment-table-r034 .office-select-trigger{width:100%;height:36px;min-height:36px;border-radius:8px;padding:0 9px 0 10px}
.office-workforce-assignment-table-r034 .office-select-trigger .office-combobox-chevron{width:13px!important;height:13px!important;min-width:13px!important}
.office-workforce-assignment-table-r034 .office-number-input-master{width:100%;min-width:0}
.office-workforce-assignment-table-r034 .office-number-input-master>input.office-workforce-assignment-input-r031{width:100%!important;height:36px!important;min-height:36px!important;padding:0 10px!important;text-align:right;border-radius:8px!important}
@media(max-width:900px){.office-workforce-assignment-table-r034 table{min-width:820px}}

/* r034 Patch 03B – revisionssichere Bautagesberichte */
.office-diary-title-status-r034{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.office-diary-title-status-r034 h1{margin:0}.office-diary-revision-r034{display:inline-flex;align-items:center;justify-content:center;min-width:34px;height:24px;padding:0 9px;border:1px solid var(--office-border,#d9dee5);border-radius:999px;background:var(--office-surface-subtle,#f7f8fa);font-size:12px;font-weight:700;color:var(--office-text-muted,#6f747a)}
.office-diary-workspace-r015.is-completed-r034 .office-construction-meta-card,.office-diary-workspace-r015.is-completed-r034 .office-construction-detail-grid{pointer-events:none}.office-diary-workspace-r015.is-completed-r034 .office-construction-meta-card input,.office-diary-workspace-r015.is-completed-r034 .office-construction-meta-card textarea,.office-diary-workspace-r015.is-completed-r034 .office-construction-meta-card button,.office-diary-workspace-r015.is-completed-r034 .office-construction-detail-grid input,.office-diary-workspace-r015.is-completed-r034 .office-construction-detail-grid textarea,.office-diary-workspace-r015.is-completed-r034 .office-construction-detail-grid button{background-color:var(--office-surface-subtle,#f7f8fa)}

/* r034 Patch 03B.2 – Bautagesbericht / Zeiterfassungs-Einstellungen / Arbeitszeitmodell polish */
.office-diary-pdf-link-r034{display:inline-flex;align-items:center;gap:5px;height:24px;padding:0 8px;border-radius:999px;color:var(--office-text-muted);font-size:12px;font-weight:600;text-decoration:none}
.office-diary-pdf-link-r034:hover{background:var(--office-surface-hover,#f3f5f7);color:var(--office-text)}
.office-diary-pdf-link-r034 .office-svg-icon{width:13px;height:13px}

/* Arbeitszeitmodell: konsequent der Office-Control-Master statt Browser-UI. */
.office-worktime-model-dialog-shell-r030 .office-worktime-model-masterfields-r034{gap:14px!important}
.office-worktime-model-dialog-shell-r030 .office-worktime-model-masterfields-r034 .office-field{min-width:0}
.office-worktime-model-dialog-shell-r030 .office-worktime-model-masterfields-r034 .office-input,
.office-worktime-model-dialog-shell-r030 .office-worktime-model-masterfields-r034 .office-number-input-master>input{height:40px!important;min-height:40px!important;border:1px solid var(--office-border-strong)!important;border-radius:10px!important;background:var(--office-surface)!important;box-shadow:none!important}
.office-worktime-model-dialog-shell-r030 .office-worktime-model-time-r034{position:relative;display:block}
.office-worktime-model-dialog-shell-r030 .office-worktime-model-time-r034 .office-time-input-control-r033{width:100%!important;height:36px!important;min-height:36px!important;padding:0 34px 0 10px!important;border:1px solid var(--office-border-strong)!important;border-radius:8px!important;background:var(--office-surface)!important;color:var(--office-text)!important;font:inherit!important;box-shadow:none!important;appearance:none!important;-webkit-appearance:none!important}
.office-worktime-model-dialog-shell-r030 .office-worktime-model-time-r034 .office-time-input-control-r033::-webkit-calendar-picker-indicator{display:none!important;opacity:0!important;width:0!important;height:0!important;margin:0!important;padding:0!important}
.office-worktime-model-dialog-shell-r030 .office-worktime-model-time-r034 .office-time-input-icon-r033{right:10px!important;width:15px!important;height:15px!important;pointer-events:none}
.office-worktime-model-dialog-shell-r030 .office-worktime-day-check-r034{height:36px!important;min-height:36px!important;display:grid!important;place-items:center!important;margin:0!important;padding:0!important}
.office-worktime-model-dialog-shell-r030 .office-worktime-day-check-r034>input{margin:0!important}
.office-worktime-model-dialog-shell-r030 .office-worktime-location-r034{width:220px!important;max-width:100%}
.office-worktime-model-dialog-shell-r030 .office-worktime-location-r034 .office-select-trigger{height:36px!important;min-height:36px!important;border-radius:8px!important;padding:0 30px 0 10px!important}
.office-worktime-model-dialog-shell-r030 .office-worktime-location-r034 .office-combobox-chevron{right:9px!important;width:12px!important;height:12px!important;min-width:12px!important}
.office-worktime-model-dialog-shell-r030 .office-worktime-vacation-value-r029{grid-template-columns:minmax(210px,1fr) minmax(280px,1.1fr) minmax(180px,.75fr)!important;align-items:center!important}
.office-worktime-model-dialog-shell-r030 .office-worktime-vacation-value-r029>.office-check-field{min-height:40px!important;display:flex!important;align-items:center!important;gap:9px!important;margin:0!important}
.office-worktime-model-dialog-shell-r030 .office-worktime-vacation-value-r029>.office-check-field>input{margin:0!important;flex:0 0 auto}
@media(min-width:901px){
  .office-worktime-model-dialog-shell-r030{width:min(1080px,calc(100vw - 36px))!important}
  .office-worktime-model-dialog-shell-r030 .office-worktime-day-grid-r034 .office-worktime-day-row-r029{grid-template-columns:42px 58px 98px 112px 112px 220px 82px!important;gap:8px!important;justify-content:space-between}
}
@media(max-width:900px){
  .office-worktime-model-dialog-shell-r030 .office-worktime-location-r034{width:100%!important}
  .office-worktime-model-dialog-shell-r030 .office-worktime-vacation-value-r029{grid-template-columns:1fr!important}
}

/* Zeiterfassungs-Einstellungen: kompakte, verständliche Karten statt großer Leerflächen. */
.office-workforce-card-r034{gap:14px!important;padding:22px 24px!important}
.office-workforce-card-r034>.office-settings-section-heading{margin:0!important}
.office-workforce-card-r034>.office-settings-actions{margin-top:0!important;padding-top:2px}
.office-workforce-settings-grid-r034{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(320px,.9fr);gap:14px;align-items:start}
.office-setting-options-r034{display:grid;gap:8px}
.office-setting-toggle-row-r034{display:grid!important;grid-template-columns:20px minmax(0,1fr);gap:10px;align-items:start;min-height:0!important;margin:0!important;padding:11px 12px;border:1px solid var(--office-border);border-radius:10px;background:var(--office-surface-soft,#f7f8f9)}
.office-setting-toggle-row-r034>input{margin:2px 0 0!important}
.office-setting-toggle-row-r034>span{display:grid;gap:2px;min-width:0;line-height:1.28}
.office-setting-toggle-row-r034 strong{font-size:14px;font-weight:600;color:var(--office-text)}
.office-setting-toggle-row-r034 small{font-size:12px;font-weight:400;color:var(--office-text-muted);line-height:1.35}
.office-setting-toggle-row-r034.is-wide{max-width:900px}
.office-setting-fields-card-r034{display:grid;gap:12px;padding:12px;border:1px solid var(--office-border);border-radius:10px;background:var(--office-surface-soft,#f7f8f9)}
.office-setting-fields-card-r034 .office-field{margin:0}
.office-month-close-grid-r034{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:10px 14px;align-items:start}
.office-month-close-day-r034{grid-column:1/-1;width:max-content;max-width:100%;margin-top:2px}
.office-month-close-day-control-r034{display:grid;grid-template-columns:74px auto;align-items:center;gap:8px}
.office-month-close-day-control-r034 .office-number-input-master{width:74px;position:relative}
.office-month-close-day-control-r034 .office-number-input-master>input{width:74px;height:36px;min-height:36px;text-align:center;padding:0 9px;border-radius:8px}
.office-month-close-day-control-r034>span{color:var(--office-text-muted);font-size:13px;white-space:nowrap}
.office-holiday-layout-r034{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.2fr);gap:12px}
.office-settings-inner-card-r034{display:grid;gap:12px;padding:14px;border:1px solid var(--office-border);border-radius:10px;background:var(--office-surface-soft,#f7f8f9)}
.office-settings-inner-heading-r034 h3{margin:0 0 3px;font-size:15px}
.office-settings-inner-heading-r034 p{margin:0;color:var(--office-text-muted);font-size:12px}
.office-holiday-sync-controls-r034{display:grid;grid-template-columns:110px 110px minmax(220px,1fr);gap:10px;align-items:end}
.office-holiday-sync-controls-r034 .office-field,.office-holiday-create-grid-r034 .office-field{margin:0;min-width:0}
.office-holiday-sync-controls-r034 .office-button{justify-self:end;white-space:nowrap}
.office-holiday-create-grid-r034{display:grid;grid-template-columns:160px minmax(180px,1fr) 190px auto;gap:10px;align-items:end}
.office-holiday-create-grid-r034>.office-button{min-height:40px;white-space:nowrap}
.office-holiday-table-toggle-r034{display:flex;justify-content:flex-end;margin-top:0!important}
.office-holiday-settings-r034>.office-table-frame{margin-top:0}
.office-mileage-settings-r034{gap:14px!important;padding:22px 24px!important}
.office-mileage-settings-r034>.office-settings-section-heading{margin:0!important}
.office-mileage-row-r034{display:grid;grid-template-columns:190px minmax(260px,1fr) auto;gap:16px;align-items:end;max-width:900px}
.office-mileage-row-r034 .office-field{margin:0}.office-mileage-row-r034 .office-number-input-master{position:relative;width:190px}.office-mileage-row-r034 .office-number-input-master>input{width:100%;height:40px;min-height:40px;padding-right:30px;text-align:right}.office-mileage-row-r034 .office-number-input-suffix{position:absolute;right:10px;top:50%;transform:translateY(-50%);color:var(--office-text-muted);font-size:13px;pointer-events:none}
.office-mileage-row-r034>p{margin:0 0 9px;color:var(--office-text-muted);font-size:12px;line-height:1.35}
.office-mileage-row-r034>.office-button{margin-bottom:0}
@media(max-width:1050px){.office-workforce-settings-grid-r034,.office-holiday-layout-r034{grid-template-columns:1fr}.office-holiday-sync-controls-r034{grid-template-columns:110px 110px minmax(0,1fr)}.office-holiday-create-grid-r034{grid-template-columns:160px minmax(0,1fr) 190px}.office-holiday-create-grid-r034>.office-button{grid-column:1/-1;justify-self:end}}
@media(max-width:720px){.office-workforce-card-r034,.office-mileage-settings-r034{padding:18px!important}.office-month-close-grid-r034{grid-template-columns:1fr}.office-holiday-sync-controls-r034,.office-holiday-create-grid-r034,.office-mileage-row-r034{grid-template-columns:1fr}.office-holiday-sync-controls-r034 .office-button,.office-holiday-create-grid-r034>.office-button{justify-self:stretch}.office-mileage-row-r034 .office-number-input-master{width:100%}}


/* r034 Patch 03F – Bautagesbericht time control and trade popover follow the Office UI. */
.office-diary-time-input-r034{
  position:relative;
  width:100%;
  height:40px;
  min-height:40px;
  display:flex;
  align-items:center;
  padding:0 42px 0 12px;
  border:1px solid var(--office-border-strong);
  border-radius:var(--office-radius-md);
  background:var(--office-surface);
  color:var(--office-text);
  box-sizing:border-box;
  transition:border-color 140ms ease,box-shadow 140ms ease,background-color 140ms ease;
}
.office-diary-time-input-r034:hover{border-color:var(--office-border-strong);background:var(--office-surface-soft)}
.office-diary-time-input-r034:focus-within{border-color:var(--office-primary);box-shadow:0 0 0 3px color-mix(in srgb,var(--office-primary) 18%,transparent);background:var(--office-surface)}
.office-diary-time-value-r034{font:inherit;font-size:13px;font-weight:400!important;line-height:1.2;color:inherit;pointer-events:none}
.office-diary-time-input-r034 .office-time-input-icon-r033{z-index:1;pointer-events:none!important}
.office-diary-time-native-r034{position:absolute;inset:0;z-index:2;width:100%;height:100%;margin:0;padding:0;border:0;opacity:0;cursor:pointer;background:transparent;color:transparent}
.office-diary-company-card-r034{position:relative;z-index:20;overflow:visible!important}
.office-diary-company-card-r034 .office-diary-company-add-r018,
.office-diary-company-card-r034 .office-field,
.office-diary-company-card-r034 .office-diary-trade-picker-r034{overflow:visible!important}
.office-diary-trade-picker-r034{z-index:30}
.office-diary-trade-popover-r034{
  position:absolute!important;
  inset:auto 0 auto 0!important;
  top:calc(100% + 6px)!important;
  bottom:auto!important;
  left:0!important;
  right:0!important;
  width:auto!important;
  min-width:100%!important;
  max-height:min(340px,42vh)!important;
  z-index:600!important;
  transform:none!important;
  margin:0!important;
}


/* r034 Patch 03G – Bautagesbericht action master, revision PDF pill and report-mode tools. */
.office-diary-heading-r015 .office-time-list-actions>.office-button,
.office-diary-tasks-heading-r023>.office-module-action-button{height:36px!important;min-height:36px!important;padding-top:0!important;padding-bottom:0!important}
.office-diary-heading-r015 .office-time-list-actions>.office-button .office-svg-icon,
.office-diary-tasks-heading-r023>.office-module-action-button .office-svg-icon{width:16px;height:16px}
.office-diary-revision-r034.is-pdf{gap:5px;text-decoration:none;cursor:pointer;color:var(--office-text-muted,#6f747a)}
.office-diary-revision-r034.is-pdf:hover{background:var(--office-surface-hover,#f3f5f7);border-color:var(--office-border-strong,#c8cdd3);color:var(--office-text)}
.office-diary-revision-r034.is-pdf .office-svg-icon{width:12px;height:12px}

/* r034 Patch 04.1 – tender polish */
.office-ava-gaeb-x83-button-r034{white-space:nowrap!important;flex:0 0 auto!important;width:auto!important;min-width:max-content}
.office-ava-mail-preview-backdrop-r034{z-index:10030!important}
.office-ava-mail-preview-r025{z-index:10031!important;pointer-events:auto}

/* r034 Patch 04.2 – AVA tender/bid interaction polish. */
.office-ava-time-input-r034{
  position:relative;
  width:100%;
  height:40px;
  min-height:40px;
  display:flex;
  align-items:center;
  padding:0 42px 0 12px;
  border:1px solid var(--office-border-strong);
  border-radius:var(--office-radius-md);
  background:var(--office-surface);
  color:var(--office-text);
  box-sizing:border-box;
}
.office-ava-time-value-r034{font:inherit;font-size:13px;line-height:1.2;color:inherit;pointer-events:none}
.office-ava-time-input-r034 .office-time-input-icon-r033{z-index:1;pointer-events:none!important}
.office-ava-time-native-r034{position:absolute;inset:0;z-index:2;width:100%;height:100%;margin:0;padding:0;border:0;opacity:0;cursor:pointer;background:transparent;color:transparent}
.office-tender-bidder-actions-r030-bf5{gap:10px!important}
.office-ava-mail-preview-layer-r034{z-index:10040!important}
.office-ava-mail-preview-layer-r034>.office-dialog-scrim{z-index:0}
.office-ava-mail-preview-layer-r034>.office-ava-mail-preview-r025{position:relative!important;left:auto!important;top:auto!important;transform:none!important;z-index:1!important;width:min(820px,calc(100vw - 32px));max-height:calc(100vh - 48px);overflow:hidden}
.office-ava-mail-preview-layer-r034>.office-ava-mail-preview-r025>.office-dialog-body{overflow:auto}
.office-ava-bid-gaeb-import-r034{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px 12px;align-items:center;margin-top:12px;padding:10px 12px;border:1px solid var(--office-border);border-radius:11px;background:var(--office-surface-soft)}
.office-ava-bid-gaeb-import-r034>div:first-child{grid-column:1/-1;display:grid;gap:3px}.office-ava-bid-gaeb-import-r034 h3{margin:0;font-size:15px}.office-ava-bid-gaeb-import-r034 p{margin:0;color:var(--office-text-muted);font-size:12px}
.office-ava-bid-gaeb-upload-r034{min-height:44px;display:flex!important;align-items:center;gap:9px;border:1px dashed var(--office-border-strong);border-radius:9px;padding:7px 10px;background:var(--office-surface);cursor:pointer}.office-ava-bid-gaeb-upload-r034>span:last-of-type{display:grid;gap:1px}.office-ava-bid-gaeb-upload-r034 small{color:var(--office-text-muted);font-weight:400}
.office-ava-bid-gaeb-import-r034>.office-callout{grid-column:1/-1;margin:0}
.office-ava-path-separator-r034{display:flex;align-items:center;gap:10px;margin:14px 0;color:var(--office-text-muted);font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.04em}.office-ava-path-separator-r034:before,.office-ava-path-separator-r034:after{content:"";height:1px;background:var(--office-border);flex:1}.office-ava-path-separator-r034 span{white-space:nowrap}
@media(max-width:720px){.office-ava-bid-gaeb-import-r034{grid-template-columns:1fr}.office-ava-bid-gaeb-import-r034>.office-button{width:100%;justify-content:center}}

/* r034 Patch 04.5: AVA Ausschreibungsstandard / kompakter Angebotsimport */
.office-ava-template-editor-r034{min-height:260px}
.office-ava-template-placeholders-r034{margin-top:8px;line-height:1.45}

/* r034 Patch 04.6: Angebotsprüfung und Preisspiegel teilen bewusst denselben Tabellenmaster. */
.office-ava-comparison-frame-r046{
    margin:0 -20px -20px!important;
    border-left:0!important;
    border-right:0!important;
    border-bottom:0!important;
    border-radius:0!important;
    overflow:hidden!important;
}
.office-ava-comparison-frame-r046>.office-table-viewport{
    border-radius:0!important;
    overflow:auto!important;
}
.office-ava-comparison-frame-r046 .office-table{
    width:max-content;
    min-width:100%;
    table-layout:fixed;
    border-collapse:separate;
    border-spacing:0;
}
.office-ava-comparison-frame-r046 col.is-position-r046{width:360px}
.office-ava-comparison-frame-r046 col.is-quantity-r046{width:86px}
.office-ava-comparison-frame-r046 col.is-unit-r046{width:76px}
.office-ava-comparison-frame-r046 col.is-cost-r046{width:116px}
.office-ava-comparison-frame-r046 col.is-bid-ep-r046{width:96px}
.office-ava-comparison-frame-r046 col.is-bid-gp-r046{width:108px}
.office-ava-comparison-frame-r046 col.is-bid-dev-r046{width:86px}
.office-ava-comparison-frame-r046 col.is-min-r046,
.office-ava-comparison-frame-r046 col.is-median-r046{width:100px}
.office-ava-comparison-frame-r046 .office-table thead th{
    height:38px;
    padding:8px 10px;
    vertical-align:middle;
    background:var(--office-surface-soft);
    border-right:1px solid var(--office-border);
    border-bottom:1px solid var(--office-border);
    font-size:12px;
    font-weight:650;
    white-space:nowrap;
}
.office-ava-comparison-frame-r046 .office-table thead tr:first-child th{top:0}
.office-ava-comparison-frame-r046 .office-table thead tr:nth-child(2) th{top:38px}
.office-ava-comparison-frame-r046 .office-table tbody td{
    height:40px;
    padding:8px 10px;
    vertical-align:middle;
    border-right:1px solid var(--office-border);
    border-bottom:1px solid var(--office-border);
    background:var(--office-surface);
    font-size:12.5px;
    white-space:nowrap;
}
.office-ava-comparison-frame-r046 .office-table th:last-child,
.office-ava-comparison-frame-r046 .office-table td:last-child{border-right:0}
.office-ava-comparison-frame-r046 .office-table tbody tr:last-child td{border-bottom:0}
.office-ava-comparison-frame-r046 .office-table th.is-position-r030,
.office-ava-comparison-frame-r046 .office-table td.is-position-r030{
    position:sticky;
    left:0;
    z-index:4;
    background:var(--office-surface);
}
.office-ava-comparison-frame-r046 .office-table thead th.is-position-r030{
    z-index:8;
    background:var(--office-surface-soft);
}
.office-ava-comparison-frame-r046 .office-table .is-bid-group-r030{
    text-align:center;
    background:var(--office-surface-soft);
}
.office-ava-comparison-frame-r046 .office-table .is-numeric{text-align:right;font-variant-numeric:tabular-nums}
.office-ava-comparison-position-r046{min-width:0;display:flex;align-items:baseline;gap:7px}
.office-ava-comparison-position-r046 strong{flex:0 0 auto;font-weight:650;font-variant-numeric:tabular-nums}
.office-ava-comparison-position-r046 span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.office-ava-comparison-frame-r046 .office-price-cell-button-r030{
    min-width:0;
    width:100%;
    padding:0;
    justify-content:flex-end;
    text-align:right;
}

/* Bieterangebot: GAEB und manuelle Erfassung sind zwei gleichwertige Wege. */
.office-ava-bid-paths-r046{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;margin-top:14px}
.office-ava-bid-path-r046{min-width:0;display:flex;flex-direction:column;gap:12px;padding:14px;border:1px solid var(--office-border);border-radius:12px;background:var(--office-surface-soft)}
.office-ava-bid-path-heading-r046{display:flex;align-items:flex-start;gap:10px;min-height:46px}
.office-ava-bid-path-heading-r046>.office-svg-icon{width:21px;height:21px;flex:0 0 21px;margin-top:1px}
.office-ava-bid-path-heading-r046 h3{margin:0;font-size:15px}
.office-ava-bid-path-heading-r046 p{margin:3px 0 0;color:var(--office-text-muted);font-size:12px;line-height:1.35}
.office-ava-bid-path-r046 .office-ava-bid-gaeb-upload-r034{min-height:42px;margin:0}
.office-ava-bid-manual-grid-r046{gap:10px}
.office-ava-bid-manual-grid-r046 .office-textarea{min-height:72px}
.office-ava-bid-path-action-r046{width:100%;height:40px!important;min-height:40px!important;justify-content:center;margin-top:auto}
.office-ava-bid-path-r046>.office-callout{margin:0}

.office-ava-tender-direct-error-r046{grid-column:1/-1;margin:0!important}

@media(max-width:900px){
    .office-ava-bid-paths-r046{grid-template-columns:1fr}
}
.office-ava-tender-direct-r034{flex-wrap:wrap}
.office-ava-tender-direct-error-r046{flex:1 0 100%;width:100%}
.office-ava-comparison-frame-r046 .office-table thead tr:first-child th:first-child,
.office-ava-comparison-frame-r046 .office-table thead tr:first-child th:last-child,
.office-ava-comparison-frame-r046 .office-table tbody tr:last-child td:first-child,
.office-ava-comparison-frame-r046 .office-table tbody tr:last-child td:last-child{border-radius:0!important}
.office-ava-comparison-frame-r046 .office-table td.is-best{background:rgba(35,134,54,.055);color:#237a37;font-weight:600}
.office-ava-comparison-frame-r046 .office-table td.is-high{background:rgba(217,54,62,.045);color:#9d3036}
.office-ava-comparison-frame-r046 .office-table td.is-muted{color:var(--office-text-muted);font-style:italic}
.office-ava-comparison-frame-r046 .office-table td.is-outlier-low,
.office-ava-comparison-frame-r046 .office-table td.is-outlier-high{font-weight:600}

/* r034 Patch 04.7: LV-PDF, LV-Stammdaten und AVA-Vergleichsmaster. */
.office-boq-pdf-layer-r047{z-index:10030}
.office-boq-pdf-dialog-r047{width:min(1180px,calc(100vw - 32px));max-height:calc(100vh - 32px);overflow:hidden}
.office-boq-pdf-body-r047{overflow:auto;padding:18px 20px}
.office-boq-pdf-columns-r047{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;align-items:start}
.office-boq-pdf-column-r047{display:grid;gap:14px;min-width:0}
.office-boq-pdf-group-r047{border:1px solid var(--office-border);border-radius:12px;background:var(--office-surface);padding:14px 16px;display:grid;gap:9px;min-width:0}
.office-boq-pdf-group-r047 h3{margin:0 0 2px;font-size:15px}
.office-radio-row-r047{display:flex;align-items:center;gap:10px;min-height:30px;cursor:pointer;color:var(--office-text)}
.office-radio-row-r047 input{width:17px;height:17px;margin:0;accent-color:var(--office-accent,#1677d2)}
.office-boq-cover-upload-r047{margin-top:1px}
.office-free-combo-r047{position:relative;display:grid;grid-template-columns:minmax(0,1fr) 38px;min-width:0}
.office-free-combo-r047>input{height:40px;border:1px solid var(--office-border-strong);border-radius:var(--office-radius-md) 0 0 var(--office-radius-md);padding:0 12px;background:var(--office-surface);color:var(--office-text);min-width:0}
.office-free-combo-r047>.office-icon-button{width:38px;height:40px;border:1px solid var(--office-border-strong);border-left:0;border-radius:0 var(--office-radius-md) var(--office-radius-md) 0;background:var(--office-surface)}
.office-free-combo-popover-r047{left:0!important;right:0!important;top:calc(100% + 4px)!important;min-width:100%!important;max-height:260px;overflow:auto}
.office-boq-pdf-date-r047{display:grid;gap:5px;padding-top:5px;border-top:1px solid var(--office-border)}
.office-boq-pdf-date-r047>.office-date-picker{max-width:220px}
.office-boq-document-settings-r047{display:grid;gap:12px;padding:14px;border:1px solid var(--office-border);border-radius:12px;background:var(--office-surface-soft)}
.office-boq-settings-section-head-r047{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;margin:2px 0 8px}
.office-boq-settings-section-head-r047 h3{margin:0;font-size:16px}.office-boq-settings-section-head-r047 p{margin:3px 0 0;color:var(--office-text-muted);font-size:12px}
.office-boq-settings-subhead-r047{font-weight:650;font-size:13px;margin-top:4px;padding-top:10px;border-top:1px solid var(--office-border)}
.office-boq-document-grid-r047{align-items:end}.office-boq-document-grid-r047 .office-textarea{min-height:76px}
.office-boq-settings-checkbox-r047{align-self:end;min-height:40px}
.office-boq-bid-context-r047{display:grid;gap:10px;padding:12px 14px;border:1px solid var(--office-border);border-radius:12px;background:var(--office-surface-soft)}
.office-boq-bid-context-head-r047{display:flex;align-items:baseline;gap:9px}.office-boq-bid-context-head-r047 strong{font-size:14px}.office-boq-bid-context-head-r047 span{font-size:12px;color:var(--office-text-muted)}
.office-boq-bid-context-fields-r047{display:grid;grid-template-columns:1fr;gap:10px}.office-boq-bid-context-fields-r047>.office-field{max-width:none}
.office-ava-export-action-r047{display:flex;align-items:center;gap:4px;height:36px;padding:0 4px 0 12px;border:1px solid var(--office-border-strong);border-radius:10px;background:var(--office-surface);font-size:13px;font-weight:600;white-space:nowrap}
.office-ava-export-action-r047 .office-context-menu-wrap,.office-ava-export-action-r047 .office-row-menu-wrap{margin:0}
.office-ava-export-action-r047 .office-context-menu-button{width:30px;height:30px;border:0;background:transparent}
.office-ava-comparison-frame-r046 col.is-oz-r047{width:88px}.office-ava-comparison-frame-r046 col.is-short-r047{width:360px}
.office-ava-comparison-frame-r046 .office-table th.is-oz-r047,.office-ava-comparison-frame-r046 .office-table td.is-oz-r047{position:sticky;left:0;z-index:5;background:var(--office-surface);font-variant-numeric:tabular-nums;white-space:nowrap}
.office-ava-comparison-frame-r046 .office-table th.is-short-r047,.office-ava-comparison-frame-r046 .office-table td.is-short-r047{position:sticky;left:88px;z-index:5;background:var(--office-surface);box-shadow:1px 0 0 var(--office-border)}
.office-ava-comparison-frame-r046 .office-table thead th.is-oz-r047,.office-ava-comparison-frame-r046 .office-table thead th.is-short-r047{z-index:9;background:var(--office-surface-soft)}
.office-ava-comparison-short-r047{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.office-ava-comparison-frame-r046 .office-table tbody tr:hover td{background:var(--office-surface-hover,#fafafa)}
.office-ava-comparison-frame-r046 .office-table tbody tr:hover td.is-oz-r047,.office-ava-comparison-frame-r046 .office-table tbody tr:hover td.is-short-r047{background:var(--office-surface-hover,#fafafa)}
.office-ava-comparison-frame-r046 .office-table .is-bid-group-r030{border-left:1px solid var(--office-border-strong);border-right:1px solid var(--office-border-strong);font-weight:700}
.office-ava-comparison-frame-r046 .office-table thead tr:nth-child(2) th:nth-of-type(3n+1){border-left:1px solid var(--office-border-strong)}
@media(max-width:900px){.office-boq-pdf-columns-r047{grid-template-columns:1fr}.office-boq-document-grid-r047{grid-template-columns:1fr!important}}
.office-ava-export-action-r047 .office-row-menu-trigger{width:30px;height:30px;border:0;background:transparent}
.office-price-summary-r030{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:0;border-top:1px solid var(--office-border);border-bottom:1px solid var(--office-border);background:var(--office-surface-soft)}
.office-price-summary-r030>div{display:grid;gap:2px;padding:10px 20px;border-right:1px solid var(--office-border)}
.office-price-summary-r030>div:last-child{border-right:0}.office-price-summary-r030 span{font-size:11px;color:var(--office-text-muted)}.office-price-summary-r030 strong{font-size:16px;font-variant-numeric:tabular-nums}
.office-boq-structure-dialog-r028{width:min(1180px,calc(100vw - 24px))!important}

/* r034 Patch 04.8: LV-PDF polish, AVA comparison AG Grid and compact bid entry. */
.office-boq-pdf-dialog-r047>.office-dialog-header>div>h2,
.office-bid-create-dialog-r048>.office-dialog-header>div>h2{margin-bottom:0!important}
.office-boq-pdf-dialog-r047>.office-dialog-header>div>p,
.office-bid-create-dialog-r048>.office-dialog-header>div>p{margin:2px 0 0!important;color:var(--office-text-muted);font-size:13px}
.office-boq-pdf-body-r047{padding:12px 16px!important}
.office-boq-pdf-columns-r047{gap:12px!important}
.office-boq-pdf-column-r047{gap:10px!important}
.office-boq-pdf-group-r047{padding:11px 14px!important;gap:5px!important}
.office-boq-pdf-group-r047 h3{margin:0!important;font-size:14px!important}
.office-boq-pdf-group-r047 .office-checkbox-row,
.office-boq-pdf-group-r047 .office-radio-row-r047{min-height:27px!important;gap:9px!important}
.office-boq-pdf-more-r048>.office-checkbox-row{min-height:25px!important}
.office-free-combo-r047{grid-template-columns:minmax(0,1fr) 34px!important}
.office-free-combo-r047>input{height:38px!important}
.office-free-combo-r047>.office-icon-button{width:34px!important;height:38px!important;min-width:34px!important;min-height:38px!important}
.office-free-combo-r047>.office-icon-button .office-svg-icon{width:13px!important;height:13px!important}
.office-boq-pdf-date-r047{gap:3px!important;margin-top:6px!important;padding-top:10px!important}
.office-boq-pdf-date-r047>strong{display:block;margin-bottom:1px;font-size:14px}
.office-boq-pdf-date-r047>.office-radio-row-r047{min-height:26px!important}

.office-bid-create-dialog-r048{width:min(1180px,calc(100vw - 32px))!important;max-height:calc(100vh - 28px)!important}
.office-bid-create-dialog-r048>.office-dialog-body{padding:14px 18px!important}
.office-bid-create-dialog-r048 .office-boq-bid-context-r047{padding:10px 12px!important;gap:8px!important}
.office-bid-create-dialog-r048 .office-ava-bid-paths-r046{margin-top:10px!important;gap:12px!important}
.office-bid-create-dialog-r048 .office-ava-bid-path-r046{padding:12px!important;gap:9px!important}
.office-bid-create-dialog-r048 .office-ava-bid-path-heading-r046{min-height:40px!important}
.office-bid-create-dialog-r048 .office-ava-bid-manual-grid-r046{gap:8px!important}
.office-bid-create-dialog-r048 .office-ava-bid-manual-grid-r046 .office-textarea{min-height:58px!important;height:58px!important}
.office-bid-create-dialog-r048 .office-number-input-master,
.office-bid-create-dialog-r048 .office-number-input-master>input{height:40px!important;min-height:40px!important}
.office-bid-create-dialog-r048 .office-number-input-master>input{text-align:right;font-variant-numeric:tabular-nums}
.office-bid-create-dialog-r048 .office-dialog-footer{padding-top:9px!important;padding-bottom:9px!important}

.office-ava-export-dropdown-r048{position:relative;display:inline-flex}
.office-ava-export-dropdown-button-r048{display:inline-flex!important;align-items:center!important;gap:9px!important;height:36px!important;min-height:36px!important;padding:0 11px 0 13px!important}
.office-ava-export-dropdown-button-r048 .office-svg-icon{width:12px!important;height:12px!important;opacity:.72}
.office-ava-export-popover-r048{top:calc(100% + 5px)!important;right:0!important;left:auto!important;min-width:150px!important}

.office-ava-comparison-grid-master-r048{position:relative;border-top:1px solid var(--office-border);background:var(--office-surface)}
.office-ava-comparison-grid-toolbar-r048{display:flex;justify-content:flex-end;align-items:center;padding:8px 10px;border-bottom:1px solid var(--office-border);background:var(--office-surface-soft);position:relative;z-index:20}
.office-ava-comparison-grid-toolbar-r048>.office-button{height:32px!important;min-height:32px!important}
.office-ava-toolbar-chevron-r048{width:11px!important;height:11px!important;margin-left:2px}
.office-ava-comparison-columns-r048{top:calc(100% - 4px)!important;right:10px!important;left:auto!important;width:280px!important;max-height:360px;overflow:auto;padding:7px!important}
.office-ava-column-choice-r048{padding:5px 7px;border-radius:7px;min-height:30px!important}
.office-ava-column-choice-r048:hover{background:var(--office-surface-soft)}
.office-ava-comparison-ag-grid-r048{width:100%;height:clamp(500px,calc(100vh - 390px),760px);min-height:500px;--ag-font-family:Inter,Arial,sans-serif;--ag-font-size:12.5px;--ag-grid-size:5px;--ag-row-height:38px;--ag-header-height:34px;--ag-border-color:#d9e0e7;--ag-row-border-color:#edf0f3;--ag-header-background-color:#f7f9fb;--ag-header-foreground-color:#344054;--ag-row-hover-color:#f5f9ff;--ag-selected-row-background-color:#eaf3ff;--ag-input-focus-border-color:#1677d2;--ag-accent-color:#1677d2}
.office-ava-comparison-ag-grid-r048 .ag-root-wrapper{border:0!important;border-radius:0!important}
.office-ava-comparison-ag-grid-r048 .ag-header-cell,.office-ava-comparison-ag-grid-r048 .ag-header-group-cell{font-weight:650}
.office-ava-comparison-ag-grid-r048 .ag-header-group-cell-label{justify-content:center}
.office-ava-comparison-ag-grid-r048 .ag-cell{display:flex;align-items:center;padding-left:9px;padding-right:9px;border-right:1px solid #edf0f3}
.office-ava-comparison-ag-grid-r048 .ag-right-aligned-cell{justify-content:flex-end;font-variant-numeric:tabular-nums}
.office-ava-comparison-ag-grid-r048 .ag-pinned-left-cols-container{box-shadow:2px 0 5px rgba(26,33,44,.04)}
.office-ava-comparison-ag-grid-r048 .office-ava-price-clickable-r048{cursor:pointer;color:var(--office-primary,#1677d2);font-weight:600}
.office-ava-comparison-ag-grid-r048 .office-ava-price-clickable-r048:hover{text-decoration:underline}
.office-ava-bid-group-header-r048{background:color-mix(in srgb,var(--office-surface-soft) 82%,#fff)}

.office-cost-estimate-actions-r048 .office-button[disabled]{opacity:.45;cursor:not-allowed;background:var(--office-surface-soft)!important;color:var(--office-text-muted)!important}

@media(max-width:900px){
 .office-boq-pdf-columns-r047{grid-template-columns:1fr!important}
 .office-ava-comparison-ag-grid-r048{height:62vh;min-height:430px}
 .office-bid-create-dialog-r048 .office-ava-bid-paths-r046{grid-template-columns:1fr!important}
}

/* r034 patch 04.9 – AVA comparison/LV PDF corrective master ---------------- */
/* LV PDF dialog: local alignment only; no global checkbox master changes. */
.office-boq-pdf-group-r047 .office-boq-pdf-checkbox-r049{
  padding-left:0!important;
  padding-right:0!important;
  justify-items:start!important;
}
.office-boq-pdf-group-r047 .office-boq-pdf-checkbox-r049:hover{background:transparent!important}
.office-free-combo-r049{z-index:4}
.office-free-combo-r049>.office-icon-button .office-svg-icon{width:11px!important;height:11px!important}
.office-free-combo-popover-r049{
  position:absolute;z-index:80;top:calc(100% + 4px);left:0;right:0;
  max-height:260px;overflow:auto;padding:6px;background:var(--office-surface);
  border:1px solid var(--office-border);border-radius:9px;box-shadow:var(--office-shadow-popover);
}
.office-free-combo-popover-r049 .office-popover-action{
  display:block;width:100%;min-height:32px;padding:6px 9px;border:0;border-radius:7px;
  background:transparent;color:var(--office-text);font:inherit;font-size:13px;text-align:left;cursor:pointer;
}
.office-free-combo-popover-r049 .office-popover-action:hover{background:var(--office-surface-soft)}

/* Preisspiegel outputs use a compact split/dropdown pattern without nested ... menus. */
.office-ava-output-dropdown-r049{position:relative;display:inline-flex;z-index:35}
.office-ava-output-button-r049{display:inline-flex!important;align-items:center!important;gap:8px!important;height:36px!important;min-height:36px!important;padding:0 11px 0 13px!important}
.office-ava-output-button-r049>.office-svg-icon{width:11px!important;height:11px!important;opacity:.7}
.office-ava-output-menu-r049{
  position:absolute;right:0;top:calc(100% + 5px);z-index:120;min-width:190px;padding:6px;
  background:var(--office-surface);border:1px solid var(--office-border);border-radius:10px;box-shadow:var(--office-shadow-popover);
}
.office-ava-output-menu-r049 .office-menu-row{display:flex;align-items:center;gap:9px;min-height:34px;padding:7px 9px;border-radius:7px;color:var(--office-text)!important;text-decoration:none!important;font-size:13px}
.office-ava-output-menu-r049 .office-menu-row:hover{background:var(--office-surface-soft)}
.office-ava-output-menu-r049 .office-svg-icon{width:15px;height:15px}
.office-ava-award-layer-r049{z-index:10050!important;place-items:center!important}
.office-ava-award-layer-r049>.office-award-dialog-r025{margin:auto!important;align-self:center!important;justify-self:center!important}

/* Shared comparison grid – intentionally inherits the actual LV AG Grid master. */
.office-ava-comparison-grid-master-r049{
  position:relative;min-width:0;width:100%;border-top:1px solid var(--office-border);background:var(--office-surface);
}
.office-ava-comparison-grid-toolbar-r049{
  position:relative;z-index:28;display:flex;align-items:center;justify-content:space-between;gap:12px;
  min-height:44px;padding:6px 10px;border-bottom:1px solid var(--office-border);background:var(--office-surface);
}
.office-ava-bid-visibility-r049{display:flex;align-items:center;gap:6px;min-width:0;overflow-x:auto;scrollbar-width:thin}
.office-ava-toolbar-label-r049{flex:0 0 auto;color:var(--office-text-muted);font-size:12px;font-weight:600;margin-right:2px}
.office-ava-bid-toggle-r049{display:inline-flex!important;align-items:center!important;gap:5px!important;height:30px!important;min-height:30px!important;padding:0 9px!important;color:var(--office-text-muted)!important;background:var(--office-surface)!important}
.office-ava-bid-toggle-r049 small{font-size:10.5px;font-weight:650;color:inherit}
.office-ava-bid-toggle-r049.is-active{color:var(--office-text)!important;background:var(--office-surface-soft)!important;border-color:var(--office-border-strong)!important}
.office-ava-comparison-grid-actions-r049{display:flex;align-items:center;gap:6px;flex:0 0 auto}
.office-ava-comparison-grid-actions-r049>.office-button{height:32px!important;min-height:32px!important}
.office-ava-toolbar-chevron-r049{width:10px!important;height:10px!important;margin-left:1px}
.office-ava-comparison-columns-r049{
  position:absolute;z-index:100;right:48px;top:42px;width:min(320px,calc(100vw - 40px));max-height:360px;overflow:auto;padding:6px;
  background:var(--office-surface);border:1px solid var(--office-border);border-radius:10px;box-shadow:var(--office-shadow-popover);
}
.office-ava-column-choice-r049{min-height:30px!important;padding:5px 7px!important;border-radius:7px!important}
.office-ava-column-choice-r049:hover{background:var(--office-surface-soft)!important}
.office-ava-comparison-ag-grid-r049{width:100%;min-height:360px;--ag-font-family:Inter,Arial,sans-serif;--ag-font-size:13px;--ag-grid-size:5px;--ag-row-height:38px;--ag-header-height:36px;--ag-border-color:var(--office-border);--ag-row-border-color:var(--office-border-soft,#edf0f3);--ag-header-background-color:var(--office-surface-soft);--ag-header-foreground-color:var(--office-text);--ag-row-hover-color:#f5f9ff;--ag-selected-row-background-color:#eaf3ff;--ag-accent-color:var(--office-primary,#1677d2)}
.office-ava-comparison-grid-master-r049 .ag-root-wrapper{border:0!important;border-radius:0!important}
.office-ava-comparison-grid-master-r049 .ag-header{border-bottom:1px solid var(--office-border)!important}
.office-ava-comparison-grid-master-r049 .ag-header-cell,.office-ava-comparison-grid-master-r049 .ag-header-group-cell{font-weight:600!important;color:var(--office-text)!important;border-right:1px solid var(--office-border)!important}
.office-ava-comparison-grid-master-r049 .ag-header-group-cell-label{justify-content:center}
.office-ava-comparison-grid-master-r049 .ag-header-cell-resize{background:transparent!important}
.office-ava-comparison-grid-master-r049 .ag-header-cell-resize::after{display:none!important}
.office-ava-comparison-grid-master-r049 .ag-cell{display:flex;align-items:center;padding-left:9px;padding-right:9px;border-right:1px solid var(--office-border-soft,#edf0f3)!important;font-size:13px;color:var(--office-text)}
.office-ava-comparison-grid-master-r049 .ag-right-aligned-cell{justify-content:flex-end;font-variant-numeric:tabular-nums}
.office-ava-comparison-grid-master-r049 .ag-pinned-left-cols-container{box-shadow:1px 0 0 var(--office-border)!important}
.office-ava-comparison-grid-master-r049 .office-ava-price-clickable-r049{cursor:pointer;color:var(--office-primary,#1677d2);font-weight:600;text-decoration:none!important}
.office-ava-comparison-grid-master-r049 .office-ava-price-clickable-r049:hover{background:color-mix(in srgb,var(--office-primary,#1677d2) 5%,transparent);text-decoration:none!important}
.office-ava-bid-group-header-r049{background:var(--office-surface-soft)!important}
.office-boq-bid-summary-card,.office-boq-bid-summary-card:hover,.office-boq-bid-summary-card:focus{text-decoration:none!important}
.office-procurement-workspace.is-focus-mode .office-boq-bids{height:calc(100dvh - 16px);min-height:0;display:flex;flex-direction:column;overflow:hidden}
.office-procurement-workspace.is-focus-mode .office-boq-bids>.office-ava-comparison-grid-master-r049{flex:1 1 auto;min-height:0}
.office-procurement-workspace.is-focus-mode .office-ava-comparison-grid-master-r049>.office-ava-comparison-ag-grid-r049{height:100%!important;min-height:0!important;max-height:none!important}
@media(max-width:900px){
  .office-ava-comparison-grid-toolbar-r049{align-items:flex-start;flex-wrap:wrap}
  .office-ava-bid-visibility-r049{width:100%}
  .office-ava-comparison-columns-r049{right:8px;top:78px}
}

/* r034 Patch 04.10 – AVA comparison master + LV PDF correction ---------------- */
/* PDF free-combo popovers must stay above the following PDF group only locally. */
.office-boq-pdf-group-r047.is-combo-open-r0410{position:relative;z-index:95!important}
.office-boq-pdf-group-r047.is-combo-open-r0410 .office-free-combo-r049{z-index:96!important}
.office-boq-pdf-group-r047.is-combo-open-r0410 .office-free-combo-popover-r049{z-index:97!important}

/* Preisspiegel / Preisausreißer use the central Office popover master. */
.office-ava-output-dropdown-r0410{position:relative;display:inline-flex}
.office-ava-output-button-r0410{display:inline-flex!important;align-items:center!important;gap:8px!important;height:36px!important;min-height:36px!important;padding:0 11px 0 13px!important}
.office-ava-output-button-r0410>.office-svg-icon{width:11px!important;height:11px!important;opacity:.72}
.office-ava-output-menu-r0410{min-width:190px!important;padding:6px!important}
.office-ava-output-menu-r0410 .office-menu-row{display:flex;align-items:center;gap:9px;min-height:34px;padding:7px 9px;border-radius:7px;color:var(--office-text)!important;text-decoration:none!important;font-size:13px}
.office-ava-output-menu-r0410 .office-menu-row:hover{background:var(--office-surface-soft)}
.office-ava-output-menu-r0410 .office-svg-icon{width:15px;height:15px}

/* Angebotsprüfung and Preisspiegel now use the actual LV grid frame/toolbar master. */
.office-ava-comparison-grid-master-r0410{width:100%;max-width:100%;min-width:0;overflow:hidden!important}
.office-ava-comparison-grid-master-r0410>.office-table-toolbar{position:relative!important;z-index:120!important;overflow:visible!important}
.office-ava-comparison-toolbar-r0410 .office-table-toolbar-primary,
.office-ava-comparison-toolbar-r0410 .office-table-toolbar-secondary{min-width:0}
.office-ava-bid-visibility-r0410{display:flex;align-items:center;gap:6px;min-width:0;overflow-x:auto;overflow-y:hidden;scrollbar-width:thin}
.office-ava-toolbar-label-r0410{flex:0 0 auto;color:var(--office-text-muted);font-size:12px;font-weight:600;margin-right:2px}
.office-ava-bid-toggle-r0410{display:inline-flex!important;align-items:center!important;gap:5px!important;height:30px!important;min-height:30px!important;padding:0 9px!important;color:var(--office-text-muted)!important;background:var(--office-surface)!important;white-space:nowrap}
.office-ava-bid-toggle-r0410 small{font-size:10.5px;font-weight:650;color:inherit}
.office-ava-bid-toggle-r0410.is-active{color:var(--office-text)!important;background:var(--office-surface-soft)!important;border-color:var(--office-border-strong)!important}
.office-ava-comparison-actions-r0410{gap:8px!important}
.office-ava-comparison-actions-r0410>.office-button{height:32px!important;min-height:32px!important}
.office-ava-toolbar-chevron-r0410{width:10px!important;height:10px!important;margin-left:1px}
.office-ava-comparison-grid-master-r0410 .office-ava-focus-toggle{width:32px!important;height:32px!important;min-width:32px!important;min-height:32px!important;border:1px solid var(--office-border)!important;border-radius:8px!important;background:var(--office-surface)!important}
.office-ava-comparison-grid-master-r0410 .office-ava-focus-toggle:hover{border-color:var(--office-border-strong)!important;background:var(--office-surface-soft)!important}
.office-ava-comparison-columns-r0410{width:min(330px,calc(100vw - 40px))!important;max-height:360px!important;overflow:auto!important;padding:6px!important}
.office-ava-column-choice-r0410{min-height:30px!important;padding:5px 7px!important;border-radius:7px!important}
.office-ava-column-choice-r0410:hover{background:var(--office-surface-soft)!important}
.office-ava-comparison-grid-shell-r0410{border-radius:0 0 12px 12px!important}
.office-ava-comparison-grid-shell-r0410>.office-ava-comparison-ag-grid-r0410{height:clamp(360px,calc(100dvh - 610px),620px)!important;min-height:360px!important;max-height:620px!important}
.office-ava-comparison-grid-master-r0410 .ag-root-wrapper{border:0!important;border-radius:0!important}
.office-ava-comparison-grid-master-r0410 .ag-header-cell-resize{opacity:0!important;background:transparent!important}
.office-ava-comparison-grid-master-r0410 .ag-header-cell-resize::after{display:none!important}
.office-ava-comparison-grid-master-r0410 .ag-header-cell,.office-ava-comparison-grid-master-r0410 .ag-header-group-cell{border-right:1px solid var(--office-border)!important}
.office-ava-comparison-grid-master-r0410 .ag-cell{border-right:1px solid color-mix(in srgb,var(--office-border,#d9e0e7) 92%,#fff)!important}
.office-ava-comparison-grid-master-r0410 .ag-header-cell:last-child,.office-ava-comparison-grid-master-r0410 .ag-cell:last-child{border-right:0!important}
.office-ava-comparison-grid-master-r0410 .ag-pinned-left-header,.office-ava-comparison-grid-master-r0410 .ag-pinned-left-cols-container{box-shadow:1px 0 0 var(--office-border)!important}
.office-ava-comparison-grid-master-r0410 .office-ava-price-clickable-r049{text-decoration:none!important}
.office-boq-bid-summary-card,.office-boq-bid-summary-card *{text-decoration:none!important}

/* Comparison fullscreen is deliberately identical in structure to the LV fullscreen. */
.office-procurement-workspace.is-focus-mode .office-boq-bids{height:calc(100dvh - 16px)!important;min-height:0!important;padding:0!important;border:0!important;border-radius:0!important;box-shadow:none!important;background:transparent!important;display:flex!important;flex-direction:column!important;overflow:hidden!important}
.office-procurement-workspace.is-focus-mode .office-boq-bids>.office-panel-heading,
.office-procurement-workspace.is-focus-mode .office-boq-bids>.office-price-summary-r030,
.office-procurement-workspace.is-focus-mode .office-boq-bids>.office-boq-bid-summary-grid{display:none!important}
.office-procurement-workspace.is-focus-mode .office-boq-bids>.office-ava-comparison-grid-master-r0410{flex:1 1 auto!important;height:100%!important;min-height:0!important;display:flex!important;flex-direction:column!important}
.office-procurement-workspace.is-focus-mode .office-ava-comparison-grid-master-r0410>.office-boq-grid-v2{flex:1 1 auto!important;height:auto!important;min-height:0!important;max-height:none!important}
.office-procurement-workspace.is-focus-mode .office-ava-comparison-grid-shell-r0410>.office-ava-comparison-ag-grid-r0410{height:100%!important;min-height:0!important;max-height:none!important}

@media(max-width:900px){
  .office-ava-comparison-toolbar-r0410{overflow-x:auto;overflow-y:hidden;scrollbar-width:thin}
  .office-ava-bid-visibility-r0410{min-width:max-content}
  .office-ava-comparison-grid-shell-r0410>.office-ava-comparison-ag-grid-r0410{height:58vh!important;min-height:360px!important}
}

/* r035 – construction diary control consistency. */
.office-diary-company-add-r018 .office-combobox-trigger{font:inherit!important;font-size:inherit!important}


/* r035 – construction/task/navigation polish. */
.office-task-group-table-r019-final .office-status-badge{max-width:none;white-space:nowrap;overflow:visible;text-overflow:clip}
.office-project-tabs{min-height:40px;align-items:center!important}
.office-project-tabs>.office-project-tab{margin:0!important;transform:none!important;white-space:nowrap}
.office-diary-company-add-r018 .office-select-trigger,.office-diary-company-add-r018 .office-combobox-trigger{font:inherit!important;font-size:inherit!important;font-weight:inherit!important}


/* r035 Patch 03 – personal worktime CSV export. */
.office-worktime-export-r035{margin-top:18px;padding-top:18px;border-top:1px solid var(--office-border);display:grid;gap:12px}
.office-worktime-export-heading-r035 h3{margin:0 0 3px;font-size:16px}
.office-worktime-export-heading-r035 p{margin:0;color:var(--office-text-muted);font-size:13px}
.office-worktime-export-grid-r035{align-items:end}
.office-worktime-export-action-r035{display:flex;align-items:flex-end;height:100%}
.office-worktime-export-action-r035>.office-button{width:100%;justify-content:center}
@media(max-width:760px){.office-worktime-export-grid-r035{grid-template-columns:1fr!important}}


/* r035 Patch 07 – Bautagesbericht secondary actions use the existing compact Office button master. */
.office-diary-secondary-action-r035{
  min-height:34px!important;
  height:34px!important;
}
.office-diary-secondary-action-r035>.office-svg-icon{
  width:15px!important;
  height:15px!important;
  flex:0 0 15px!important;
}


/* r036 Patch 03 – hospitality/worktime/quick-capture consistency. */
.office-hospitality-card-r018 .office-hospitality-occasion-col-r036{width:26%;max-width:360px}
.office-hospitality-occasion-ellipsis-r036{display:block;min-width:0;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.office-hospitality-restaurant-popover-r036{width:var(--office-popover-anchor-width,420px)!important;max-width:min(620px,calc(100vw - 32px))!important}
.office-worktime-model-dialog-shell-r030 .office-worktime-no-break-r036{display:flex!important;align-items:center!important;justify-content:flex-start!important;gap:6px!important;white-space:nowrap;font-size:12px;color:var(--office-text-muted)}
.office-worktime-model-dialog-shell-r030 .office-worktime-no-break-r036 input{margin:0!important}
.office-workforce-model-assignment-r036{display:grid;gap:4px;min-width:0}
.office-workforce-model-assignment-r036>small{font-size:11px;line-height:1.25;color:var(--office-text-muted);white-space:normal}
.office-quick-capture-details-r024 .office-table-frame,.office-quick-capture-details-r024 .office-table-viewport{border-radius:10px!important}

/* r039 – configurable legal-break handling. */
.office-worktime-break-policy-r039 .office-setting-toggle-row-r034{margin:0}
.office-worktime-legal-break-warning-r039{
    display:block;
    margin-top:3px;
    color:var(--office-warning,#a76a00);
    font-size:11px;
    line-height:1.25;
    white-space:normal;
}

/* r036 Patch 10 – attendance clock uses the dashboard as the visual master. */
.office-worktime-live-clock.has-check-in-time{min-width:244px!important}
.office-worktime-time-clock-pair-r035{
  display:grid!important;
  grid-template-columns:max-content 16px 1px max-content 16px!important;
  align-items:center!important;
  justify-content:start!important;
  column-gap:9px!important;
  min-width:222px!important;
  overflow:hidden;
  font-variant-numeric:tabular-nums;
}
.office-worktime-time-clock-pair-r035 .office-time-clock-check-in,
.office-worktime-time-clock-pair-r035 .office-time-clock-live{justify-self:auto!important}
.office-worktime-time-clock-pair-r035 .office-time-clock-divider{
  margin-inline:4px!important;
  transform:none!important;
  width:1px;
  height:14px;
}
.office-worktime-clock-live-icon-r035,
.office-worktime-clock-stamp-icon-r035,
.office-worktime-clock-single-icon-r035{
  width:16px!important;
  height:16px!important;
  flex:0 0 16px!important;
}
.office-worktime-live-clock.is-check-in-transition .office-time-clock-check-in,
.office-worktime-live-clock.is-check-in-transition .office-worktime-clock-stamp-icon-r035{
  animation:office-r034-dashboard-check-in-reveal 260ms cubic-bezier(.2,.82,.24,1) 80ms both!important;
}
.office-worktime-live-clock.is-check-in-transition .office-time-clock-divider,
.office-worktime-live-clock.is-check-in-transition .office-time-clock-live,
.office-worktime-live-clock.is-check-in-transition .office-worktime-clock-live-icon-r035{
  animation:office-r034-dashboard-live-reveal 260ms ease 150ms both!important;
}

/* The blue confirmation surface now grows in with the same sweep on dashboard and full time page. */
.office-dashboard-time-clock.is-stamp-pulse.is-check-in,
.office-dashboard-time-clock.is-stamp-pulse.is-check-out,
.office-worktime-live-clock.is-stamp-pulse.is-check-in,
.office-worktime-live-clock.is-stamp-pulse.is-check-out{
  position:relative;
  isolation:isolate;
  overflow:hidden;
  background:transparent!important;
}
.office-dashboard-time-clock.is-stamp-pulse.is-check-in::before,
.office-dashboard-time-clock.is-stamp-pulse.is-check-out::before,
.office-worktime-live-clock.is-stamp-pulse.is-check-in::before,
.office-worktime-live-clock.is-stamp-pulse.is-check-out::before{
  content:"";
  position:absolute;
  inset:0;
  z-index:0;
  border-radius:inherit;
  background:color-mix(in srgb,var(--office-primary) 9%,var(--office-surface));
  transform:scaleX(.04);
  transform-origin:left center;
  opacity:.45;
  animation:office-r036-stamp-confirmation-fill 760ms cubic-bezier(.2,.8,.22,1) forwards;
  pointer-events:none;
}
.office-dashboard-time-clock.is-stamp-pulse>* ,
.office-worktime-live-clock.is-stamp-pulse>*{position:relative;z-index:1}
.office-time-action.is-time-recorded::before,
.office-dashboard-time-quick-action.is-time-recorded::before{
  animation:office-r036-stamp-confirmation-fill 760ms cubic-bezier(.2,.8,.22,1) forwards!important;
}
@keyframes office-r036-stamp-confirmation-fill{
  0%{transform:scaleX(.04);opacity:.35}
  68%{transform:scaleX(1);opacity:.82}
  100%{transform:scaleX(1);opacity:.68}
}
@media(max-width:700px){
  .office-worktime-live-clock.has-check-in-time{min-width:222px!important}
  .office-worktime-time-clock-pair-r035{min-width:204px!important;grid-template-columns:max-content 15px 1px max-content 15px!important;column-gap:7px!important}
  .office-worktime-clock-live-icon-r035,.office-worktime-clock-stamp-icon-r035,.office-worktime-clock-single-icon-r035{width:15px!important;height:15px!important;flex-basis:15px!important}
}
@media(prefers-reduced-motion:reduce){
  .office-worktime-live-clock.is-check-in-transition .office-time-clock-check-in,
  .office-worktime-live-clock.is-check-in-transition .office-worktime-clock-stamp-icon-r035,
  .office-worktime-live-clock.is-check-in-transition .office-time-clock-divider,
  .office-worktime-live-clock.is-check-in-transition .office-time-clock-live,
  .office-worktime-live-clock.is-check-in-transition .office-worktime-clock-live-icon-r035,
  .office-dashboard-time-clock.is-stamp-pulse.is-check-in::before,
  .office-dashboard-time-clock.is-stamp-pulse.is-check-out::before,
  .office-worktime-live-clock.is-stamp-pulse.is-check-in::before,
  .office-worktime-live-clock.is-stamp-pulse.is-check-out::before,
  .office-time-action.is-time-recorded::before,
  .office-dashboard-time-quick-action.is-time-recorded::before{animation-duration:1ms!important;animation-delay:0ms!important}
}

/* r036 Patch 11 – full worktime page follows the dashboard attendance master. */
.office-worktime-overview-grid-r036{
  display:grid;
  grid-template-columns:minmax(0,1.55fr) minmax(470px,.8fr);
  gap:18px;
  align-items:stretch;
}
.office-worktime-overview-grid-r036>.office-dashboard-panel+.office-dashboard-panel{margin-top:0!important}
.office-worktime-overview-grid-r036+.office-dashboard-panel{margin-top:24px}
.office-worktime-status-card-r036{
  display:flex;
  align-items:center;
  min-width:0;
}
.office-worktime-overview-summary-r036{
  grid-template-columns:minmax(190px,1.3fr) repeat(4,minmax(120px,1fr))!important;
  gap:10px!important;
  width:100%;
  margin:0!important;
}
.office-worktime-overview-summary-r036>div{min-width:0}
.office-worktime-overview-summary-r036>div:first-child strong{white-space:normal;line-height:1.25}
.office-worktime-overview-summary-r036 strong{white-space:nowrap}
.office-worktime-stamp-card-r036{
  min-width:0;
  display:grid;
  grid-template-rows:auto 1fr auto;
}
.office-worktime-stamp-card-r036 .office-worktime-stamp-heading-r036{margin:0}
.office-worktime-stamp-card-r036 .office-dashboard-time-clock{justify-content:flex-end!important}
.office-worktime-stamp-card-r036 .office-dashboard-time-body-final{padding-top:21px}
.office-worktime-stamp-actions-r036.has-three-actions{grid-template-columns:repeat(3,minmax(0,1fr))}
.office-worktime-stamp-actions-r036>.office-dashboard-time-quick-action{width:auto}
.office-worktime-stamp-actions-r036>.office-dashboard-time-quick-action.is-pause{
  background:var(--office-surface-soft);
  border-color:var(--office-border);
  color:var(--office-text);
}
.office-worktime-stamp-actions-r036>.office-dashboard-time-quick-action.is-pause:hover:not(:disabled){
  background:var(--office-surface-hover,#f2f4f6);
}
.office-worktime-stamp-message-r036{margin-top:12px}
.office-worktime-entries-card>.office-worktime-card-tabs-r019{margin-bottom:0}
@media(max-width:1380px){
  .office-worktime-overview-grid-r036{grid-template-columns:1fr}
  .office-worktime-stamp-card-r036{min-width:0}
}
@media(max-width:900px){
  .office-worktime-overview-summary-r036{grid-template-columns:repeat(2,minmax(0,1fr))!important}
  .office-worktime-overview-summary-r036>div:first-child{grid-column:1/-1}
}
@media(max-width:700px){
  .office-worktime-overview-summary-r036{grid-template-columns:1fr!important}
  .office-worktime-overview-summary-r036>div:first-child{grid-column:auto}
  .office-worktime-stamp-actions-r036.has-three-actions{grid-template-columns:1fr}
}

/* r036 Patch 11 – hospitality column order and compact status-safe proportions. */
.office-hospitality-table-r036 table{table-layout:fixed;width:100%;min-width:1080px}
.office-hospitality-table-r036 th:nth-child(1),.office-hospitality-table-r036 td:nth-child(1){width:170px}
.office-hospitality-table-r036 th:nth-child(2),.office-hospitality-table-r036 td:nth-child(2){width:auto}
.office-hospitality-table-r036 th:nth-child(3),.office-hospitality-table-r036 td:nth-child(3){width:205px}
.office-hospitality-table-r036 th:nth-child(4),.office-hospitality-table-r036 td:nth-child(4){width:120px}
.office-hospitality-table-r036 th:nth-child(5),.office-hospitality-table-r036 td:nth-child(5){width:110px;white-space:nowrap}
.office-hospitality-table-r036 th:nth-child(6),.office-hospitality-table-r036 td:nth-child(6){width:240px}
.office-hospitality-table-r036 th:nth-child(7),.office-hospitality-table-r036 td:nth-child(7){width:76px}
.office-hospitality-table-r036 .office-status-stack{flex-wrap:nowrap;min-width:0}
.office-hospitality-table-r036 .office-status-badge{white-space:nowrap}
.office-hospitality-card-r018 .office-hospitality-occasion-col-r036{width:auto;max-width:none}
.office-hospitality-restaurant-ellipsis-r036{display:block;min-width:0;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}

/* r036 Patch 12 – worktime card alignment, stable pause action and LV-sized metrics. */
.office-worktime-status-card-r036{
  display:grid;
  grid-template-rows:auto 1fr;
  align-items:stretch;
}
.office-worktime-overview-heading-r036{margin:0}
.office-worktime-overview-body-r036{
  display:flex;
  align-items:center;
  min-width:0;
  padding-top:21px;
}
.office-worktime-overview-summary-r036{
  grid-template-columns:minmax(300px,1.7fr) repeat(4,minmax(96px,.75fr))!important;
}
.office-worktime-overview-summary-r036>div:first-child{min-width:300px}
.office-worktime-overview-summary-r036 strong,
.office-worktime-timesheet-card .office-worktime-timesheet-summary strong{
  font-size:16px!important;
  font-weight:600!important;
  line-height:1.2!important;
  letter-spacing:0!important;
}
.office-worktime-overview-summary-r036>div:first-child strong{
  white-space:normal!important;
  overflow-wrap:anywhere;
}
.office-worktime-stamp-actions-r036{grid-template-columns:repeat(3,minmax(0,1fr))}
.office-worktime-stamp-actions-r036>.office-dashboard-time-quick-action.is-pause:disabled{
  background:var(--office-surface-soft)!important;
  border-color:var(--office-border)!important;
  color:var(--office-text-muted)!important;
  opacity:.62;
  cursor:default;
  box-shadow:none!important;
}
@media(max-width:900px){
  .office-worktime-overview-summary-r036>div:first-child{min-width:0}
}
@media(max-width:700px){
  .office-worktime-stamp-actions-r036{grid-template-columns:1fr}
}

/* r036 Patch 13 – worktime overview alignment and compact LV-style metric typography. */
.office-worktime-overview-body-r036{
  align-items:flex-start!important;
}
.office-worktime-overview-summary-r036{
  grid-template-columns:minmax(340px,2.05fr) repeat(4,minmax(88px,.68fr))!important;
}
.office-worktime-overview-summary-r036>div{
  min-height:58px;
  box-sizing:border-box;
  justify-content:center;
  padding:8px 12px!important;
}
.office-worktime-overview-summary-r036>div:first-child{min-width:340px}
.office-worktime-overview-summary-r036 span,
.office-worktime-timesheet-card .office-worktime-timesheet-summary span{
  font-size:11px!important;
  font-weight:400!important;
  line-height:1.2!important;
}
.office-worktime-overview-summary-r036 strong,
.office-worktime-timesheet-card .office-worktime-timesheet-summary strong{
  font-size:14px!important;
  font-weight:400!important;
  line-height:1.25!important;
  letter-spacing:0!important;
}
.office-worktime-overview-summary-r036>div:first-child strong{
  white-space:normal!important;
  overflow-wrap:normal;
}
.office-worktime-timesheet-card .office-worktime-timesheet-summary>div{
  min-height:58px;
  box-sizing:border-box;
  justify-content:center;
  padding:8px 12px!important;
}
@media(max-width:900px){
  .office-worktime-overview-summary-r036>div:first-child{min-width:0}
}

/* r036 Patch 14 – final vertical parity: overview metrics match the attendance action row exactly. */
.office-worktime-overview-body-r036{
  padding-top:14px!important;
}
.office-worktime-overview-summary-r036>div{
  height:58px;
  min-height:58px;
  max-height:58px;
}

/* r036.1 Patch 01 v2 – mobile worktime ordering and safe card/action layout. */
@media(max-width:700px){
  .office-worktime-overview-grid-r036{
    grid-template-columns:minmax(0,1fr)!important;
    width:100%!important;
    min-width:0!important;
  }
  .office-worktime-stamp-card-r036{order:1}
  .office-worktime-status-card-r036{order:2;min-width:0!important;overflow:hidden}
  .office-worktime-overview-body-r036{width:100%;min-width:0;overflow:visible}
  .office-worktime-overview-summary-r036{
    grid-template-columns:repeat(2,minmax(0,1fr))!important;
    width:100%!important;
    min-width:0!important;
  }
  .office-worktime-overview-summary-r036>div{
    min-width:0!important;
    width:auto!important;
    max-width:none!important;
  }
  .office-worktime-overview-summary-r036>div:first-child{
    grid-column:1/-1!important;
    min-width:0!important;
    height:auto!important;
    min-height:58px!important;
    max-height:none!important;
  }
  .office-worktime-timesheet-actions.office-leave-command-actions{
    display:grid!important;
    grid-template-columns:repeat(2,minmax(0,1fr))!important;
    gap:8px!important;
    width:100%!important;
    min-width:0!important;
  }
  .office-worktime-timesheet-actions.office-leave-command-actions>.office-button{
    width:100%!important;
    min-width:0!important;
    max-width:none!important;
    margin:0!important;
    padding-inline:10px!important;
    justify-content:center!important;
    white-space:nowrap!important;
  }
}

/* r037 storage & backup foundation */
.office-storage-grid-r037{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}
.office-storage-card-r037{min-width:0;padding:14px;border:1px solid var(--office-border);border-radius:12px;background:var(--office-surface-soft);display:grid;gap:12px}
.office-storage-card-head-r037{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}
.office-storage-card-head-r037>div{display:grid;gap:3px;min-width:0}.office-storage-card-head-r037>div>span{font-size:12px;color:var(--office-text-muted);overflow-wrap:anywhere}
.office-storage-metrics-r037{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
.office-storage-metrics-r037>div{display:grid;gap:2px;padding:8px 10px;border:1px solid var(--office-border-subtle);border-radius:9px;background:var(--office-surface)}
.office-storage-metrics-r037 span,.office-storage-last-check-r037,.office-storage-thresholds-r037{font-size:12px;color:var(--office-text-muted)}
.office-storage-metrics-r037 strong{font-size:14px;font-weight:650}
.office-storage-thresholds-r037{margin-top:10px}
.office-volume-retention-grid-r037{margin-top:12px}
@media(max-width:980px){.office-storage-grid-r037{grid-template-columns:1fr}.office-storage-metrics-r037{grid-template-columns:repeat(4,minmax(0,1fr))}}
@media(max-width:700px){.office-storage-metrics-r037{grid-template-columns:1fr 1fr}.office-storage-card-head-r037{display:grid}.office-volume-retention-grid-r037{grid-template-columns:1fr!important}}


/* r038 photo preview: keep portrait/large images inside the visible dialog */
.office-photo-preview-dialog-r019{max-height:calc(100dvh - 32px);display:flex;flex-direction:column;overflow:hidden}
.office-photo-preview-dialog-r019 .office-dialog-header,.office-photo-preview-dialog-r019 .office-dialog-footer{flex:0 0 auto}
.office-photo-preview-dialog-r019 .office-dialog-body{flex:1 1 auto;min-height:0;overflow:hidden;display:flex;align-items:center;justify-content:center}
.office-photo-preview-dialog-r019 .office-photo-editor{width:100%;height:100%;min-height:0;display:flex;align-items:center;justify-content:center}
.office-photo-preview-dialog-r019 .office-photo-editor-stage{width:100%;min-height:0;max-height:calc(100dvh - 190px);display:flex;align-items:center;justify-content:center;overflow:hidden}
.office-photo-preview-dialog-r019 .office-photo-editor-viewport{max-width:100%;max-height:calc(100dvh - 190px);display:flex;align-items:center;justify-content:center}
.office-photo-preview-dialog-r019 .office-photo-editor-viewport img,.office-photo-preview-dialog-r019 .office-photo-editor-viewport canvas{width:auto;height:auto;max-width:100%;max-height:calc(100dvh - 190px);object-fit:contain}
@media(max-width:560px){.office-photo-preview-dialog-r019{max-height:calc(100dvh - 16px)}.office-photo-preview-dialog-r019 .office-photo-editor-stage,.office-photo-preview-dialog-r019 .office-photo-editor-viewport,.office-photo-preview-dialog-r019 .office-photo-editor-viewport img,.office-photo-preview-dialog-r019 .office-photo-editor-viewport canvas{max-height:calc(100dvh - 170px)}}


/* r038 photo upload feedback */
.office-photo-upload-trigger-r038.is-busy{pointer-events:none;cursor:wait;opacity:.72}
.office-photo-upload-status-r038{display:grid;gap:8px;padding:11px 13px;border:1px solid var(--office-border);border-radius:10px;background:var(--office-surface-soft)}
.office-photo-upload-status-copy-r038{display:flex;align-items:center;justify-content:space-between;gap:12px;min-width:0}.office-photo-upload-status-copy-r038 strong{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:13px}.office-photo-upload-status-copy-r038 span{flex:0 0 auto;font-size:12px;color:var(--office-text-muted)}
.office-photo-upload-progress-r038{height:3px;border-radius:999px;background:var(--office-border-subtle);overflow:hidden;position:relative}.office-photo-upload-progress-r038>span{position:absolute;inset:0;width:100%;border-radius:inherit;background:linear-gradient(90deg,transparent 0%,var(--office-primary) 45%,var(--office-primary) 55%,transparent 100%);opacity:.8;transform:translateX(-100%);will-change:transform;animation:office-photo-upload-progress-r038 1.65s cubic-bezier(.4,0,.2,1) infinite}
@keyframes office-photo-upload-progress-r038{0%{transform:translateX(-100%)}65%,100%{transform:translateX(100%)}}
@media(max-width:560px){.office-photo-upload-status-copy-r038{align-items:flex-start;flex-direction:column;gap:3px}}
@media(prefers-reduced-motion:reduce){.office-photo-upload-progress-r038>span{animation:none;transform:none;opacity:.55}}


/* r040 – Arbeitssicherheit, Projekt-Stundensätze und Projektstunden */
.office-construction-safety-r040{
  display:grid;
  gap:18px;
}
.office-construction-safety-r040>.office-form-grid{
  gap:14px;
  margin:0;
}
.office-construction-safety-r040>.office-form-grid>.office-dashboard-panel{
  display:grid;
  gap:4px;
  min-height:72px;
  align-content:center;
}
.office-construction-safety-r040>section.office-dashboard-panel{
  display:grid;
  gap:16px;
  margin:0;
  padding:20px;
}
.office-construction-safety-r040>section.office-dashboard-panel>.office-settings-section-heading{
  margin:0;
}
.office-construction-safety-r040>section.office-dashboard-panel>.office-form-grid{
  gap:14px;
  margin:0;
}
.office-construction-safety-r040>section.office-dashboard-panel>.office-time-list-actions{
  margin:0;
}
.office-construction-safety-r040>section.office-dashboard-panel>.office-table-frame{
  margin:0;
}

.office-project-rate-settings-r040{
  display:grid;
  gap:22px;
  margin-top:22px;
  padding-top:22px;
  border-top:1px solid var(--office-border);
}
.office-project-rate-subsection-r040{
  display:grid;
  gap:16px;
}
.office-project-rate-subsection-r040>.office-settings-section-heading{
  margin:0;
}
.office-project-rate-list-r040,
.office-project-team-list-r040{
  display:grid;
  gap:10px;
}
.office-project-rate-row-r040{
  display:grid;
  grid-template-columns:minmax(240px,1.35fr) minmax(180px,.65fr) auto 40px;
  gap:12px;
  align-items:end;
  padding:12px;
  border:1px solid var(--office-border);
  border-radius:10px;
  background:var(--office-surface-soft);
}
.office-project-team-row-r040{
  display:grid;
  grid-template-columns:minmax(260px,1.25fr) minmax(220px,1fr) minmax(180px,.62fr) auto 40px;
  gap:12px;
  align-items:end;
  padding:12px;
  border:1px solid var(--office-border);
  border-radius:10px;
  background:var(--office-surface-soft);
}
.office-project-rate-origin-r040{
  align-self:end;
  min-height:40px;
  display:flex;
  align-items:center;
}
.office-project-rate-row-r040>.office-icon-button,
.office-project-team-row-r040>.office-icon-button{
  align-self:end;
  margin-bottom:1px;
}
.office-project-team-row-r040 .office-input[readonly]{
  color:var(--office-text);
  background:var(--office-surface);
  cursor:default;
}

.office-project-time-billable-r040{
  display:flex;
  align-items:center;
  gap:10px;
  min-height:34px;
}
.office-project-time-billable-r040 input{
  margin:0;
  flex:0 0 auto;
}
.office-project-time-employee-r040{
  max-width:260px;
}
.office-project-billing-dialog-r040{
  width:min(620px,calc(100vw - 32px));
  max-width:620px;
}
.office-project-billing-dialog-r040 .office-dialog-body{
  display:grid;
  gap:8px;
}
.office-project-time-panel .office-table-select-column{
  width:44px;
}
.office-project-time-panel .office-status-stack small{
  display:block;
  margin-top:3px;
  color:var(--office-text-muted);
  font-size:11px;
}

.office-company-project-time-filters .office-field input,
.office-company-project-time-filters .office-field .office-select-trigger,
.office-company-project-time-filters .office-field .office-combobox-trigger,
.office-company-project-time-filters .office-project-picker-r028>.office-combobox-trigger{
  font-size:14px!important;
  font-weight:400;
}
.office-company-project-time-filters .office-field input,
.office-company-project-time-filters .office-select-trigger,
.office-company-project-time-filters .office-project-picker-r028>.office-combobox-trigger{
  min-height:42px;
}

@media(max-width:1100px){
  .office-project-team-row-r040{grid-template-columns:repeat(2,minmax(0,1fr))}
  .office-project-team-row-r040 .office-project-rate-origin-r040{align-self:center}
}
@media(max-width:820px){
  .office-project-rate-row-r040,
  .office-project-team-row-r040{grid-template-columns:1fr}
  .office-project-rate-row-r040>.office-icon-button,
  .office-project-team-row-r040>.office-icon-button{justify-self:end}
  .office-project-time-employee-r040{max-width:none}
}


/* r039 final UI correction – project rates, contracts, safety and project-time actions. */

/* Tätigkeiten: keep the established project-table/action masters. */
.office-project-time-employee-r040{
  width:100%;
  max-width:none;
  align-self:start;
}
.office-project-time-panel .office-project-time-selection-count-r041{
  flex:0 0 auto;
  min-width:max-content;
  margin-left:auto;
  white-space:nowrap;
}
.office-project-time-panel .office-time-list-actions>.office-card-action-r028 .office-svg-icon{
  width:16px;
  height:16px;
  flex:0 0 16px;
}
.office-project-time-panel .office-table-select-column{
  width:94px!important;
  min-width:94px!important;
  max-width:94px!important;
  box-sizing:border-box!important;
  padding-left:24px!important;
  padding-right:24px!important;
  text-align:center!important;
}
.office-project-time-panel .office-table-select-column>input[type="checkbox"]{
  display:block!important;
  margin-left:auto!important;
  margin-right:auto!important;
}

/* Projekt bearbeiten: flat project subsections, matching the surrounding Office form layout. */
.office-project-rate-settings-r040{
  gap:22px;
}
.office-project-rate-subsection-r040{
  display:grid;
  gap:14px;
  padding:0;
  border:0;
  border-radius:0;
  background:transparent;
}
.office-project-rate-subsection-r040 + .office-project-rate-subsection-r040{
  padding-top:22px;
  border-top:1px solid var(--office-border);
}
.office-project-rate-subsection-r040>.office-settings-section-heading{
  margin:0!important;
  padding:0;
  border:0;
  align-items:flex-start;
}
.office-project-rate-subsection-r040>.office-settings-section-heading .office-time-list-actions{
  gap:8px;
  flex-wrap:wrap;
}
.office-project-rate-subsection-r040>.office-settings-section-heading .office-button{
  min-height:36px;
  height:36px;
}
.office-project-rate-subsection-r040>.office-inline-note{
  margin:0;
  padding:0;
  color:var(--office-text-secondary);
  background:transparent;
  border:0;
}
.office-project-rate-list-r040,
.office-project-team-list-r040{
  display:grid;
  gap:0;
  overflow:hidden;
  border:1px solid var(--office-border);
  border-radius:var(--office-radius-lg);
  background:var(--office-surface);
}
.office-project-rate-row-r040,
.office-project-team-row-r040{
  border:0;
  border-bottom:1px solid var(--office-border);
  border-radius:0;
  background:var(--office-surface);
  padding:12px 14px;
}
.office-project-rate-row-r040:last-child,
.office-project-team-row-r040:last-child{
  border-bottom:0;
}
.office-project-rate-readonly-r041>input{
  color:var(--office-text);
  background:var(--office-surface-soft);
  cursor:default;
}

/* Honorar > Aufträge: outer module card plus standard rules/frames, no nested special cards. */
.office-project-contract-panel-r028 .office-contract-detail-r028{
  display:grid;
  gap:16px;
  padding-top:0;
  border-top:0;
}
.office-project-contract-panel-r028 .office-contract-detail-head-r028{
  align-items:flex-start;
  padding:0 0 16px;
  border:0;
  border-bottom:1px solid var(--office-border);
  border-radius:0;
  background:transparent;
}
.office-project-contract-panel-r028 .office-contract-data-grid-r028{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:1px;
  margin:0;
  padding:0;
  overflow:hidden;
  border:1px solid var(--office-border);
  border-radius:var(--office-radius-lg);
  background:var(--office-border);
}
.office-project-contract-panel-r028 .office-contract-data-grid-r028>div{
  min-width:0;
  padding:12px 14px;
  display:grid;
  align-content:start;
  gap:4px;
  background:var(--office-surface);
}
.office-project-contract-panel-r028 .office-contract-data-grid-r028 dt{
  margin:0;
  color:var(--office-text-muted);
  font-size:11px;
  font-weight:600;
  line-height:1.25;
}
.office-project-contract-panel-r028 .office-contract-data-grid-r028 dd{
  margin:0;
  color:var(--office-text);
  font-size:14px;
  font-weight:500;
  line-height:1.35;
  overflow-wrap:anywhere;
}
.office-project-contract-panel-r028 .office-contract-detail-copy-r028{
  display:grid;
  grid-template-columns:minmax(0,1.35fr) minmax(0,1fr);
  gap:1px;
  padding:0;
  overflow:hidden;
  border:1px solid var(--office-border);
  border-radius:var(--office-radius-lg);
  background:var(--office-border);
}
.office-project-contract-panel-r028 .office-contract-detail-copy-r028>div{
  min-width:0;
  padding:12px 14px;
  border:0;
  border-radius:0;
  background:var(--office-surface);
}
.office-project-contract-panel-r028 .office-contract-subsection-r019{
  margin-top:18px!important;
  padding:18px 0 0!important;
  border:0!important;
  border-top:1px solid var(--office-border)!important;
  border-radius:0!important;
  background:transparent!important;
}
.office-project-contract-panel-r028 .office-contract-editor-r023>.office-form-grid{
  margin:0!important;
  padding:18px 0 0!important;
  border:0!important;
  border-top:1px solid var(--office-border)!important;
  border-radius:0!important;
  background:transparent!important;
}
.office-project-contract-panel-r028 .office-contract-subsection-r019 .office-settings-section-heading{
  margin:0 0 12px!important;
}
.office-project-contract-panel-r028 .office-contract-attachment-list-r019{
  border-radius:var(--office-radius-lg);
}

/* Bauleitung > Arbeitssicherheit: structured Office cards with consistent KPI rhythm. */
.office-construction-safety-r040{
  display:grid;
  gap:16px;
}
.office-construction-safety-r040>.office-form-grid:first-of-type{
  margin:0!important;
  gap:12px!important;
}
.office-construction-safety-r040>.office-form-grid:first-of-type>.office-dashboard-panel{
  min-height:96px;
  padding:14px 16px!important;
  display:grid;
  grid-template-rows:32px 22px 16px;
  align-content:start;
  gap:2px;
  border:1px solid var(--office-border)!important;
  border-radius:var(--office-radius-lg)!important;
  background:var(--office-surface)!important;
  box-shadow:none!important;
}
.office-construction-safety-r040>.office-form-grid:first-of-type>.office-dashboard-panel>.office-muted{
  min-height:32px;
  display:flex;
  align-items:flex-start;
  line-height:1.25;
}
.office-construction-safety-r040>.office-form-grid:first-of-type>.office-dashboard-panel>strong{
  min-height:22px;
  display:flex;
  align-items:center;
  line-height:1.2;
}
.office-construction-safety-r040>.office-form-grid:first-of-type>.office-dashboard-panel>small{
  min-height:16px;
  display:flex;
  align-items:center;
  line-height:1.2;
  color:var(--office-text-muted);
}
.office-construction-safety-r040>section.office-dashboard-panel{
  display:grid;
  gap:14px;
  margin:0!important;
  padding:18px!important;
  border:1px solid var(--office-border)!important;
  border-radius:var(--office-radius-lg)!important;
  background:var(--office-surface)!important;
  box-shadow:none!important;
}
.office-construction-safety-r040>section.office-dashboard-panel>.office-settings-section-heading{
  margin:0!important;
  padding:0;
  border:0;
}
.office-construction-safety-r040>section.office-dashboard-panel>.office-form-grid{
  margin:0!important;
  gap:14px!important;
}
.office-construction-safety-r040>section.office-dashboard-panel>.office-time-list-actions{
  margin:0!important;
  justify-content:flex-end;
}
.office-construction-safety-r040>section.office-dashboard-panel>.office-time-list-actions>.office-button{
  min-height:36px!important;
  height:36px!important;
}
.office-construction-safety-r040>section.office-dashboard-panel>.office-table-frame{
  margin:0!important;
  overflow:hidden;
  border-radius:var(--office-radius-lg);
}
.office-construction-safety-r040 .office-checkbox-field{
  display:flex!important;
  align-items:center!important;
  gap:8px!important;
}
.office-construction-safety-r040 .office-checkbox-field>input[type="checkbox"]{
  flex:0 0 16px!important;
}
.office-construction-safety-r040 .office-checkbox-field>span{
  display:inline-block;
  margin:0!important;
}

@media(max-width:1180px){
  .office-project-contract-panel-r028 .office-contract-data-grid-r028{grid-template-columns:repeat(2,minmax(0,1fr))}
  .office-project-contract-panel-r028 .office-contract-detail-copy-r028{grid-template-columns:1fr}
}
@media(max-width:820px){
  .office-project-rate-subsection-r040{padding:14px}
}
@media(max-width:720px){
  .office-project-contract-panel-r028 .office-contract-data-grid-r028{grid-template-columns:1fr}
  .office-project-contract-panel-r028 .office-contract-detail-head-r028{display:grid;align-items:start}
  .office-project-contract-panel-r028 .office-contract-detail-head-r028 .office-inline-actions{justify-content:flex-start;flex-wrap:wrap}
  .office-construction-safety-r040{gap:16px}
}


/* r039 settings/leave polish – permissions, search, calendar filters and 13-inch layouts. */
.office-row-menu-trigger:disabled{
  opacity:.38;
  cursor:default;
  background:var(--office-surface-soft);
}
.office-row-menu-trigger:disabled:hover{
  border-color:var(--office-border);
  background:var(--office-surface-soft);
}

.office-settings-search-r041{
  width:min(560px,100%);
  margin:0 0 24px;
}
.office-settings-search-r041>input{
  width:100%;
}

.office-holiday-list-filters-r041{
  display:grid;
  grid-template-columns:160px 190px 210px;
  gap:10px;
  align-items:end;
  justify-content:start;
  margin:0;
}
.office-holiday-list-filters-r041 .office-field{
  margin:0;
  min-width:0;
}

.office-workforce-assignment-table-r034 th:last-child,
.office-workforce-assignment-table-r034 td:last-child{
  width:132px!important;
  min-width:132px!important;
}
.office-workforce-save-cell-r041{
  text-align:center;
  white-space:nowrap;
}
.office-workforce-save-button-r041{
  min-width:90px;
  white-space:nowrap;
}

@media(max-width:1320px){
  .office-holiday-layout-r034{
    grid-template-columns:1fr!important;
  }
  .office-holiday-create-grid-r034{
    grid-template-columns:160px minmax(220px,1fr) 190px!important;
  }
  .office-holiday-create-grid-r034>.office-button{
    grid-column:1/-1;
    justify-self:end;
  }
}
@media(max-width:900px){
  .office-holiday-list-filters-r041{
    grid-template-columns:repeat(3,minmax(0,1fr));
  }
  .office-workforce-assignment-table-r034 table{
    min-width:860px!important;
  }
}
@media(max-width:720px){
  .office-holiday-list-filters-r041{
    grid-template-columns:1fr;
  }
  .office-holiday-create-grid-r034{
    grid-template-columns:1fr!important;
  }
  .office-holiday-create-grid-r034>.office-button{
    grid-column:auto;
    justify-self:stretch;
  }
}


/* r041 – full construction safety assessment configurator. */
.office-safety-assessment-empty-r041{margin:0!important;padding:16px!important;border:1px dashed var(--office-border)!important;border-radius:var(--office-radius-lg)!important}
.office-safety-assessment-dialog-r041{width:min(1180px,calc(100vw - 48px))!important;max-width:1180px!important}
.office-safety-assessment-body-r041{display:grid;gap:18px}
.office-safety-assessment-intro-r041{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
.office-safety-assessment-intro-r041>div,.office-safety-template-version-r041{display:grid;gap:3px;min-width:0;padding:12px 14px;border:1px solid var(--office-border);border-radius:var(--office-radius-lg);background:var(--office-surface-soft)}
.office-safety-assessment-intro-r041 span,.office-safety-template-version-r041>span{color:var(--office-text-muted);font-size:11px}
.office-safety-assessment-intro-r041 strong,.office-safety-template-version-r041>strong{font-size:13px}
.office-safety-assessment-intro-r041 small,.office-safety-template-version-r041>small{color:var(--office-text-muted);font-size:11px;line-height:1.35}
.office-safety-assessment-items-r041,.office-safety-template-blocks-r041{display:grid;gap:14px}
.office-safety-assessment-item-r041{display:grid;gap:14px;padding:16px;border:1px solid var(--office-border);border-radius:var(--office-radius-lg);background:var(--office-surface)}
.office-safety-assessment-item-head-r041,.office-safety-template-block-head-r041{display:flex;align-items:center;justify-content:space-between;gap:12px}
.office-safety-assessment-item-head-r041>div{display:grid;gap:2px}
.office-safety-assessment-item-head-r041 span{color:var(--office-text-muted);font-size:11px}
.office-safety-assessment-item-head-r041 strong{font-size:14px}
.office-safety-assessment-add-r041{display:flex;justify-content:flex-start}
.office-safety-participant-combo-r041{width:min(560px,100%)}
.office-safety-participant-popover-r041{min-width:min(560px,calc(100vw - 32px))}
.office-safety-participant-list-r041{margin-top:8px}
.office-safety-template-settings-r041{gap:16px!important}
.office-safety-template-meta-r041{display:grid;grid-template-columns:minmax(260px,520px) 180px;gap:12px;align-items:end}
.office-safety-template-block-r041{gap:12px!important}
.office-safety-template-actions-r041{justify-content:space-between!important}
@media(max-width:800px){.office-safety-assessment-dialog-r041{width:calc(100vw - 24px)!important}.office-safety-assessment-intro-r041,.office-safety-template-meta-r041{grid-template-columns:1fr}}


/* r041 – project navigation has exactly one active surface during rerender/measurement. */
.office-project-tabs:not(.is-nav-ready-r033)::before{opacity:0!important}


/* r042 – safety overview density and assessment/revision semantics. */
.office-construction-safety-r040>.office-form-grid:first-of-type>.office-dashboard-panel{
  min-height:76px!important;
  padding:12px 16px!important;
  grid-template-rows:26px 24px!important;
  align-content:center!important;
  gap:2px!important;
}
.office-construction-safety-r040>.office-form-grid:first-of-type>.office-dashboard-panel>.office-muted{min-height:0!important}
.office-construction-safety-r040>.office-form-grid:first-of-type>.office-dashboard-panel>strong{min-height:0!important;gap:4px}
.office-construction-safety-r040>.office-form-grid:first-of-type>.office-dashboard-panel>strong>small{color:var(--office-text-muted);font-size:12px;font-weight:500}
.office-construction-safety-r040>section.office-dashboard-panel{gap:12px!important;padding:14px 18px 18px!important}
.office-construction-safety-r040>section.office-dashboard-panel>.office-settings-section-heading{min-height:0!important;margin:0!important}
.office-safety-current-assessment-r042{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:1px;overflow:hidden;border:1px solid var(--office-border);border-radius:var(--office-radius-lg);background:var(--office-border)}
.office-safety-current-assessment-r042>div{display:grid;gap:3px;padding:12px 14px;background:var(--office-surface)}
.office-safety-current-assessment-r042 span{color:var(--office-text-muted);font-size:11px}
.office-safety-current-assessment-r042 strong{font-size:13px;font-weight:650}
.office-safety-revision-heading-r042{margin-top:2px}
.office-safety-revision-heading-r042 h4{margin:0;font-size:14px}
.office-safety-revision-heading-r042 p{margin:4px 0 0;color:var(--office-text-muted);font-size:12px}
.office-safety-revision-note-r042{margin:0!important}
@media(max-width:900px){.office-safety-current-assessment-r042{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:620px){.office-safety-current-assessment-r042{grid-template-columns:1fr}}


/* r039 UI polish: offer project picker + diary safety layout */
.office-new-offer-choice-r027{overflow:visible}
.office-new-offer-choice-r027 .office-dialog-body{overflow:visible}
.office-new-offer-project-r027{position:relative;z-index:8}
.office-new-offer-project-r027 .office-client-combobox{position:relative;z-index:8}
.office-new-offer-project-r027 .office-combobox-popover{z-index:520;max-height:min(430px,calc(100dvh - 180px))}
.office-diary-safety-grid-r039{grid-template-columns:minmax(0,1fr)!important;gap:14px}
.office-diary-safety-checkbox-r039{display:inline-flex!important;align-items:center;gap:10px!important;width:max-content;max-width:100%;margin:0}
.office-diary-safety-note-r039{grid-column:1/-1!important;width:100%;margin:0}
.office-diary-safety-note-r039 .office-textarea{width:100%}


/* r039 photo multi-select */
.office-photo-card-r019{position:relative}
.office-photo-card-r019.is-selected-r039{border-color:var(--office-primary);box-shadow:0 0 0 2px color-mix(in srgb,var(--office-primary) 18%,transparent)}
.office-photo-select-r039{position:absolute;right:8px;top:8px;z-index:6;display:grid;place-items:center;width:30px;height:30px;border-radius:8px;background:rgba(255,255,255,.94);border:1px solid rgba(31,41,55,.14);box-shadow:0 2px 8px rgba(15,23,42,.12);cursor:pointer}
.office-photo-select-r039 input{width:16px;height:16px;margin:0;accent-color:var(--office-primary);cursor:pointer}
@media(max-width:860px){.office-photo-select-r039{width:34px;height:34px}}

.office-photo-card-r019 .office-photo-annotated-r019{right:46px}


/* r039 quick-capture feedback polish */
.office-qc-inbox-feedback-r039{margin:0 0 14px!important}
.office-qc-feedback-link-r039{display:inline-flex;align-items:center;gap:4px;margin-left:.35em;color:var(--office-text)!important;font-weight:600;text-decoration:none}
.office-qc-feedback-link-r039:hover,.office-qc-feedback-link-r039:focus-visible{color:var(--office-text)!important;text-decoration:underline}
.office-new-offer-project-popover-r039{z-index:2147483000}


/* r039 diary photo picker filters */
.office-diary-photo-picker-dialog-r039 .office-dialog-body{display:grid;gap:12px}
.office-diary-photo-picker-filters-r039{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr) auto;gap:10px;align-items:end}
.office-diary-photo-picker-filters-r039 .office-field{margin:0;min-width:0}
.office-diary-photo-picker-result-r039{padding:0 2px 11px;white-space:nowrap;font-size:12px}
.office-diary-photo-picker-item-r039{grid-template-rows:112px auto auto!important;gap:4px!important}
.office-diary-photo-picker-date-r039{font-size:11px!important;font-weight:600;color:var(--office-text-secondary);overflow:visible!important;text-overflow:clip!important;white-space:nowrap!important}
.office-diary-photo-picker-name-r039{font-size:11px!important;color:var(--office-text-muted);overflow:hidden!important;text-overflow:ellipsis!important;white-space:nowrap!important}
@media(max-width:700px){
  .office-diary-photo-picker-filters-r039{grid-template-columns:1fr 1fr}
  .office-diary-photo-picker-result-r039{grid-column:1/-1;padding:0}
}


/* r039 tools hub */
.office-tools-page-r039{display:grid;gap:22px}
.office-tools-group-r039{display:grid;gap:12px}
.office-tools-group-heading-r039{display:flex;align-items:end;justify-content:space-between;gap:12px}
.office-tools-group-heading-r039 h2{margin:0;font-size:18px}
.office-tools-group-heading-r039 p{margin:3px 0 0;color:var(--office-text-muted);font-size:13px}
.office-tools-grid-r039{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}
.office-tool-card-r039{position:relative;min-height:154px;padding:18px;border:1px solid var(--office-border);border-radius:16px;background:var(--office-surface);color:var(--office-text);text-decoration:none;display:grid;grid-template-columns:52px minmax(0,1fr) auto;grid-template-rows:auto 1fr;column-gap:14px;row-gap:8px;align-items:start;transition:transform .16s ease,box-shadow .16s ease,border-color .16s ease}
.office-tool-card-r039:hover{transform:translateY(-1px);border-color:var(--office-border-strong);box-shadow:0 10px 28px rgba(15,23,42,.08)}
.office-tool-card-icon-r039{grid-row:1/3;width:52px;height:52px;border-radius:15px;background:var(--office-surface-soft);display:grid;place-items:center}
.office-tool-card-icon-r039 .office-svg-icon{width:25px;height:25px}
.office-tool-card-copy-r039{min-width:0}
.office-tool-card-copy-r039 strong{display:block;font-size:16px;margin-bottom:5px}
.office-tool-card-copy-r039 span{display:block;color:var(--office-text-muted);font-size:13px;line-height:1.45}
.office-tool-card-arrow-r039{align-self:center;width:18px;height:18px;opacity:.58}
.office-tool-card-badge-r039{position:absolute;right:14px;top:14px;padding:4px 7px;border-radius:999px;background:var(--office-surface-soft);color:var(--office-text-muted);font-size:11px;font-weight:600}
.office-tool-card-r039.has-badge{padding-top:22px}
.office-tool-placeholder-r039{min-height:420px;display:grid;place-items:center;text-align:center;padding:40px}
.office-tool-placeholder-r039 .office-svg-icon{width:42px;height:42px;opacity:.45;margin-bottom:12px}
.office-tool-placeholder-r039 h2{margin:0 0 8px}.office-tool-placeholder-r039 p{max-width:560px;margin:0 auto 18px;color:var(--office-text-muted);line-height:1.5}
@media(max-width:1050px){.office-tools-grid-r039{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:680px){.office-tools-grid-r039{grid-template-columns:1fr}.office-tool-card-r039{min-height:132px}}


/* r039 technical calculation tools */
.office-technical-tool-page-r039{display:grid;gap:18px}
.office-tech-grid-r039{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}
.office-tech-card-r039{padding:18px;display:grid;gap:14px}
.office-tech-result-grid-r039{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:9px}
.office-tech-result-grid-r039.is-single{grid-template-columns:minmax(0,1fr)}
.office-tech-result-r039{padding:12px 13px;border:1px solid var(--office-border);border-radius:10px;background:var(--office-surface-soft);display:grid;gap:5px}
.office-tech-result-r039>span{font-size:12px;color:var(--office-text-muted)}
.office-tech-result-r039 strong{font-size:18px;font-variant-numeric:tabular-nums}.office-tech-result-r039 small{font-size:12px;font-weight:500;color:var(--office-text-muted)}
.office-tech-hint-r039{margin:0}
.office-tech-info-grid-r039{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}
.office-tech-info-grid-r039>div{padding:14px;border:1px solid var(--office-border);border-radius:10px;display:grid;gap:4px}
.office-tech-info-grid-r039 strong{font-size:18px}.office-tech-info-grid-r039 small{color:var(--office-text-muted)}
.office-tech-details-r039{padding:0;overflow:hidden}
.office-tech-details-r039>summary{list-style:none;cursor:pointer;min-height:58px;padding:0 18px;display:flex;align-items:center;justify-content:space-between;gap:12px}
.office-tech-details-r039>summary::-webkit-details-marker{display:none}
.office-tech-details-r039>summary>div{display:grid;gap:2px}.office-tech-details-r039>summary span:not(.office-svg-icon){color:var(--office-text-muted);font-size:12px}
.office-tech-details-r039>summary .office-svg-icon{width:16px;height:16px;transition:transform .15s ease}.office-tech-details-r039[open]>summary .office-svg-icon{transform:rotate(180deg)}
.office-tech-details-body-r039{padding:0 18px 18px;display:grid;gap:14px}
.office-tech-subcard-r039{padding:14px;border:1px solid var(--office-border);border-radius:11px;background:var(--office-surface)}.office-tech-subcard-r039 h3{margin:0 0 12px}
.office-tech-reference-grid-r039{display:grid;grid-template-columns:1fr 1.3fr;gap:18px}.office-tech-reference-grid-r039 h3{margin:0 0 8px}.office-tech-reference-grid-r039 table{width:100%;border-collapse:collapse}.office-tech-reference-grid-r039 th,.office-tech-reference-grid-r039 td{padding:6px 8px;border-bottom:1px solid var(--office-border);text-align:left;font-size:12px}
@media(max-width:900px){.office-tech-grid-r039{grid-template-columns:1fr}.office-tech-info-grid-r039{grid-template-columns:1fr}.office-tech-result-grid-r039{grid-template-columns:repeat(2,minmax(0,1fr))}.office-tech-reference-grid-r039{grid-template-columns:1fr}}
@media(max-width:600px){.office-tech-result-grid-r039{grid-template-columns:1fr}}


/* r039 duct mass calculation */
.office-duct-tool-page-r039{display:grid;gap:16px}
.office-duct-list-card-r039{padding:18px;display:grid;gap:12px}
.office-duct-rule-note-r039{margin:0}
.office-duct-table-wrap-r039{overflow:auto;border:1px solid var(--office-border);border-radius:11px}
.office-duct-table-r039{width:100%;min-width:1880px;border-collapse:collapse;background:var(--office-surface)}
.office-duct-table-r039 th,.office-duct-table-r039 td{padding:7px 6px;border-right:1px solid var(--office-table-divider);border-bottom:1px solid var(--office-table-divider);vertical-align:middle}
.office-duct-table-r039 th{position:sticky;top:0;z-index:2;background:var(--office-table-head-bg);font-size:12px;white-space:nowrap;text-align:left}
.office-duct-table-r039 td>.office-field,.office-duct-table-r039 td label{margin:0}
.office-duct-table-r039 input,.office-duct-table-r039 select,.office-duct-table-r039 .office-number-input{min-width:82px}
.office-duct-table-r039 td:nth-child(2){min-width:190px}.office-duct-table-r039 td:nth-child(5){min-width:180px}
.office-duct-result-cell-r039{white-space:nowrap;font-variant-numeric:tabular-nums;text-align:right}.office-duct-result-cell-r039.is-strong{font-weight:700}
.office-duct-row-actions-r039{display:flex;gap:4px}
.office-duct-helper-row-r039 td{padding:5px 10px;background:var(--office-surface-soft);color:var(--office-text-muted);font-size:11px}
.office-duct-kpis-r039{grid-template-columns:repeat(3,minmax(0,1fr))}
.office-duct-notes-r039{margin:0;padding-left:20px;display:grid;gap:7px;color:var(--office-text-secondary);line-height:1.45}
@media(max-width:700px){.office-duct-kpis-r039{grid-template-columns:1fr}}
