: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: #e5e7ea;
    --office-border-strong: #d8dadd;

    --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 !important;
        animation-duration: .01ms !important;
        animation-iteration-count: 1 !important;
        transition-duration: .01ms !important;
    }
}

@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:0;
    border-radius:8px;
    background:#0f6cbd;
    color:#fff;
    font-size:14px;
    font-weight:700;
    box-shadow:0 4px 12px rgba(15,108,189,.19);
    cursor:pointer;
    transition:background-color 160ms ease,transform 160ms ease,box-shadow 160ms ease;
}
.office-login-submit:hover { background:#115ea3; box-shadow:0 5px 16px rgba(15,108,189,.23); }
.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 !important;
    width: 1px !important;
    height: 1px !important;
    padding: 0 !important;
    margin: -1px !important;
    overflow: hidden !important;
    clip: rect(0, 0, 0, 0) !important;
    white-space: nowrap !important;
    border: 0 !important;
}

.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 !important;
}

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

.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 !important;
}

h1[tabindex="-1"]:focus,
h1:focus {
    outline: none !important;
}

/* 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 !important;
}

.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 !important;
}

/* 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 !important;
    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 !important;
    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 !important;
    display: none !important;
}

/* 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 !important;
        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 !important;
    }

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

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

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

/* 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 !important;
    background-image: none !important;
}

.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 !important;
    background-image: none !important;
    -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 !important;
    height: 13px !important;
    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 !important;
    box-shadow: none !important;
}

/* 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 !important;
    max-height: none !important;
    opacity: 1 !important;
    visibility: visible !important;
    overflow: visible !important;
}

.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 !important;
    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 !important;
}

.office-time-actions {
    margin: 0 !important;
    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 !important;
    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 !important;
    font-weight: 500 !important;
    line-height: 1;
}

.office-time-live {
    color: #545454 !important;
    font-size: 19px !important;
    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 !important;
}

.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 !important;
    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) !important;
    border-color: var(--office-primary-button) !important;
}

.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) !important;
    border-color: var(--office-primary-button-hover) !important;
}

.office-button.is-primary:active,
a.office-button.is-primary:active,
button.office-button.is-primary:active {
    background: var(--office-primary-button-active) !important;
    border-color: var(--office-primary-button-active) !important;
}

.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 !important;
    }

    body,
    .office-main,
    .office-page {
        background: #fff !important;
        margin: 0 !important;
        padding: 0 !important;
    }

    .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 !important;
    padding: 0 16px 0 11px !important;
    gap: 5px !important;
    justify-content: flex-start !important;
    font-size: 14px !important;
    line-height: 1 !important;
    font-weight: 600 !important;
}

.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 !important;
    height: 18px !important;
    margin: 0 !important;
    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 !important;
}

.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 !important;
    font-size: 14px !important;
    font-weight: 600 !important;
    line-height: 1 !important;
}

/* 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 !important; }
.office-invoice-table-frame .office-table-viewport { overflow: visible !important; }
.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 !important;
    grid-template-columns: auto minmax(0, 1fr) !important;
    gap: 16px !important;
    align-items: center !important;
}
.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)) !important; }
.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) !important; 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 !important; }
    .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 !important;
    flex-direction:column;
    gap:14px !important;
    align-items:stretch !important;
}
.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 !important;
    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 !important;
}
.office-dashboard-time-actions-new .office-time-action.is-pause:disabled {
    background:#5d5d5d !important;
    border-color:#5d5d5d !important;
    color:rgba(255,255,255,.72) !important;
    opacity:1 !important;
    cursor:not-allowed;
}
.office-dashboard-time-actions-new .office-time-action.is-pause:disabled .office-svg-icon {
    color:rgba(255,255,255,.72) !important;
    opacity:1 !important;
}
@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!important;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!important}.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)!important;border-radius:10px;background:var(--office-surface)!important}
.office-leave-settings-button:hover{background:var(--office-surface-soft)!important}
.office-leave-person-markers{bottom:3px;gap:3px}
.office-leave-person-markers i{width:4px;height:4px;border-radius:50%;box-shadow:none!important;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))!important;box-shadow:none!important;background:transparent!important}
.office-leave-day.is-today::before{display:none!important}
.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!important;gap:9px!important}
.office-context-back-title .office-context-back-icon{width:22px!important;height:22px!important}
/* r013 Dashboard Zeiterfassung: Titel/Uhrzeit oben, Aktionen in eigener Zeile */
.office-dashboard-time-heading{display:flex!important;align-items:center!important;justify-content:space-between!important;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!important}

/* r013 hotfix – Dashboard Zeiterfassung / Rechnungsmenü */
.office-dashboard-top-grid-compact{grid-template-columns:minmax(0,1.55fr) minmax(500px,.8fr)!important}
.office-dashboard-time-actions-new{grid-template-columns:repeat(3,minmax(138px,1fr))!important;gap:10px!important}
.office-dashboard-time-actions-new .office-time-action{min-height:46px!important;padding:0 14px!important;font-size:14px!important;font-weight:600!important;white-space:nowrap}
.office-dashboard-time-actions-new .office-time-action.is-pause{background:#f2f3f4!important;border-color:#d9dde1!important;color:#50555a!important}
.office-dashboard-time-actions-new .office-time-action.is-pause .office-svg-icon{color:#6b7075!important}
.office-dashboard-time-actions-new .office-time-action.is-pause:disabled{background:#f4f5f6!important;border-color:#e0e3e6!important;color:#9aa0a5!important;opacity:1!important}
.office-dashboard-time-actions-new .office-time-action.is-pause:disabled .office-svg-icon{color:#9aa0a5!important;opacity:1!important}
.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!important}.office-dashboard-time-actions-new{grid-template-columns:repeat(3,minmax(0,1fr))!important}}

/* 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!important;padding:5px 0!important}.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))!important;gap:10px!important}.office-photo-card .office-photo-image-wrap>img{aspect-ratio:1/1}
}
@media(max-width:460px){
 .office-photo-grid{grid-template-columns:1fr!important}.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-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!important;grid-template-columns:repeat(3,minmax(0,1fr))!important;gap:10px!important;width:100%!important}
.office-dashboard-time-actions-new .office-time-action{width:100%!important;min-height:52px!important;justify-content:center!important;padding:0 14px!important;font-size:14px!important;font-weight:650!important}
.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!important}.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!important;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 !important;
    grid-template-columns: repeat(auto-fit, minmax(150px, 1fr)) !important;
    gap: 8px !important;
    width: 100% !important;
    margin: 0 !important;
}
.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 !important; }
}

/* r015 final UI correction – dashboard time parity, project/offer action rows */
.office-dashboard-time-body-final {
    display: block !important;
}
.office-dashboard-time-actions-layout {
    display: grid !important;
    grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
    gap: 8px !important;
    width: 100% !important;
    margin: 0 !important;
    flex-wrap: nowrap !important;
}
.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 !important;
    grid-auto-flow: column;
    grid-auto-columns: 34px;
    flex-wrap: nowrap;
}
.office-offer-actions-row {
    grid-template-columns: minmax(0, 1fr) 34px 34px !important;
}
.office-project-diary-button {
    width: 34px;
    min-width: 34px;
    height: 34px;
    margin-left: 0 !important;
    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)) !important; }
    .office-project-actions-row { grid-template-columns: minmax(0, 1fr) 32px 32px 32px !important; grid-auto-columns: 32px; }
    .office-offer-actions-row { grid-template-columns: minmax(0, 1fr) 32px 32px !important; }
    .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 !important;
    align-items: center !important;
    flex-wrap: nowrap !important;
    gap: 7px !important;
}
.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) !important;
        gap: 8px !important;
    }
}
.office-dashboard-time-actions-layout .office-time-action {
    min-height: 58px !important;
    height: 58px !important;
    padding: 9px 12px !important;
    border-radius: 10px !important;
    font-size: 12.5px !important;
    font-weight: 620 !important;
    line-height: 1.2 !important;
}
.office-dashboard-time-actions-layout .office-time-action.is-pause {
    padding-inline: 10px !important;
}
@media (max-width: 760px) {
    .office-dashboard-time-actions-layout {
        grid-template-columns: 1fr !important;
    }
}
.office-pin-button[aria-pressed="true"] {
    border-color: var(--office-primary) !important;
    background: var(--office-primary) !important;
    color: #fff !important;
}
.office-pin-button[aria-pressed="true"]:hover {
    border-color: var(--office-primary) !important;
    background: color-mix(in srgb, var(--office-primary) 88%, #000) !important;
    color: #fff !important;
}


/* 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 !important;
    min-height: 58px !important;
    height: 58px !important;
    padding-top: 9px !important;
    padding-bottom: 9px !important;
}

/* Do not rely on framework bool-string casing for visual pinned state. */
.office-pin-button.is-pinned {
    border-color: var(--office-primary) !important;
    background: var(--office-primary) !important;
    color: #fff !important;
}
.office-pin-button.is-pinned:hover {
    border-color: var(--office-primary) !important;
    background: color-mix(in srgb, var(--office-primary) 88%, #000) !important;
    color: #fff !important;
}
.office-pin-button.is-pinned .is-outline { display: none !important; }
.office-pin-button.is-pinned .is-filled { display: inline-block !important; }

/* 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 !important;
    height: 78px !important;
    min-height: 78px !important;
    padding: 9px 11px !important;
    border-radius: 10px !important;
    font-size: 12.5px !important;
    font-weight: 620 !important;
    line-height: 1.2 !important;
}
@media (min-width: 761px) {
    .office-dashboard-time-actions-layout {
        grid-template-columns: minmax(0, 1fr) minmax(92px, .68fr) minmax(0, 1.18fr) !important;
        gap: 8px !important;
    }
}
.office-dashboard-time-actions-layout .office-time-action.is-pause {
    padding-inline: 8px !important;
}

/* 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) !important;
    border-color: #b9c9d9 !important;
    background: #f2f7fb !important;
}
.office-pin-button.is-pinned:hover,
.office-pin-button[aria-pressed="true"]:hover {
    color: var(--office-primary) !important;
    border-color: #aebfd0 !important;
    background: #eaf2f9 !important;
}
.office-pin-button.is-pinned .is-outline,
.office-pin-button[aria-pressed="true"] .is-outline { display: none !important; }
.office-pin-button.is-pinned .is-filled,
.office-pin-button[aria-pressed="true"] .is-filled { display: inline-block !important; }

.office-offer-card.is-lost {
    background: color-mix(in srgb, var(--office-surface-soft) 82%, #e4e6e8) !important;
    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) !important; }
.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 !important; 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 !important; overflow:hidden; }
.office-archive-group > .office-collection-heading { padding:16px 18px !important; }
.office-archive-group > .office-collapsible-body { padding:0 18px 18px !important; }


/* 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 !important;
    height: 58px !important;
    min-height: 58px !important;
    max-height: 58px !important;
    padding: 9px 11px !important;
    border-radius: 10px !important;
}


/* 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 !important;
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    gap: 10px !important;
    width: 100% !important;
    align-items: center !important;
}
.office-dashboard-time-actions-layout .office-time-action {
    box-sizing: border-box !important;
    width: 100% !important;
    height: 58px !important;
    min-height: 58px !important;
    max-height: 58px !important;
    margin: 0 !important;
    justify-content: center !important;
}
@media (max-width: 760px) {
    .office-dashboard-time-actions-layout { grid-template-columns: 1fr 1fr !important; }
}

/* 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) !important;
        gap: 18px !important;
    }
}


/* 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 !important;
    height: 78px !important;
    min-height: 78px !important;
    max-height: 78px !important;
    padding: 9px 11px !important;
}


/* 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 !important;
    height: auto !important;
    max-height: none !important;
    padding: 9px 11px !important;
    box-sizing: content-box !important;
    grid-template-columns: 20px minmax(0, auto) !important;
    justify-content: center !important;
    justify-items: center !important;
    align-items: center !important;
    column-gap: 8px !important;
    text-align: center !important;
}
.office-dashboard-time-actions-layout .office-dashboard-time-quick-action .office-svg-icon {
    width: 17px !important;
    height: 17px !important;
}
.office-dashboard-time-actions-layout .office-dashboard-time-quick-action > span:not(.office-svg-icon) {
    font-size: 12.5px !important;
    font-weight: 620 !important;
    line-height: 1.2 !important;
    white-space: nowrap !important;
}
.office-dashboard-time-actions-layout .office-dashboard-time-quick-action.is-check-in {
    background: color-mix(in srgb, #2f8a4b 11%, var(--office-surface)) !important;
    border-color: color-mix(in srgb, #2f8a4b 35%, var(--office-border)) !important;
    color: #276e3d !important;
}
.office-dashboard-time-actions-layout .office-dashboard-time-quick-action.is-check-out {
    background: var(--office-primary) !important;
    border-color: var(--office-primary) !important;
    color: #fff !important;
}
.office-dashboard-time-actions-layout .office-dashboard-time-quick-action.is-manual {
    background: var(--office-surface-soft) !important;
    border-color: var(--office-border) !important;
    color: var(--office-text) !important;
}


/* 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 !important;
    min-height: 57px !important;
    height: 57px !important;
    max-height: 57px !important;
    padding: 10px 12px !important;
    margin: 0 !important;
    border-width: 1px !important;
    border-style: solid !important;
    border-radius: var(--office-radius-md) !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    gap: 9px !important;
    width: auto !important;
    text-align: center !important;
    line-height: normal !important;
}
.office-dashboard-time-actions-layout .office-dashboard-time-quick-action.is-check-in {
    background: color-mix(in srgb, #2f8a4b 11%, var(--office-surface)) !important;
    border-color: color-mix(in srgb, #2f8a4b 35%, var(--office-border)) !important;
    color: #276e3d !important;
}
.office-dashboard-time-actions-layout .office-dashboard-time-quick-action.is-check-out {
    background: var(--office-primary) !important;
    border-color: var(--office-primary) !important;
    color: #fff !important;
}
.office-dashboard-time-actions-layout .office-dashboard-time-quick-action.is-manual {
    background: #fff !important;
    border-color: var(--office-border) !important;
    color: var(--office-text) !important;
}

/* 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 !important;
    height: 78px !important;
    min-height: 78px !important;
    max-height: 78px !important;
    padding-top: 9px !important;
    padding-bottom: 9px !important;
    margin-top: 0 !important;
    margin-bottom: 0 !important;
    align-self: center !important;
}

/* 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 !important;
    height: 58px !important;
    min-height: 58px !important;
    max-height: 58px !important;
    padding: 9px 11px !important;
}
.office-dashboard-time-actions-layout > .office-dashboard-time-quick-action {
    box-sizing: border-box !important;
    height: 58px !important;
    min-height: 58px !important;
    max-height: 58px !important;
    padding: 9px 11px !important;
    margin: 0 !important;
}
.office-time-panel .office-dashboard-time-body-final {
    padding-top: 17px !important;
}

/* 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 !important;
}
.office-dashboard-time-actions-layout > .office-dashboard-time-quick-action {
    cursor: pointer !important;
}

/* 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!important;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!important;min-width:44px!important;height:44px!important;border:1px solid var(--office-border-strong)!important;border-radius:var(--office-radius-md)!important;background:var(--office-surface)!important;color:var(--office-text-secondary)!important;box-shadow:none!important}
.office-leave-settings-button:hover{border-color:#bcc2c8!important;background:var(--office-hover)!important;color:var(--office-text)!important}
.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))!important}
.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!important;height:3px!important;min-width:0;border-radius:2px!important;background:var(--leave-marker-color);box-shadow:none!important}
.office-leave-person-markers i.continues-before{margin-left:-4px;border-top-left-radius:0!important;border-bottom-left-radius:0!important}
.office-leave-person-markers i.continues-after{margin-right:-4px;border-top-right-radius:0!important;border-bottom-right-radius:0!important}
.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!important}}

/* 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 !important;
    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) !important;
}
.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)) !important;
    background: color-mix(in srgb, var(--office-primary) 8%, var(--office-surface)) !important;
    color: var(--office-primary) !important;
    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) !important;
    background: color-mix(in srgb, var(--office-primary) 86%, #000) !important;
    color: #fff !important;
}
@media (prefers-reduced-motion: reduce) {
    .office-project-actions-row .office-pin-button,
    .office-offer-actions-row .office-pin-button {
        transition: none !important;
        animation: none !important;
    }
}

/* 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 !important;
    right: -8px !important;
    min-width: 16px !important;
    height: 16px !important;
    padding: 0 3px !important;
    border-width: 2px !important;
    font-size: 8.5px !important;
    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 !important; }
}

.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!important}

/* 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!important;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)!important;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!important;height:16px!important;flex:0 0 16px}
.office-contact-count-chevron{width:14px!important;height:14px!important}

.office-invoice-editor-grid-r016{grid-template-columns:repeat(6,minmax(0,1fr))!important}
.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))!important}
  .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!important}
  .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!important;padding-bottom:9px!important}
.office-offer-summary-row-r016 td{padding-top:8px!important;padding-bottom:8px!important;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!important;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!important}
@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!important;height:14px!important;flex-basis:14px!important}
.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!important;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!important;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 !important;
    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 !important; }
@media (max-width:920px) {
    .office-notification-link { display:inline-flex !important; visibility:visible !important; }
    .office-notification-link > .office-notification-icon-wrap { display:inline-flex !important; }
    .office-notification-link .office-notification-icon-wrap > .office-svg-icon { display:inline-block !important; }
}

/* 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 !important;
    animation:office-r017-stamp-surface 720ms cubic-bezier(.2,.82,.25,1) !important;
}
.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 !important;
}
@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 !important; }
}


/* 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) !important;
    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 !important; }
.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!important;line-height:1!important;font-weight:600!important;letter-spacing:.01em!important}
.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!important}
@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 !important;
    height: 42px !important;
    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!important;border-bottom-right-radius:0!important}
.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!important;outline:0!important;box-shadow:none!important;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!important;height:18px!important;min-width:18px!important;min-height:18px!important;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!important;margin-top:10px!important}.office-task-comment>div{display:flex;align-items:center;gap:8px}.office-history-row{display:grid!important;grid-template-columns:150px minmax(0,1fr);gap:14px!important;align-items:start;padding:10px 0!important;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!important;height:14px!important;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 !important;
}

/* 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 !important;
    visibility:hidden !important;
    opacity:0 !important;
}
.office-dashboard-top-grid-compact .office-quick-section.is-collapsed,
.office-dashboard-top-grid-compact .office-time-panel.is-collapsed { min-height:auto !important; }
.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)) !important;
}
.office-worktime-summary-r019-final > div { min-width:0; }
.office-worktime-summary-r019-final strong { font-size:1rem !important; 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 !important; }
@media(max-width:1100px){.office-worktime-summary-r019-final{grid-template-columns:repeat(3,minmax(0,1fr))!important}}
@media(max-width:680px){.office-worktime-summary-r019-final{grid-template-columns:repeat(2,minmax(0,1fr))!important}}

/* 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 !important; 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 !important; }
.office-contacts-page .office-table-frame table { table-layout:auto !important; width:100% !important; min-width:0 !important; }
.office-contacts-page .office-table-actions-column { width:72px; white-space:nowrap; }
.office-contacts-page .office-contact-count-chevron { width:14px !important; height:14px !important; }

/* 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 !important; }
.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 !important; margin:0 !important; min-height:0 !important; align-items:center !important; }
.office-offer-list-card-r018 { padding-top:18px !important; }
.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 !important; }
.office-hospitality-toolbar-r018 { display:flex; align-items:center; justify-content:space-between; gap:12px; margin:0 0 16px !important; padding:0 !important; }
.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 !important; grid-template-columns:minmax(0,1fr) 42px !important; 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 !important; box-shadow:none !important; min-width:0; }
.office-hospitality-combo-button-r019 { width:42px !important; height:42px !important; border:0 !important; border-left:1px solid var(--office-border) !important; border-radius:0 var(--office-radius) var(--office-radius) 0 !important; }
.office-hospitality-combo-button-r019 .office-svg-icon,
.office-combobox-chevron { width:14px !important; height:14px !important; flex:0 0 14px !important; }
@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 !important; 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 !important; height:14px !important; flex:0 0 14px !important; }
.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 !important; height:14px !important; }

/* Photo cards: one stable visible navigation action; everything else in the menu. */
.office-photo-library-toolbar-actions-only-r019-final { justify-content:flex-end !important; }
.office-photo-card-actions-r019 { justify-content:space-between; overflow:visible !important; }
.office-photo-card-actions-r019 > .office-button { white-space:nowrap; flex:0 0 auto; }
.office-photo-card-r019 { overflow:visible !important; }
.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 !important; height:14px !important; flex:0 0 14px !important; }
.office-data-environment-switcher-r019{border-top:0!important;margin:0 8px 16px!important;padding:0 2px 16px!important}


/* 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 !important; padding:0 2px 12px !important; margin:0 8px 0 !important; border-bottom:0 !important; }
.office-data-environment-label-r019 { display:none !important; }
.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 !important; }
.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) !important; max-width:620px; }
.office-offer-section-title-input-r016 { min-width:220px !important; width:min(420px,42vw); font-size:15px !important; font-weight:650 !important; }
.office-offer-section-delete-r016 { margin-left:auto; }
.office-offer-special-heading-r016 .office-button { margin-left:auto !important; }
.office-offer-advanced-toggle-r016 .office-svg-icon { width:14px !important; height:14px !important; 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!important;max-width:none}.office-offer-section-title-input-r016{width:100%;min-width:0!important}.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 !important; align-items:center !important; }
.office-time-project-filter-r019 { margin-left:0 !important; padding-top:0 !important; }
.office-time-project-filter-r019 > span { display:none !important; }
@media(max-width:760px){.office-time-filter-inline-r019-final{gap:16px!important}}
