:root {
    --erp-color-ink: #19302c;
    --erp-color-heading: #143f35;
    --erp-color-brand: #17604e;
    --erp-color-brand-strong: #115643;
    --erp-color-accent: #1d8067;
    --erp-color-surface: #ffffff;
    --erp-color-surface-muted: #f3f7f5;
    --erp-color-surface-subtle: #f8fbf9;
    --erp-color-border: #d9e3de;
    --erp-color-muted: #61766f;
    --erp-color-attention: #a86712;
    --erp-radius-sm: .55rem;
    --erp-radius-md: .65rem;
    --erp-radius-lg: .8rem;
    --erp-shadow-soft: 0 .35rem 1.2rem rgba(28, 65, 55, .07);
    --erp-density-control: 2.35rem;
    --erp-space-xs: .3rem;
    --erp-space-sm: .55rem;
    --erp-space-md: .8rem;
    --erp-space-lg: 1.15rem;
    font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
    color: var(--erp-color-ink);
    background: #f4f7f5;
    font-synthesis: none;
}

.document-row-book {
    width: 1.8rem;
    height: 1.65rem;
    min-height: 0;
    margin: 0;
    padding: 0;
    border: 1px solid var(--erp-color-border);
    border-radius: .35rem;
    background: #fff;
    color: var(--erp-color-heading);
    font-weight: 700;
    cursor: pointer;
}

.document-row-book:hover,
.document-row-book:focus-visible {
    border-color: var(--erp-color-brand);
    background: var(--erp-color-surface-muted);
}

.document-row-copy { width: 1.8rem; height: 1.65rem; min-height: 0; margin: 0; border: 1px solid #9bb7ad; border-radius: .45rem; background: #f3faf7; color: #174f3d; font-weight: 900; cursor: pointer; }
.document-row-copy:hover, .document-row-copy:focus-visible { border-color: #26745b; background: #e5f4ed; }
.document-context-menu { position: fixed; z-index: 1200; min-width: min(13rem, calc(100vw - 1rem)); max-width: calc(100vw - 1rem); max-height: calc(100vh - 1rem); overflow: auto; padding: .35rem; border: 1px solid #b9c9c3; border-radius: .55rem; background: #fff; box-shadow: 0 .7rem 2rem rgba(17, 36, 31, .2); }
.document-context-menu button { width: 100%; padding: .65rem .75rem; border: 0; border-radius: .35rem; background: transparent; color: #173c31; text-align: left; cursor: pointer; }
.document-context-menu button:hover, .document-context-menu button:focus-visible { background: #edf6f2; }
.invoice-copy-origin { margin: .5rem 0; padding: .55rem .7rem; border-left: .25rem solid #2f7b62; background: #edf6f2; color: #174f3d; font-weight: 750; }

* {
    box-sizing: border-box;
}

body {
    margin: 0;
    min-height: 100vh;
    background:
        radial-gradient(circle at 15% 15%, rgba(117, 177, 156, .18), transparent 30rem),
        #f4f7f5;
}

a {
    color: inherit;
}

.site-frame {
    min-height: 100vh;
}

.tenant-app-frame {
    min-height: 100vh;
}

.app-topbar {
    position: sticky;
    z-index: 20;
    top: 0;
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    align-items: center;
    gap: .9rem;
    min-height: 3.25rem;
    padding: .55rem 1rem;
    border-bottom: 1px solid #d9e3de;
    background: rgba(255, 255, 255, .96);
    box-shadow: 0 .4rem 1.5rem rgba(28, 65, 55, .05);
    backdrop-filter: blur(12px);
}

.app-document-actions {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    gap: .65rem;
    min-width: max-content;
}

.app-product {
    color: #17604e;
    font-size: 1.2rem;
    font-weight: 900;
    letter-spacing: .08em;
    text-decoration: none;
}

.app-tenant {
    display: flex;
    align-items: center;
    gap: .75rem;
    min-width: 0;
}

.app-tenant img {
    width: 2.4rem;
    height: 2.4rem;
    border: 1px solid #d9e3de;
    border-radius: .65rem;
    object-fit: contain;
}

.app-tenant span,
.app-account {
    display: grid;
    gap: .1rem;
    min-width: 0;
}

.app-tenant small,
.app-account span {
    overflow: hidden;
    color: #61766f;
    font-size: .76rem;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.app-tenant strong,
.app-account strong {
    overflow: hidden;
    color: #143f35;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.app-account {
    text-align: right;
}

.app-layout {
    display: grid;
    grid-template-columns: 13rem minmax(0, 1fr);
    min-height: calc(100vh - 3.25rem);
}

.app-sidebar {
    padding: .9rem .65rem;
    border-right: 1px solid #d9e3de;
    background: rgba(250, 252, 251, .88);
}

.app-navigation {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    min-width: 0;
    gap: .35rem;
}

.app-navigation :is(.app-nav-link, .app-nav-group-title, .app-nav-heading, .app-unavailable-target) > :is(span, strong, small) {
    min-width: 0;
    overflow-wrap: anywhere;
    hyphens: auto;
}

.app-settings-navigation {
    margin-top: .75rem;
    padding: .55rem;
    border: 1px solid var(--erp-color-border);
    border-radius: var(--erp-radius-lg);
    background: rgba(255, 255, 255, .7);
}

.app-nav-heading {
    display: flex;
    align-items: center;
    gap: .45rem;
    padding: 0 .55rem .35rem;
    color: #6b7f79;
    font-size: .72rem;
    font-weight: 800;
    letter-spacing: .1em;
    text-transform: uppercase;
}

.app-nav-heading small {
    color: var(--erp-color-muted);
    font-size: .58rem;
    font-weight: 600;
    letter-spacing: .02em;
    text-transform: none;
}

.app-nav-section-heading {
    margin-top: .45rem;
}

.app-nav-group {
    overflow: hidden;
    padding: .45rem;
    border: 1px solid var(--erp-color-border);
    border-radius: var(--erp-radius-lg);
    background: rgba(255, 255, 255, .72);
}

.app-nav-primary-group {
    padding: 0;
}

.app-nav-group-title {
    display: flex;
    align-items: center;
    gap: .55rem;
    min-height: 2.55rem;
    padding: .4rem .45rem;
    color: var(--erp-color-heading);
    font-size: .82rem;
}

summary.app-nav-group-title {
    cursor: pointer;
    list-style: none;
    border-radius: .6rem;
}

summary.app-nav-group-title::-webkit-details-marker {
    display: none;
}

summary.app-nav-group-title::after {
    content: "›";
    margin-left: auto;
    font-size: 1.2rem;
    transition: transform .15s ease;
}

.app-nav-group[open] > summary.app-nav-group-title::after {
    transform: rotate(90deg);
}

.app-nav-group.active > summary.app-nav-group-title {
    background: #dcefe8;
    color: #115643;
}

summary.app-nav-group-title:hover {
    background: #eaf3ef;
}

summary.app-nav-group-title:focus-visible {
    outline: 2px solid var(--erp-color-brand);
    outline-offset: -2px;
}

.app-nav-children {
    display: grid;
    gap: .12rem;
    padding: .15rem 0 0 1.85rem;
}

.app-nav-children .app-nav-link {
    min-height: 1.9rem;
    padding: .32rem .4rem;
    font-size: .72rem;
}

.app-nav-children .app-nav-icon {
    width: .9rem;
    height: .9rem;
    padding: 0;
    background: transparent;
}

.app-nav-link {
    display: flex;
    min-height: var(--erp-density-control);
    align-items: center;
    gap: .55rem;
    padding: .48rem .55rem;
    border-radius: .6rem;
    color: #294a41;
    font-weight: 700;
    text-decoration: none;
}

.app-nav-link:hover {
    background: #eaf3ef;
    color: #17604e;
}

.app-nav-link.active {
    background: #dcefe8;
    color: #115643;
    box-shadow: inset 2px 0 #1d8067;
}

.app-nav-icon {
    width: 1.85rem;
    height: 1.85rem;
    flex: 0 0 auto;
    padding: .42rem;
    border-radius: .55rem;
    color: var(--erp-color-brand);
    background: #e6f0ec;
}

.app-nav-link.active > .app-nav-icon,
.app-nav-primary-group .app-nav-link.active > .app-nav-icon {
    color: #fff;
    background: var(--erp-color-brand);
}

.app-unavailable-target {
    display: flex;
    min-height: var(--erp-density-control);
    align-items: center;
    gap: .55rem;
    padding: .4rem .55rem;
    border-radius: var(--erp-radius-md);
    color: #72837e;
    cursor: not-allowed;
    user-select: none;
}

.app-nav-copy {
    display: grid;
    min-width: 0;
    gap: .05rem;
    font-size: .78rem;
    font-weight: 750;
}

.app-nav-copy small {
    color: #8a9994;
    font-size: .59rem;
    font-weight: 700;
    letter-spacing: .02em;
}

.app-assistant-target {
    min-height: 2.5rem;
    padding: .5rem .8rem;
    border: 1px solid #b9d2c8;
    background: #f7fbf9;
}

.app-assistant-target .app-nav-icon {
    display: none;
}

.app-assistant-target .app-nav-copy {
    display: flex;
    align-items: center;
    gap: .45rem;
}

.app-assistant-target .app-nav-copy small::before {
    content: "· ";
}

.app-button {
    display: inline-flex;
    min-height: 2.35rem;
    align-items: center;
    justify-content: center;
    padding: .52rem .8rem;
    border: 1px solid transparent;
    border-radius: var(--erp-radius-md);
    cursor: pointer;
    font: inherit;
    font-weight: 800;
    text-decoration: none;
}

.app-button-primary {
    background: var(--erp-color-brand);
    color: #fff;
    box-shadow: 0 .35rem 1rem rgba(23, 96, 78, .18);
}

.document-create-menu {
    position: relative;
}

.document-create-menu > summary {
    list-style: none;
}

.document-create-menu > summary::-webkit-details-marker {
    display: none;
}

.document-create-menu > summary::before {
    margin-right: .45rem;
    content: "+";
}

.document-create-popover {
    position: absolute;
    z-index: 40;
    top: calc(100% + .45rem);
    right: 0;
    display: grid;
    width: min(22rem, calc(100vw - 2rem));
    max-height: min(34rem, calc(100vh - 7rem));
    overflow-y: auto;
    gap: .25rem;
    padding: .65rem;
    border: 1px solid var(--erp-color-border);
    border-radius: .9rem;
    background: var(--erp-color-surface);
    box-shadow: 0 1rem 2.8rem rgba(20, 63, 53, .18);
}

.document-menu-heading {
    padding: .35rem .55rem;
    color: var(--erp-color-muted);
    font-size: .68rem;
    font-weight: 900;
    letter-spacing: .09em;
    text-transform: uppercase;
}

.document-menu-future {
    margin-top: .45rem;
    padding-top: .75rem;
    border-top: 1px solid var(--erp-color-border);
}

.document-create-popover a,
.document-menu-disabled {
    display: flex;
    align-items: center;
    gap: .7rem;
    padding: .65rem;
    border-radius: .65rem;
    color: var(--erp-color-heading);
    text-decoration: none;
}

.document-create-popover a:hover,
.document-create-popover a:focus-visible {
    background: #edf6f2;
    outline: none;
}

.document-menu-disabled {
    color: #74847f;
    cursor: not-allowed;
}

.document-create-popover a > span:last-child,
.document-menu-disabled > span:last-child {
    display: grid;
    min-width: 0;
    gap: .05rem;
    overflow-wrap: anywhere;
}

.document-type-mark {
    display: inline-grid;
    width: 2rem;
    height: 2rem;
    place-items: center;
    border-radius: .55rem;
    background: #e1f1eb;
    color: var(--erp-color-brand);
    font-size: .68rem;
    font-weight: 900;
}

.workspace-kpis {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    max-width: 28rem;
    gap: .45rem;
    padding: .75rem .85rem 0;
}

.workspace-kpis article,
.workspace-kpi-card {
    display: flex;
    min-width: 0;
    align-items: center;
    gap: .45rem;
    padding: .35rem .5rem;
    border: 1px solid var(--erp-color-border);
    border-radius: var(--erp-radius-lg);
    background: rgba(255, 255, 255, .94);
    box-shadow: var(--erp-shadow-soft);
}

.workspace-kpi-card {
    border: 1px solid var(--erp-color-border);
    color: inherit;
    font: inherit;
    text-align: left;
    cursor: pointer;
}

.workspace-kpi-card:hover,
.workspace-kpi-card:focus-visible { border-color: var(--erp-color-primary); }

.workspace-kpis article > span:last-child,
.workspace-kpi-card > span:last-child {
    display: grid;
    min-width: 0;
}

.workspace-kpis small,
.workspace-kpis em {
    color: var(--erp-color-muted);
    font-size: .68rem;
    font-style: normal;
    overflow-wrap: anywhere;
}

.workspace-kpis strong {
    color: var(--erp-color-heading);
    font-size: 1.12rem;
}

.workspace-kpi-icon {
    display: inline-grid;
    width: 2rem;
    height: 2rem;
    flex: 0 0 auto;
    place-items: center;
    border-radius: .7rem;
    background: #e1f1eb;
    color: var(--erp-color-brand);
    font-weight: 900;
}

.workspace-kpi-icon.attention {
    background: #fff1da;
    color: var(--erp-color-attention);
}

.workspace-kpi-reserved {
    border-style: dashed !important;
    box-shadow: none !important;
}

.app-content {
    min-width: 0;
}

.brand-bar {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    padding: 1rem clamp(1.25rem, 4vw, 4rem);
    border-bottom: 1px solid #d9e3de;
    background: rgba(255, 255, 255, .86);
    backdrop-filter: blur(12px);
}

.brand-bar a {
    color: #17604e;
    font-size: 1.2rem;
    font-weight: 800;
    letter-spacing: .08em;
    text-decoration: none;
}

.brand-bar span {
    color: #5e746d;
    font-size: .9rem;
}

.setup-shell {
    display: grid;
    grid-template-columns: minmax(16rem, .8fr) minmax(24rem, 1.2fr);
    gap: clamp(2rem, 6vw, 6rem);
    max-width: 76rem;
    margin: 0 auto;
    padding: clamp(3rem, 7vw, 7rem) clamp(1.25rem, 4vw, 4rem);
}

.intro-panel {
    align-self: center;
}

.intro-panel h1,
.narrow-card h1,
.application-shell h1 {
    margin: .45rem 0 1rem;
    color: #143f35;
    font-size: clamp(2rem, 4vw, 3.4rem);
    line-height: 1.03;
}

.master-data-page,
.compact-two-column-page {
    display: grid;
    grid-template-columns: minmax(21rem, .78fr) minmax(32rem, 1.22fr);
    align-items: start;
    gap: .8rem;
}

.article-master-data-page {
    grid-template-columns: minmax(23rem, .72fr) minmax(35rem, 1.28fr);
}

.master-data-page > header,
.compact-two-column-page > header,
.master-data-page > .alert,
.compact-two-column-page > .alert,
.master-data-page > .success-message,
.compact-two-column-page > .success-message {
    grid-column: 1 / -1;
}

.master-data-page > .settings-card,
.compact-two-column-page > .settings-card,
.compact-two-column-page > .readiness-panel {
    margin-top: 0;
}

.memberships-page > .membership-editor {
    margin-top: 0;
}

.company-settings-form {
    display: contents;
}

.company-settings-form > .settings-card {
    margin-top: 0;
}

.company-settings-form > .settings-card:last-child {
    grid-column: 1 / -1;
}

.objects-page {
    min-width: 0;
}

.objects-page > .card {
    grid-column: 1 / -1;
    min-width: 0;
}

.object-search {
    display: flex;
    align-items: end;
    gap: .65rem;
    margin-bottom: .85rem;
}

.object-search label {
    display: grid;
    flex: 1 1 24rem;
    gap: .3rem;
    color: var(--erp-color-muted);
    font-size: .72rem;
    font-weight: 700;
}

.object-search input[type="search"] {
    min-height: 2.2rem;
    border: 1px solid var(--erp-color-border);
    border-radius: .45rem;
    padding: .45rem .65rem;
    color: var(--erp-color-text);
    background: #fff;
}

.object-table td:first-child,
.object-table td:nth-child(2) {
    font-weight: 650;
}

.object-table-scroll {
    max-width: 100%;
    overflow-x: auto;
}

.object-table {
    min-width: 54rem;
}

.membership-table {
    font-size: .78rem;
}

.membership-table thead {
    color: var(--erp-color-muted);
    background: var(--erp-color-surface-subtle);
}

.membership-table th {
    font-size: .68rem;
    letter-spacing: .025em;
}

.membership-table tbody tr:hover {
    background: #f2f8f5;
}

.intro-panel p,
.narrow-card p,
.empty-state p {
    color: #526a63;
    font-size: 1.05rem;
    line-height: 1.7;
}

.intro-panel ul {
    padding: 0;
    list-style: none;
}

.intro-panel li {
    margin: .8rem 0;
    color: #285c4e;
}

.intro-panel li::before {
    margin-right: .7rem;
    color: #1d8067;
    content: "✓";
    font-weight: 800;
}

.eyebrow {
    margin: 0;
    color: #1d8067 !important;
    font-size: .78rem !important;
    font-weight: 800;
    letter-spacing: .13em;
    text-transform: uppercase;
}

.card {
    border: 1px solid #dbe5e0;
    border-radius: var(--erp-radius-lg);
    background: rgba(255, 255, 255, .96);
    box-shadow: var(--erp-shadow-soft);
}

.setup-card,
.narrow-card,
.empty-state {
    padding: 1rem;
}

.setup-card h2,
.empty-state h2 {
    margin-top: 0;
    color: #1b463b;
}

.settings-card,
.readiness-panel {
    margin-top: .8rem;
}

.settings-card h2 {
    margin: 1.15rem 0 .6rem;
    font-size: 1.1rem;
}

.settings-card h2:first-child {
    margin-top: 0;
}

.settings-section-heading {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: .8rem;
}

.settings-section-heading h2 {
    margin: .35rem 0 0;
}

.tenant-logo-preview {
    width: 7rem;
    max-height: 5rem;
    padding: .5rem;
    border: 1px solid #d9e3de;
    border-radius: .75rem;
    background: #fff;
    object-fit: contain;
}

.logo-settings form {
    margin-top: 1.25rem;
}

.logo-settings .primary-action {
    width: auto;
    min-width: 10rem;
}

.success-message {
    margin: .65rem 0;
    padding: .65rem .8rem;
    border-radius: .55rem;
    background: #e3f3ec;
    color: #17604e;
    font-weight: 700;
}

.form-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    column-gap: .7rem;
    row-gap: .15rem;
}

.wide {
    grid-column: 1 / -1;
}

label {
    display: grid;
    gap: .28rem;
    margin: .42rem 0;
    color: #294a41;
    font-size: .78rem;
    font-weight: 700;
}

input,
textarea {
    width: 100%;
    min-height: 2.35rem;
    padding: .5rem .65rem;
    border: 1px solid #bccdc6;
    border-radius: .6rem;
    background: #fff;
    color: #173c32;
    font: inherit;
}

select {
    width: 100%;
    min-height: 2.35rem;
    padding: .5rem .65rem;
    border: 1px solid #bccdc6;
    border-radius: .6rem;
    background: #fff;
    color: #173c32;
    font: inherit;
}

.membership-table {
    width: 100%;
    border-collapse: collapse;
}

.membership-table th,
.membership-table td {
    padding: .52rem .6rem;
    border-bottom: 1px solid #dce8e3;
    text-align: left;
}

.article-description {
    max-width: 24rem;
    white-space: pre-line;
}

.membership-editor {
    margin-top: .8rem;
}

input:focus,
textarea:focus {
    border-color: #1d8067;
    outline: 3px solid rgba(29, 128, 103, .16);
}

small {
    color: #6b7f79;
    font-weight: 400;
}

.primary-action {
    width: auto;
    min-height: 2.35rem;
    margin-top: .7rem;
    padding: .55rem .9rem;
    border: 0;
    border-radius: .65rem;
    background: #176c58;
    color: #fff;
    cursor: pointer;
    font: inherit;
    font-weight: 800;
}

.primary-action:hover {
    background: #115643;
}

.secondary-action {
    display: inline-flex;
    min-height: 2.35rem;
    align-items: center;
    justify-content: center;
    margin: .25rem .3rem .25rem 0;
    padding: .5rem .75rem;
    border: 1px solid #9ebbb0;
    border-radius: .65rem;
    background: #fff;
    color: #17604e;
    cursor: pointer;
    font: inherit;
    font-weight: 750;
    text-decoration: none;
}

.secondary-action:hover {
    border-color: #1d8067;
    background: #edf6f2;
}

.centered-page {
    display: grid;
    min-height: calc(100vh - 4.4rem);
    place-items: center;
    padding: 2rem 1.25rem;
}

.narrow-card {
    width: min(100%, 31rem);
}

.secret-box {
    display: grid;
    gap: .5rem;
    margin: 1.5rem 0;
    padding: 1rem;
    border: 1px dashed #75aa9b;
    border-radius: .7rem;
    background: #f1f8f5;
}

.secret-box span {
    color: #5e746d;
    font-size: .82rem;
}

.secret-box strong {
    overflow-wrap: anywhere;
    color: #154f41;
    font-family: ui-monospace, SFMono-Regular, Consolas, monospace;
    letter-spacing: .08em;
}

.alert,
.validation-message {
    margin: .65rem 0;
    padding: .65rem .8rem;
    border-radius: .55rem;
    background: #fff0ed;
    color: #9d3325;
}

.checkbox-label {
    display: flex;
    align-items: center;
    gap: .6rem;
}

.checkbox-label input {
    width: 1.1rem;
    min-height: 1.1rem;
}

.application-shell {
    max-width: none;
    margin: 0 auto;
    padding: .85rem;
}

.application-shell header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    margin-bottom: .75rem;
}

.application-shell h1 {
    margin: .25rem 0 .35rem;
    font-size: clamp(1.65rem, 2.5vw, 2.15rem);
}

.status-pill,
.template-state {
    display: inline-flex;
    align-items: center;
    border-radius: 999px;
    background: #e3f3ec;
    color: #17604e;
    font-size: .86rem;
    font-weight: 800;
}

.status-pill {
    padding: .38rem .65rem;
}

.template-state {
    margin-bottom: 2rem;
    padding: .45rem .7rem;
}

.empty-state {
    text-align: center;
}

.metric-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 1rem;
    margin-top: 2rem;
}

.metric-grid div {
    display: grid;
    gap: .25rem;
    padding: 1.2rem;
    border-radius: .8rem;
    background: #f3f7f5;
}

.metric-grid strong {
    color: #17604e;
    font-size: 1.8rem;
}

.metric-grid span {
    color: #61766f;
}

.home-actions {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: .75rem;
    margin-top: 2rem;
}

.home-actions .primary-action,
.home-actions .secondary-action {
    width: auto;
    min-width: 11rem;
    margin: 0;
    text-decoration: none;
}

.invoice-workspace {
    display: grid;
    grid-template-columns: minmax(32rem, 1.1fr) minmax(28rem, .9fr);
    gap: .8rem;
    align-items: start;
}

.invoice-workspace-position-mode {
    grid-template-columns: minmax(0, 1fr);
}

.invoice-workspace-position-mode .invoice-preview-column { width: 100%; max-width: 44rem; justify-self: center; position: static; }

.invoice-position-heading {
    display: flex;
    align-items: end;
    justify-content: space-between;
    gap: .6rem;
    margin-bottom: .45rem;
}

.invoice-position-heading h2 {
    flex: none;
    margin: 0;
}

.invoice-position-toolbar {
    display: flex;
    flex-wrap: wrap;
    justify-content: flex-end;
    align-items: end;
    gap: .3rem;
}

.invoice-article-picker {
    display: flex;
    align-items: center;
    gap: .3rem;
    margin: 0;
    color: var(--erp-color-muted);
    font-size: .66rem;
    font-weight: 800;
}

.invoice-article-picker select {
    width: 13rem;
}

.invoice-position-toolbar select,
.invoice-position-toolbar button {
    box-sizing: border-box;
    height: 1.85rem;
    min-height: 1.85rem;
    margin: 0;
    padding: .2rem .45rem;
    font-size: .68rem;
}

.invoice-position-table-wrap {
    width: 100%;
    overflow-x: auto;
    border: 1px solid #aebdb7;
    background: white;
}

.invoice-position-table {
    box-sizing: border-box;
    width: calc(100% - 2px);
    min-width: 58rem;
    table-layout: fixed;
    border-collapse: collapse;
    color: #243e36;
    font-size: .8rem;
}

.invoice-position-table th {
    height: 1.85rem;
    padding: .15rem .3rem;
    border-right: 1px solid #cfd9d5;
    border-bottom: 1px solid #aebdb7;
    background: #f5f7f6;
    color: #425e55;
    font-size: .64rem;
    font-weight: 750;
    line-height: 1.1;
    text-align: left;
    white-space: nowrap;
}

.invoice-position-table td {
    box-sizing: border-box;
    height: 1.6rem;
    padding: 0 3px;
    border-right: 1px solid #d8e0dd;
    border-bottom: 1px solid #d8e0dd;
    vertical-align: middle;
}

/* Named columns stay aligned when the weekday date column is present. */
.invoice-position-table .position-number { width: 2.2rem; }
.invoice-position-table .position-article { width: 6.5rem; }
.position-article-search { position: relative; z-index: 20; }
.position-article-results { position: relative; z-index: 20; min-width: 15rem; max-height: 17rem; overflow-y: auto; padding: .25rem; background: white; border: 1px solid #aebdb7; }
.position-article-results button { display: block; width: 100%; min-height: 2.6rem; padding: .4rem; border: 0; text-align: left; background: white; white-space: normal; }
.position-article-results button[aria-selected="true"], .position-article-results button:hover { background: #daedf7; }
.position-article-results .position-search-close { min-height: 2rem; color: #425e55; }
.invoice-position-table .position-date { width: 6rem; }
.invoice-position-table .position-quantity { width: 5.5rem; }
.invoice-position-table .position-unit { width: 6rem; }
.invoice-position-table .position-tax { width: 8rem; }
.invoice-position-table .position-discount { width: 4.5rem; }
.invoice-position-table .position-price,
.invoice-position-table .position-total { width: 6rem; }
.invoice-position-table .position-actions { width: 5.4rem; border-right: 0; }

.invoice-position-table tbody tr {
    background: white;
}

.invoice-position-table tbody tr:hover {
    background: #edf6fa;
}

.invoice-position-table tbody tr:focus-within {
    background: #daedf7;
}

.invoice-position-table input,
.invoice-position-table textarea,
.invoice-position-table select {
    display: block;
    box-sizing: border-box;
    width: 100%;
    height: 1.5rem;
    min-height: 1.5rem;
    margin: 0;
    padding: .12rem .25rem;
    overflow: hidden;
    border: 1px solid transparent;
    border-radius: .15rem;
    background: transparent;
    color: inherit;
    font: inherit;
    line-height: 1.2;
    resize: none;
}

.invoice-position-table input:hover,
.invoice-position-table textarea:hover,
.invoice-position-table select:hover {
    border-color: #b9cbc4;
    background: rgba(255, 255, 255, .75);
}

.invoice-position-table input:focus,
.invoice-position-table textarea:focus,
.invoice-position-table select:focus {
    border-color: var(--erp-color-primary);
    outline: 1px solid var(--erp-color-primary);
    background: white;
}

.invoice-position-number {
    color: var(--erp-color-muted);
    text-align: left;
}

.invoice-position-table input[type="number"],
.invoice-position-money,
.invoice-position-total {
    text-align: right;
}

.invoice-position-total {
    white-space: nowrap;
    font-weight: 850;
}

.invoice-position-text-row td {
    background: rgba(242, 246, 244, .65);
}

.invoice-position-actions {
    white-space: nowrap;
    text-align: right;
}

.invoice-position-actions button {
    display: inline-grid;
    width: 1.42rem;
    height: 1.42rem;
    min-height: 0;
    margin: 0 0 0 .1rem;
    padding: 0;
    place-items: center;
    border: 1px solid #bdccc6;
    border-radius: .2rem;
    background: white;
    color: #48645b;
    cursor: pointer;
    font-size: .72rem;
}

.invoice-position-actions button:disabled {
    opacity: .32;
    cursor: default;
}

.invoice-position-summary {
    display: grid;
    width: min(18rem, 100%);
    margin: .35rem 0 0 auto;
    border: 1px solid #aebdb7;
    background: white;
}

.invoice-position-summary div {
    display: grid;
    grid-template-columns: 1fr auto;
    gap: 1rem;
    padding: .24rem .45rem;
    border-bottom: 1px solid #d8e0dd;
}

.invoice-position-summary div:last-child {
    border-bottom: 0;
}

.invoice-position-summary dt,
.invoice-position-summary dd {
    margin: 0;
}

.invoice-position-summary dd {
    min-width: 6.5rem;
    text-align: right;
    font-weight: 850;
}

.invoice-position-summary-total {
    background: #f2f5f3;
}

.invoice-position-summary-total dt,
.invoice-position-summary-total dd {
    font-weight: 900;
}

.invoice-payment-hint {
    margin-bottom: 0;
    color: var(--erp-color-muted);
    font-size: .76rem;
}

.invoice-editor-column,
.invoice-preview-column {
    min-width: 0;
}

.template-workspace {
    display: grid;
    grid-template-columns: minmax(32rem, 1fr) minmax(28rem, .9fr);
    gap: .8rem;
    align-items: start;
}

.template-editor-card,
.template-preview-card {
    max-width: none;
}

.template-preview-card {
    position: sticky;
    top: 5rem;
}

.template-version-state,
.template-preview-heading,
.template-actions {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 1rem;
}

.template-version-state {
    margin-bottom: .65rem;
    padding: .55rem .65rem;
    border-radius: .6rem;
    background: #edf7f3;
}

.template-editor-grid {
    display: grid;
    grid-template-columns: 11rem minmax(0, 1fr);
    gap: .75rem;
}

.template-region-list {
    display: grid;
    align-content: start;
    gap: .4rem;
}

.template-region-list button {
    padding: .65rem .75rem;
    border: 1px solid #cbd8d3;
    border-radius: .45rem;
    background: #fff;
    color: #143f35;
    text-align: left;
}

.template-region-list button.active {
    border-color: #176c58;
    background: #edf7f3;
    font-weight: 700;
}

.template-properties textarea {
    min-height: 7rem;
}

.template-checkboxes {
    display: grid;
    gap: .65rem;
}

.template-field-catalog {
    margin-top: .75rem;
    padding: .6rem;
    border: 1px solid #d9e3de;
    border-radius: .5rem;
}

.template-actions {
    justify-content: flex-start;
    margin-top: .75rem;
}

.template-actions .primary-action,
.template-actions .secondary-action {
    width: auto;
    margin: 0;
}

.template-binding-state {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    margin: .75rem 0 1rem;
    padding: .7rem .8rem;
    border-radius: .55rem;
    background: #edf7f3;
}

.template-binding-state .secondary-action {
    width: auto;
    margin: 0;
}

.booking-confirmation {
    border: 2px solid #176c58;
    box-shadow: 0 1rem 2.5rem rgba(20, 63, 53, .12);
}

.booking-summary-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: .75rem;
    margin: 1rem 0;
}

.booking-summary-grid div {
    padding: .8rem;
    border-radius: .6rem;
    background: #f2f7f5;
}

.booking-summary-grid dt {
    color: #61766f;
    font-size: .78rem;
}

.booking-summary-grid dd {
    margin: .2rem 0 0;
    color: #143f35;
    font-weight: 700;
}

.booking-actions {
    display: flex;
    flex-wrap: wrap;
    gap: .75rem;
}

.archive-workspace {
    display: grid;
    grid-template-columns: minmax(18rem, .7fr) minmax(28rem, 1.3fr);
    gap: 1.25rem;
    align-items: start;
}

.archive-filter-card {
    margin-bottom: 1.25rem;
}

.archive-filter-grid {
    grid-template-columns: repeat(4, minmax(0, 1fr));
    margin-bottom: 1rem;
}

.archive-filter-search {
    grid-column: span 2;
}

.archive-list {
    display: grid;
    gap: .5rem;
}

.archive-list-item {
    display: grid;
    gap: .2rem;
    padding: .8rem;
    border: 1px solid #d9e3de;
    border-radius: .6rem;
    color: #143f35;
    text-decoration: none;
}

.archive-list-item:hover,
.archive-list-item.active {
    border-color: #176c58;
    background: #edf7f3;
}

.archive-list-item span,
.archive-hash {
    color: #61766f;
    font-size: .82rem;
    overflow-wrap: anywhere;
}

.validation-warnings {
    margin: 1rem 0;
    padding: .8rem 1rem;
    border-left: .25rem solid #b7791f;
    background: #fff8e8;
}

.archive-pdf-frame {
    margin-top: 1rem;
}

.archive-snapshot {
    margin-top: 1rem;
    padding-top: 1rem;
    border-top: 1px solid #d9e3de;
}

.archive-snapshot h3 {
    margin-top: 0;
}

.archive-parties {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 1rem;
}

.archive-parties h4 {
    margin: 0 0 .5rem;
}

.archive-lines {
    display: grid;
    gap: .5rem;
}

.archive-line {
    display: grid;
    grid-template-columns: minmax(12rem, 1fr) auto auto auto;
    gap: .75rem;
    padding: .7rem .8rem;
    border-radius: .5rem;
    background: #f2f7f5;
}

.archive-output-actions {
    margin-top: 1rem;
}

.archive-output-history {
    display: grid;
    gap: .5rem;
    margin: 0;
    padding-left: 1.5rem;
}

.archive-output-history li {
    display: grid;
    gap: .2rem;
}

.archive-output-history span {
    color: #61766f;
    font-size: .86rem;
}

.invoice-preview-column {
    position: sticky;
    top: 5rem;
}

.invoice-preview-card {
    max-width: none;
}

.invoice-preview-frame {
    width: 100%;
    min-height: 72rem;
    border: 1px solid #cbd8d3;
    border-radius: .6rem;
    background: #eef3f1;
}

.pdf-page-preview {
    position: relative;
    display: grid;
    grid-auto-rows: max-content;
    align-content: start;
    justify-items: center;
    gap: .75rem;
    min-width: 0;
    padding: .8rem;
    overflow: auto;
    background: #e9efec;
}

.pdf-page-preview-page {
    width: 100%;
    overflow: hidden;
    background: white;
    box-shadow: 0 .35rem 1.15rem rgba(25, 48, 44, .16);
}

.pdf-page-preview-sheet {
    width: 100%;
    min-width: 0;
}

.pdf-page-preview-number {
    padding-bottom: .2rem;
    color: var(--erp-color-muted);
    font-size: .75rem;
    font-weight: 750;
    text-align: right;
}

.pdf-page-preview-page canvas {
    display: block;
    width: 100%;
    height: auto;
}

.pdf-page-preview-status,
.pdf-page-preview-error {
    align-self: start;
    margin: 1rem;
    padding: .65rem .8rem;
    border-radius: .55rem;
    background: rgba(255, 255, 255, .92);
    color: var(--erp-color-muted);
    font-size: .78rem;
    font-weight: 750;
}

.pdf-page-preview-error {
    color: #7c2020;
    background: #fff0f0;
}

#blazor-error-ui {
    display: none;
}

.document-center { max-width: none; padding-top: .35rem; }
.document-center-heading { margin-bottom: .65rem; flex-wrap: wrap; }
.document-center-title { min-width: 0; }
.document-center-title h1 { overflow-wrap: anywhere; line-height: 1.4; }
.document-create-actions { display: flex; flex-wrap: wrap; align-items: stretch; gap: .5rem; min-width: 0; }
.document-create-actions :is(summary, a) { min-height: 44px; margin: 0; overflow-wrap: anywhere; text-align: center; }
.document-assistant-tools { margin-bottom: .65rem; padding: .15rem .6rem; border: 1px solid var(--erp-color-border); border-radius: var(--erp-radius-md); background: rgba(255, 255, 255, .7); }
.document-assistant-tools > summary { min-height: 44px; padding: .65rem .25rem; color: var(--erp-color-heading); font-size: .8rem; font-weight: 750; cursor: pointer; overflow-wrap: anywhere; }
.document-assistant-options { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .65rem; padding: .25rem 0 .5rem; }
.document-assistant-options > div { min-width: 0; }
.document-assistant-options a { min-height: 44px; max-width: 100%; margin: 0; overflow-wrap: anywhere; }
.document-assistant-options p { margin: .3rem 0 0; color: var(--erp-color-muted); font-size: .8rem; overflow-wrap: anywhere; }
.document-center-workspace { display: grid; grid-template-columns: minmax(46rem, 1.55fr) minmax(20rem, .85fr); min-height: calc(100vh - 13.5rem); border: 1px solid var(--erp-color-border); border-radius: var(--erp-radius-lg); overflow: hidden; background: var(--erp-color-surface); box-shadow: var(--erp-shadow-card); }
.document-list-panel { min-width: 0; border-right: 1px solid var(--erp-color-border); }
.document-tabs { display: flex; gap: 1.2rem; padding: .75rem 1rem 0; border-bottom: 1px solid var(--erp-color-border); }
.document-tabs button { padding: .65rem .2rem .75rem; border: 0; border-bottom: 3px solid transparent; background: none; color: var(--erp-color-muted); font-weight: 800; cursor: pointer; }
.document-tabs button.active { border-color: var(--erp-color-primary); color: var(--erp-color-primary-dark); }
.document-filter-bar { display: grid; grid-template-columns: 8.9rem 3.3rem minmax(6rem, 1fr) 5.8rem 5.8rem 7.4rem auto; align-items: end; gap: .3rem; padding: .45rem .6rem; background: var(--erp-color-surface-soft); border-bottom: 1px solid var(--erp-color-border); }
.document-filter-bar label { display: grid; min-width: 0; margin: 0; gap: .12rem; color: var(--erp-color-muted); font-size: .68rem; font-weight: 750; line-height: 1.1; }
.document-filter-bar input, .document-filter-bar select { box-sizing: border-box; min-width: 0; width: 100%; height: 1.9rem; min-height: 1.9rem; margin: 0; padding: .2rem .38rem; font-size: .72rem; }
.document-filter-actions { display: flex; align-items: stretch; align-self: end; height: 1.9rem; gap: .3rem; white-space: nowrap; }
.document-filter-actions button { box-sizing: border-box; height: 1.9rem; min-height: 0; margin: 0; padding: .25rem .48rem; font-size: .72rem; }
.document-list-summary { display: flex; justify-content: space-between; gap: 1rem; padding: .65rem 1rem; color: var(--erp-color-muted); font-size: .78rem; }
.document-table-scroll { overflow: auto; }
.document-table { width: 100%; border-collapse: collapse; white-space: nowrap; font-size: .78rem; }
.document-table th { padding: .42rem .5rem; border-block: 1px solid var(--erp-color-border); text-align: left; color: var(--erp-color-muted); }
.document-table th button { padding: 0; border: 0; background: none; color: inherit; font: inherit; font-weight: 800; cursor: pointer; }
.document-table td { padding: .32rem .5rem; border-bottom: 1px solid var(--erp-color-border); }
.document-table tbody tr { cursor: pointer; }
.document-table tbody tr:hover, .document-table tbody tr.selected { background: var(--erp-color-primary-soft); }
.document-table tbody tr.selected { box-shadow: inset 4px 0 var(--erp-color-primary); }
.document-table a { color: var(--erp-color-primary-dark); font-weight: 850; }
.document-number-action { padding: 0; border: 0; background: none; color: var(--erp-color-primary-dark); font: inherit; font-weight: 850; text-decoration: underline; cursor: pointer; }
.document-table input[type="checkbox"] { width: 1rem; height: 1rem; min-height: 1rem; margin: 0; padding: 0; accent-color: var(--erp-color-primary); }
.document-status-select { box-sizing: border-box; width: 7.8rem; min-width: 0; max-width: 7.8rem; height: 1.65rem; min-height: 1.65rem; margin: 0; padding: .12rem 1.25rem .12rem .4rem; border: 1px solid transparent; border-radius: 999px; font-size: .62rem; font-weight: 800; cursor: pointer; }
.document-status-select.in-progress { border-color: #efd7b5; color: #7a5424; background: #fff0da; }
.document-status-select.question { border-color: #efc8bf; color: #8a3e31; background: #fde8e3; }
.document-status-select.done { border-color: #bfd8ce; color: #2d6152; background: #e2f0ea; }
.document-type-mark { display: inline-grid; place-items: center; min-width: 1.7rem; margin-right: .4rem; padding: .2rem; border-radius: .35rem; background: #dff1ea; color: var(--erp-color-primary-dark); font-size: .68rem; font-weight: 900; }
.document-state { display: inline-flex; padding: .24rem .5rem; border-radius: 999px; background: #fff0d6; color: #72521b; font-size: .7rem; font-weight: 800; }
.document-work-status-trace { display: grid; gap: .2rem; padding: .65rem 1rem; border-top: 1px solid var(--erp-color-border); background: var(--erp-color-surface-soft); color: var(--erp-color-muted); font-size: .75rem; }
.document-work-status-trace strong { color: var(--erp-color-heading); }
.document-status-alert { margin: .75rem .85rem 0; padding: .7rem .85rem; border: 1px solid #c97979; border-radius: .55rem; background: #fff0f0; color: #7c2020; font-weight: 750; }
.document-dialog-backdrop { position: fixed; inset: 0; z-index: 1000; display: grid; place-items: center; padding: 1rem; background: rgba(17, 36, 31, .48); }
.invoice-page-host, .invoice-page-surface { display: contents; }
.invoice-dialog-backdrop { padding: clamp(.45rem, 1.2vw, 1rem); }
.invoice-dialog { display: grid; grid-template-columns: minmax(0, 1fr); grid-template-rows: auto auto minmax(0, 1fr); min-width: 0; max-width: calc(100vw - 1rem); width: min(96rem, 100%); height: min(94vh, 64rem); overflow: hidden; border: 1px solid var(--erp-color-border); border-radius: var(--erp-radius-lg); background: var(--erp-color-surface); box-shadow: 0 1.4rem 4rem rgba(15, 35, 29, .28); }
.invoice-dialog-heading { display: flex; align-items: center; justify-content: space-between; gap: 1rem; padding: .72rem 1rem; border-bottom: 1px solid var(--erp-color-border); }
.invoice-dialog-heading h1, .invoice-dialog-heading p { margin: 0; }
.invoice-dialog-heading h1 { font-size: 1.2rem; }
.invoice-dialog-close { display: grid; width: 2.25rem; height: 2.25rem; place-items: center; border: 1px solid var(--erp-color-border); border-radius: .5rem; background: white; color: var(--erp-color-heading); font-size: 1.4rem; cursor: pointer; }
.invoice-dialog-tabs { display: flex; gap: 1.15rem; padding: 0 1rem; border-bottom: 1px solid var(--erp-color-border); background: var(--erp-color-surface-soft); }
.invoice-dialog-tabs button { padding: .7rem .15rem .62rem; border: 0; border-bottom: 3px solid transparent; background: none; color: var(--erp-color-muted); font-weight: 800; cursor: pointer; }
.invoice-dialog-tabs button.active { border-color: var(--erp-color-primary); color: var(--erp-color-primary-dark); }
.invoice-dialog-content { display: grid; grid-template-rows: auto minmax(0, 1fr) auto; min-height: 0; overflow: hidden; }
.financial-document-dialog { grid-template-rows: auto auto minmax(0, 1fr) auto; }
.financial-document-dialog .invoice-dialog-content { grid-template-rows: auto minmax(0, 1fr); }
.document-view-switch { display: none; }
.invoice-workspace-dialog { min-height: 0; padding: .75rem; overflow: auto; }
.invoice-workspace-dialog .card { margin: 0 0 .65rem; padding: .8rem; box-shadow: none; }
.invoice-workspace-dialog .invoice-preview-column { top: 0; }
.invoice-workspace-dialog .invoice-preview-frame { min-height: 40rem; height: calc(94vh - 16rem); }
/* Direct document data: keep both panes within the editor, with their own scroll. */
.invoice-workspace-dialog:not(.invoice-workspace-position-mode) {
    grid-template-columns: minmax(21rem, 1fr) minmax(0, 2fr);
    align-items: stretch;
    overflow: hidden;
}
.invoice-workspace-dialog:not(.invoice-workspace-position-mode) > :is(.invoice-editor-column, .invoice-preview-column) {
    position: static;
    min-height: 0;
    overflow: auto;
    scrollbar-gutter: stable;
}
.invoice-workspace-dialog:not(.invoice-workspace-position-mode) .invoice-preview-frame {
    min-height: 0;
    height: auto;
    overflow: visible;
}
.invoice-workspace-dialog:not(.invoice-workspace-position-mode) .form-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: .2rem .6rem;
}
.invoice-workspace-dialog:not(.invoice-workspace-position-mode) :is(input, select, textarea) { min-width: 0; min-height: 44px; }
.invoice-workspace-dialog:not(.invoice-workspace-position-mode) label { min-width: 0; overflow-wrap: anywhere; }
.invoice-workspace-dialog :is(.document-selected-customer, .document-selected-location) { min-width: 0; overflow-wrap: anywhere; margin-top: -.2rem; }
.invoice-dialog-actions { display: flex; justify-content: flex-end; gap: .55rem; padding: .65rem .85rem; border-top: 1px solid var(--erp-color-border); background: white; }
.invoice-dialog-actions button { width: auto; margin: 0; }
.invoice-discard-backdrop { z-index: 1100; }
.document-question-dialog { display: grid; gap: .85rem; width: min(34rem, 100%); padding: 1.2rem; border-radius: var(--erp-radius-lg); background: white; box-shadow: var(--erp-shadow-card); }
.document-question-dialog h2, .document-question-dialog p { margin: 0; }
.document-question-dialog label { display: grid; gap: .35rem; color: var(--erp-color-muted); font-size: .78rem; font-weight: 800; }
.document-question-dialog textarea { min-height: 7rem; padding: .65rem; resize: vertical; }
.document-question-actions { display: flex; flex-wrap: wrap; align-items: center; justify-content: flex-end; gap: .55rem; }
.document-question-actions button { box-sizing: border-box; display: inline-flex; align-items: center; justify-content: center; min-height: 2.6rem; margin: 0; padding: .5rem .75rem; }
.document-paging { display: flex; align-items: center; justify-content: center; gap: .75rem; padding: .75rem; }
.document-preview-panel { display: grid; grid-template-rows: auto minmax(28rem, 1fr) auto; min-width: 0; background: #e9efec; }
.document-preview-panel > header { display: flex; justify-content: space-between; gap: 1rem; padding: .7rem .85rem; background: white; border-bottom: 1px solid var(--erp-color-border); }
.document-preview-panel > header div { display: grid; }
.document-preview-panel > header small { color: var(--erp-color-muted); font-weight: 800; text-transform: uppercase; }
.document-pdf-preview { width: 100%; height: 100%; min-height: 38rem; border: 0; }
.document-preview-panel footer { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: .55rem; padding: .7rem; background: white; border-top: 1px solid var(--erp-color-border); }
.invoice-dialog fieldset { min-width: 0; margin: 0; padding: 0; border: 0; }
.document-preview-empty { display: grid; place-content: center; gap: .4rem; min-height: 35rem; color: var(--erp-color-muted); text-align: center; }

@media (max-width: 1100px) {
    .document-center-workspace { grid-template-columns: 1fr; }
    .document-list-panel { border-right: 0; border-bottom: 1px solid var(--erp-color-border); }
    .document-pdf-preview { min-height: 46rem; }
    .invoice-dialog { height: 96vh; }
    .invoice-workspace-dialog .invoice-preview-frame { height: 40rem; }
}

@media (min-width: 761px) and (max-width: 1000px) {
    .document-filter-bar { grid-template-columns: repeat(auto-fit, minmax(8.9rem, 1fr)); }
}

@media (max-width: 760px) {
    .object-search {
        align-items: stretch;
        flex-direction: column;
    }

    .document-center { padding-inline: .65rem; }
    .document-center-heading, .document-create-actions { width: 100%; }
    .document-create-actions > a { width: 100%; }
    .document-assistant-options { grid-template-columns: 1fr; }
    .document-center-workspace { display: block; min-height: 0; }
    .document-filter-bar { grid-template-columns: 1fr; }
    .document-filter-actions { align-items: stretch; }
    .document-list-summary span { display: none; }
    .document-preview-panel { min-height: 38rem; }
    .document-pdf-preview { min-height: 31rem; }
}

@media (max-width: 760px) {
    .setup-shell,
    .form-grid {
        grid-template-columns: 1fr;
    }

    .wide {
        grid-column: auto;
    }

    .brand-bar span {
        display: none;
    }

    .application-shell header {
        align-items: flex-start;
        flex-direction: column;
    }
}

@media (max-width: 1100px) {
    .invoice-workspace,
    .archive-workspace,
    .booking-summary-grid,
    .template-workspace {
        grid-template-columns: 1fr;
    }

    .archive-filter-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .archive-line {
        grid-template-columns: 1fr;
        gap: .25rem;
    }

    .archive-parties {
        grid-template-columns: 1fr;
    }

    .invoice-preview-column,
    .template-preview-card {
        position: static;
    }
}

@media (max-width: 1250px) {
    .master-data-page,
    .compact-two-column-page,
    .article-master-data-page {
        grid-template-columns: 1fr;
    }

    .master-data-page > header,
    .compact-two-column-page > header,
    .master-data-page > .alert,
    .compact-two-column-page > .alert,
    .master-data-page > .success-message,
    .compact-two-column-page > .success-message {
        grid-column: auto;
    }

    .company-settings-form > .settings-card:last-child {
        grid-column: auto;
    }
}

@media (max-width: 760px) {
    .app-topbar {
        grid-template-columns: minmax(0, 1fr) auto;
        gap: .75rem;
    }

    .app-layout {
        grid-template-columns: 1fr;
    }

    .app-sidebar {
        position: static;
        display: flex;
        overflow-x: auto;
        gap: 1.5rem;
        padding: .75rem 1rem;
        border-right: 0;
        border-bottom: 1px solid #d9e3de;
    }

    .app-navigation {
        grid-template-columns: none;
        grid-auto-flow: column;
        grid-auto-columns: max-content;
        align-items: start;
        flex: none;
    }

    .app-settings-navigation {
        margin: 0;
        padding: 0 0 0 1.5rem;
        border-top: 0;
        border-left: 1px solid #d9e3de;
    }

    .app-nav-heading {
        display: flex;
        align-items: center;
        padding: 0 .5rem;
    }

    .app-nav-section-heading {
        margin: 0;
        padding-left: 1rem;
        border-left: 1px solid var(--erp-color-border);
    }

    .app-unavailable-target {
        min-width: max-content;
    }

    .workspace-kpis {
        padding-inline: 1rem;
    }

    .workspace-kpi-icon { display: none; }

}

@media (max-width: 760px) {
    .app-topbar {
        grid-template-columns: minmax(0, 1fr) auto;
    }

    .app-account {
        grid-column: 1 / -1;
        grid-template-columns: minmax(0, 1fr) auto;
        align-items: center;
        padding-top: .5rem;
        border-top: 1px solid #d9e3de;
        text-align: left;
    }

    .app-document-actions {
        justify-content: stretch;
    }

    .app-assistant-target {
        display: none;
    }

    .document-create-menu,
    .document-create-menu > summary {
        width: 100%;
    }

    .archive-filter-grid {
        grid-template-columns: 1fr;
    }

    .archive-filter-search {
        grid-column: auto;
    }
}
.embedded-archive-detail > header,
.embedded-archive-detail > .archive-filter-card,
.embedded-archive-detail > .empty-state,
.embedded-archive-detail .archive-workspace > .settings-card:first-child {
    display: none;
}

.embedded-archive-detail,
.embedded-archive-detail .archive-workspace {
    padding: 0;
    display: block;
}

.document-archive-detail {
    margin-top: 1rem;
}

.pwa-status {
    position: fixed;
    right: 1rem;
    bottom: 1rem;
    z-index: 1000;
    max-width: 28rem;
    padding: 1rem;
    border: 1px solid #b8cec7;
    border-radius: .75rem;
    background: #f6fbf9;
    box-shadow: 0 .5rem 1.5rem rgb(25 67 55 / 16%);
}

.pwa-status[hidden] {
    display: none;
}

.pwa-status p {
    margin: 0 0 .75rem;
}

.pwa-status button {
    min-height: 2.75rem;
}

/* Wochentage form one compact group; adjacent form controls must not stretch. */
.weekday-selection { grid-column: 1 / -1; display: flex; flex-wrap: wrap; gap: .35rem 1rem; min-width: 0; margin: 0; padding: .35rem 0; border: 0; }
.weekday-selection legend { padding: 0; margin-bottom: .25rem; font-size: .78rem; font-weight: 700; }
.weekday-selection label { display: inline-flex; align-items: center; gap: .35rem; margin: 0; }
.weekday-selection input[type="checkbox"], .document-flow-options input[type="checkbox"] { flex: 0 0 1rem; width: 1rem; height: 1rem; min-height: 1rem; margin: 0; padding: 0; accent-color: var(--erp-color-primary); }
.invoice-editor-column .form-grid { align-items: start; }
.mobile-position-toggle { display: none; }
.invoice-dialog:has(.invoice-position-table) .invoice-dialog-content:has(> button) { grid-template-rows: auto minmax(0, 1fr) auto; }
@media (max-width: 700px) {
    body:has(.invoice-dialog .invoice-position-table) { max-width: 100vw; overflow: hidden; }
    .invoice-dialog-backdrop { width: 100vw; max-width: 100vw; height: 100dvh; left: 0; right: auto; bottom: auto; box-sizing: border-box; }
    .invoice-dialog:has(.invoice-position-table) { min-width: 0; max-width: calc(100vw - 1rem); }
    .invoice-dialog .invoice-workspace-dialog { position: relative; z-index: 0; }
    .invoice-dialog .invoice-dialog-actions { position: relative; z-index: 1; }
    .financial-document-dialog { grid-template-columns: minmax(0, 1fr); }
    .financial-document-dialog .invoice-dialog-actions { flex-wrap: wrap; }
    .financial-document-dialog .invoice-dialog-actions button { flex: 1 1 9rem; }
    .invoice-workspace-position-mode, .invoice-workspace-position-mode .invoice-editor-column { min-width: 0; }
    .invoice-change-dialog .invoice-editor-column { min-width: 0; }
    .invoice-change-dialog .invoice-dialog-actions { flex-wrap: wrap; }
    .invoice-change-dialog .invoice-dialog-actions button { flex: 1 1 100%; }
    .invoice-position-heading { align-items: stretch; flex-direction: column; }
    .invoice-position-toolbar { justify-content: flex-start; }
    .invoice-position-toolbar button { min-height: 2.75rem; height: auto; }
    .invoice-position-table-wrap { overflow: visible; border: 0; }
    .invoice-position-table { display: block; width: 100%; min-width: 0; table-layout: auto; }
    .invoice-position-table thead { display: none; }
    .invoice-position-table tbody { display: block; }
    .invoice-position-table tbody tr { display: block; margin-bottom: .65rem; border: 1px solid #aebdb7; border-radius: .35rem; }
    .invoice-position-table td { display: none; width: 100%; height: auto; padding: .45rem; border-right: 0; }
    .invoice-position-table td.invoice-position-number { display: block; }
    .desktop-position-number { display: none; }
    .mobile-position-toggle { display: flex; flex-wrap: wrap; align-items: center; gap: .35rem; width: 100%; padding: .35rem; border: 0; background: transparent; text-align: left; }
    .mobile-position-toggle > span { overflow-wrap: anywhere; }
    .mobile-position-toggle > span:first-of-type { flex: 1; min-width: 8rem; }
    .invoice-position-table .position-expanded td { display: block; }
    .invoice-position-table td[data-field]::before { content: attr(data-field); display: block; font-size: .75rem; font-weight: 700; color: #425e55; margin-bottom: .2rem; }
    .invoice-position-table input, .invoice-position-table select { min-height: 2.75rem; height: auto; border: 1px solid #bdccc6; background: white; }
    .invoice-position-actions { text-align: left; }
    .invoice-position-actions button { width: 2.75rem; height: 2.75rem; font-size: 1rem; }
    .position-article-results { min-width: 0; width: 100%; }
}

@media (max-width: 1100px) {
    .invoice-dialog-content .document-view-switch { display: flex; gap: .5rem; padding: .45rem .75rem; border-bottom: 1px solid var(--erp-color-border); }
    .document-view-switch button { flex: 1; min-height: 44px; margin: 0; }
    .document-view-switch button[aria-pressed="true"] { background: var(--erp-color-surface-soft); border-color: var(--erp-color-primary); }
    .invoice-workspace-dialog:not(.invoice-workspace-position-mode), .invoice-workspace-dialog { grid-template-columns: minmax(0, 1fr); grid-template-rows: minmax(0, 1fr); align-items: stretch; overflow: hidden; }
    .invoice-workspace-dialog:not(.invoice-workspace-position-mode) > :is(.invoice-editor-column, .invoice-preview-column) { min-height: 0; overflow: auto; }
    .invoice-workspace-dialog:not(.invoice-workspace-position-mode):not(.document-show-preview) > .invoice-preview-column,
    .invoice-workspace-dialog:not(.invoice-workspace-position-mode).document-show-preview > .invoice-editor-column { display: none; }
    .invoice-workspace-dialog.invoice-workspace-position-mode { grid-template-rows: auto; overflow: auto; align-items: start; }
    .invoice-workspace-dialog .invoice-preview-column { width: 100%; max-width: none; }
    .invoice-workspace-dialog .invoice-preview-frame { min-height: 0; height: auto; overflow: visible; }
    .invoice-dialog-actions { flex-wrap: wrap; }
    .invoice-dialog-actions button { min-height: 44px; }
}
@media (max-width: 480px) {
    .invoice-workspace-dialog:not(.invoice-workspace-position-mode) .form-grid { grid-template-columns: minmax(0, 1fr); }
}

.document-details-dialog { padding:0; border:0; background:white; width:min(900px,calc(100vw - 2rem)); max-height:calc(100dvh - 2rem); border-radius:12px; box-shadow:0 12px 50px #0004; }
.document-details-dialog[open] { display:flex; flex-direction:column; }
.document-details-dialog::backdrop { background:#0006; }
.document-details-dialog>header { display:flex; align-items:center; justify-content:space-between; gap:1rem; padding:1rem; flex-shrink:0; }
.document-details-dialog h2 { margin:0; }
.document-details-dialog>.document-tabs { flex-shrink:0; }
.document-details-hint { margin:.5rem 1rem; overflow-wrap:anywhere; }
.document-details-content { overflow:auto; padding:1rem; min-height:0; overscroll-behavior:contain; overflow-wrap:anywhere; }

/* Inner document scrolling remains available while the editor owns the page lock. */
[data-document-editor="true"] :is(.invoice-editor-column, .invoice-preview-column, .invoice-workspace-dialog, .invoice-position-table-wrap, .invoice-preview-frame) {
    overscroll-behavior: contain;
}
/* Small focused controls trigger automatic zoom in iOS Safari. Keep manual zoom available. */
@media (max-width: 1100px), (any-pointer: coarse) {
    [data-document-editor="true"] :is(input, select, textarea, [contenteditable="true"]) {
        font-size: max(16px, 1rem);
    }
}
.document-details-content .document-archive-detail { margin:0 0 1rem; }
@media(max-width:600px) { .document-details-dialog { width:calc(100vw - 1rem); max-height:calc(100dvh - 1rem); } .document-details-dialog>header { padding:.75rem; } }
