.zt-mobile-item{max-width:860px;margin-inline:auto}.zt-item-header{text-align:center;padding:1rem 0}.zt-brand{text-transform:uppercase;letter-spacing:.08em;font-weight:700;margin-bottom:.35rem}.zt-inventory{font-size:1.2rem;font-weight:700}.zt-status-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:.75rem}.zt-status-grid .card{min-width:0}.zt-status-grid .card-body{display:grid;grid-template-columns:minmax(0,42%) minmax(0,1fr);column-gap:.85rem;row-gap:.25rem;align-items:start}.zt-label{min-width:0;font-size:.88rem;line-height:1.35;opacity:.75}.zt-status-grid .card-body strong{min-width:0;line-height:1.35;overflow-wrap:break-word;hyphens:auto}.zt-action-panel>summary{list-style:none;cursor:pointer}.zt-action-panel>summary::-webkit-details-marker{display:none}.zt-action-panel[open]>summary{border-bottom-left-radius:.25rem;border-bottom-right-radius:.25rem}.zt-internal-card dl{margin-bottom:0}@media(max-width:575.98px){.zt-mobile-item h1{font-size:1.65rem}.zt-status-grid{grid-template-columns:1fr}.zt-status-grid .card-body{grid-template-columns:minmax(7.5rem,42%) minmax(0,1fr);column-gap:1rem}.zt-action-panel .btn-lg{min-height:3.25rem}.zt-internal-card dt,.zt-internal-card dd{width:100%}}

.zt-items-page{max-width:1100px;margin:0 auto}.zt-mobile-filters{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:.8rem;padding:1rem;margin:1rem 0;border:1px solid var(--border-color,#dfe3e7);border-radius:.8rem;background:var(--body-bg,#fff)}.zt-mobile-filters label{display:flex;flex-direction:column;gap:.25rem;font-weight:600}.zt-mobile-filters input,.zt-mobile-filters select{min-height:44px;width:100%}.zt-filter-actions{display:flex;align-items:end;gap:.5rem;flex-wrap:wrap}.zt-result-count{margin:.5rem 0 1rem;color:var(--secondary-color,#59636e)}.zt-item-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:1rem}.zt-item-card{border:1px solid var(--border-color,#dfe3e7);border-radius:.85rem;background:var(--body-bg,#fff);overflow:hidden}.zt-item-card-link{display:block;height:100%;padding:1rem;color:inherit;text-decoration:none}.zt-item-card-link:hover,.zt-item-card-link:focus{background:rgba(0,0,0,.025);color:inherit}.zt-item-card-top{display:flex;justify-content:space-between;gap:1rem;align-items:flex-start}.zt-item-card h2{font-size:1.15rem;margin:0}.zt-inventory-number{font-weight:700;margin-top:.2rem}.zt-status-badge{display:inline-block;padding:.25rem .5rem;border-radius:999px;background:#e9ecef;font-size:.85rem;white-space:nowrap}.zt-item-card-details{margin:.85rem 0 0}.zt-item-card-details>div{display:grid;grid-template-columns:minmax(110px,42%) 1fr;gap:.5rem;padding:.28rem 0;border-top:1px solid rgba(0,0,0,.07)}.zt-item-card-details dt{font-weight:600}.zt-item-card-details dd{margin:0}.zt-loan-summary{margin-top:.8rem;padding:.65rem;border-radius:.5rem;background:rgba(255,193,7,.15)}.zt-pagination{margin-top:1.25rem}.zt-pagination .pagination{flex-wrap:wrap}@media(max-width:575.98px){.zt-mobile-filters{grid-template-columns:1fr}.zt-filter-actions .btn{flex:1}.zt-item-grid{grid-template-columns:1fr}.zt-item-card-top{flex-direction:column}.zt-status-badge{align-self:flex-start}}

.zt-main-photo {
    margin-inline: auto;
    max-width: 620px;
    overflow: hidden;
    border: 1px solid var(--border-color, #dfe3e7);
    border-radius: .85rem;
    background: #f3f5f7;
}

.zt-main-photo img {
    display: block;
    width: 100%;
    max-height: 400px;
    object-fit: contain;
}

.zt-photo-gallery {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(110px, 1fr));
    gap: .65rem;
}

.zt-photo-gallery a {
    display: block;
    overflow: hidden;
    border: 1px solid var(--border-color, #dfe3e7);
    border-radius: .55rem;
    background: #f3f5f7;
}

.zt-photo-gallery img {
    display: block;
    width: 100%;
    aspect-ratio: 4 / 3;
    object-fit: cover;
}

.zt-item-card-photo {
    display: block;
    width: calc(100% + 2rem);
    height: 150px;
    margin: -1rem -1rem 1rem;
    object-fit: cover;
    background: #f3f5f7;
}

/* Version 0.1.90 – kompakte mobile Aktionsoberfläche */
.zt-action-launcher {
    position: relative;
}

.zt-action-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: .75rem;
}

.zt-action-grid .btn {
    min-height: 3.4rem;
    display: flex;
    align-items: center;
    justify-content: center;
    white-space: normal;
    line-height: 1.2;
}

.zt-mobile-action-panel[hidden] {
    display: none !important;
}

.zt-mobile-action-panel {
    scroll-margin-top: 1rem;
}

.zt-mobile-action-panel .card {
    overflow: visible;
}

.zt-mobile-action-panel .card-header {
    position: sticky;
    top: 0;
    z-index: 4;
    background: var(--card-bg, var(--body-bg, #fff));
}

.zt-mobile-form-section {
    margin: 0 0 1.25rem;
    padding: 1rem;
    border: 1px solid var(--border-color, #dfe3e7);
    border-radius: .7rem;
}

.zt-mobile-form-section legend {
    float: none;
    width: auto;
    margin: 0 0 .75rem;
    padding: 0 .35rem;
    font-size: 1rem;
    font-weight: 700;
}

.zt-mobile-form-actions {
    position: sticky;
    bottom: 0;
    z-index: 5;
    display: flex;
    gap: .65rem;
    flex-wrap: wrap;
    margin: 1.25rem -1rem -1rem;
    padding: .85rem 1rem;
    border-top: 1px solid var(--border-color, #dfe3e7);
    background: var(--card-bg, var(--body-bg, #fff));
    box-shadow: 0 -.35rem .8rem rgba(0, 0, 0, .06);
}

.zt-mobile-form-actions .btn {
    flex: 1 1 10rem;
}

.zt-return-form:last-of-type {
    margin-bottom: 0 !important;
}

@media (max-width: 575.98px) {
    .zt-action-grid {
        grid-template-columns: 1fr 1fr;
        gap: .55rem;
    }

    .zt-action-grid .btn {
        min-height: 3.75rem;
        padding-inline: .55rem;
        font-size: 1rem;
    }

    .zt-mobile-action-panel .card-body {
        padding: .85rem;
    }

    .zt-mobile-form-section {
        padding: .8rem;
    }

    .zt-mobile-form-actions {
        margin-right: -.85rem;
        margin-left: -.85rem;
        padding-right: .85rem;
        padding-left: .85rem;
    }
}

/* Version 0.1.100 – strukturierte Navigation des geschützten Frontend-Arbeitsbereichs */
.zt-workspace-shell {
    max-width: 1180px;
    margin: 0 auto 1.5rem;
}

.zt-workspace-bar {
    display: grid;
    grid-template-columns: minmax(13rem, auto) minmax(18rem, 1fr) auto;
    grid-template-areas: "brand navigation account";
    align-items: center;
    gap: 1rem;
    padding: .8rem;
    border: 1px solid var(--border-color, #dfe3e7);
    border-radius: 1rem;
    background: var(--body-bg, #fff);
    box-shadow: 0 .3rem 1rem rgba(0, 0, 0, .07);
}

.zt-workspace-logo {
    grid-area: brand;
    display: inline-flex;
    align-items: center;
    gap: .7rem;
    min-width: 0;
    color: inherit;
    text-decoration: none;
}

.zt-workspace-logo:hover,
.zt-workspace-logo:focus {
    color: inherit;
    text-decoration: none;
}

.zt-workspace-mark {
    display: grid;
    flex: 0 0 2.65rem;
    width: 2.65rem;
    height: 2.65rem;
    place-items: center;
    border-radius: .8rem;
    background: var(--cassiopeia-color-primary, #b02a37);
    color: #fff;
    font-size: .9rem;
    font-weight: 800;
    letter-spacing: .04em;
    box-shadow: inset 0 0 0 1px rgba(255, 255, 255, .16);
}

.zt-workspace-brandcopy {
    display: flex;
    min-width: 0;
    flex-direction: column;
    line-height: 1.2;
}

.zt-workspace-brandcopy strong {
    overflow: hidden;
    font-size: 1rem;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.zt-workspace-brandcopy small {
    overflow: hidden;
    margin-top: .12rem;
    color: var(--secondary-color, #59636e);
    font-size: .76rem;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.zt-workspace-nav {
    grid-area: navigation;
    display: flex;
    justify-content: center;
    gap: .35rem;
    min-width: 0;
    padding: .28rem;
    border: 1px solid var(--border-color, #dfe3e7);
    border-radius: .8rem;
    background: rgba(0, 0, 0, .025);
}

.zt-workspace-nav-link {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: .42rem;
    min-height: 2.45rem;
    padding: .52rem .9rem;
    border-radius: .58rem;
    color: inherit;
    font-weight: 650;
    line-height: 1;
    text-decoration: none;
    transition: background-color .12s ease, color .12s ease, box-shadow .12s ease;
}

.zt-workspace-nav-link:hover,
.zt-workspace-nav-link:focus {
    background: var(--body-bg, #fff);
    color: inherit;
    box-shadow: 0 .12rem .35rem rgba(0, 0, 0, .08);
    text-decoration: none;
}

.zt-workspace-nav-link.is-active {
    background: var(--cassiopeia-color-primary, #b02a37);
    color: #fff;
    box-shadow: 0 .15rem .45rem rgba(0, 0, 0, .15);
}

.zt-workspace-nav-link.is-active:hover,
.zt-workspace-nav-link.is-active:focus {
    color: #fff;
}


.zt-workspace-account {
    grid-area: account;
    display: flex;
    align-items: center;
    justify-content: flex-end;
    gap: .65rem;
    min-width: 0;
}

.zt-workspace-userbox {
    display: flex;
    min-width: 0;
    max-width: 12rem;
    flex-direction: column;
    align-items: flex-end;
    line-height: 1.15;
}

.zt-workspace-userbox > span {
    color: var(--secondary-color, #59636e);
    font-size: .7rem;
}

.zt-workspace-user {
    display: block;
    max-width: 100%;
    overflow: hidden;
    font-size: .88rem;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.zt-workspace-account-actions {
    display: flex;
    align-items: center;
    gap: .35rem;
}

.zt-workspace-account form {
    margin: 0;
}

.zt-workspace-action {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 2.35rem;
    padding: .42rem .7rem;
    border: 1px solid var(--border-color, #cfd4da);
    border-radius: .58rem;
    background: var(--body-bg, #fff);
    color: inherit;
    font: inherit;
    font-size: .82rem;
    line-height: 1.1;
    text-decoration: none;
    white-space: nowrap;
    cursor: pointer;
}

.zt-workspace-action:hover,
.zt-workspace-action:focus {
    background: rgba(0, 0, 0, .045);
    color: inherit;
    text-decoration: none;
}

.zt-workspace-action-danger {
    border-color: rgba(176, 42, 55, .45);
    color: var(--danger, #b02a37);
}

.zt-workspace-action-danger:hover,
.zt-workspace-action-danger:focus {
    background: rgba(176, 42, 55, .08);
    color: var(--danger, #b02a37);
}

.zt-workspace {
    max-width: 1180px;
    margin-inline: auto;
}

.zt-workspace-heading {
    margin-bottom: 1.25rem;
}

.zt-workspace-heading h1 {
    margin-bottom: .35rem;
}

.zt-workspace-heading p {
    margin: 0;
    color: var(--secondary-color, #59636e);
}

.zt-dashboard-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(210px, 1fr));
    gap: 1rem;
}

.zt-dashboard-card {
    color: inherit;
    text-decoration: none;
    transition: transform .12s ease, box-shadow .12s ease;
}

.zt-dashboard-card:hover,
.zt-dashboard-card:focus {
    color: inherit;
    transform: translateY(-2px);
    box-shadow: 0 .4rem 1rem rgba(0, 0, 0, .1);
}

.zt-dashboard-card .card-body {
    display: flex;
    flex-direction: column;
    gap: .25rem;
}

.zt-dashboard-value {
    font-size: 2rem;
    line-height: 1;
}

.zt-dashboard-label {
    font-weight: 700;
}

.zt-dashboard-desc {
    color: var(--secondary-color, #59636e);
    font-size: .9rem;
}

.zt-recent-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
    gap: 1rem;
}

.zt-recent-item {
    display: grid;
    grid-template-columns: 88px 1fr;
    overflow: hidden;
    color: inherit;
    text-decoration: none;
}

.zt-recent-item:hover,
.zt-recent-item:focus {
    color: inherit;
    box-shadow: 0 .35rem .9rem rgba(0, 0, 0, .08);
}

.zt-recent-item > img {
    width: 88px;
    height: 100%;
    min-height: 132px;
    object-fit: cover;
    background: #f3f5f7;
}

.zt-recent-item .card-body {
    display: flex;
    min-width: 0;
    flex-direction: column;
    gap: .2rem;
}

.zt-recent-item .card-body > * {
    overflow: hidden;
    text-overflow: ellipsis;
}

.zt-recent-item small {
    margin-top: auto;
    color: var(--secondary-color, #59636e);
}

.zt-workspace-login {
    display: grid;
    min-height: 60vh;
    padding: 1rem;
    place-items: center;
}

.zt-login-card {
    width: min(100%, 460px);
    box-shadow: 0 .5rem 1.5rem rgba(0, 0, 0, .08);
}

.zt-login-card .card-body {
    padding: clamp(1.25rem, 4vw, 2.25rem);
}

.zt-login-form {
    margin-top: 1.5rem;
}

.zt-login-security summary {
    cursor: pointer;
    font-weight: 600;
}

.zt-login-links {
    display: flex;
    justify-content: center;
    gap: .85rem;
    flex-wrap: wrap;
    margin-top: 1.25rem;
    font-size: .92rem;
}

@media (max-width: 980px) {
    .zt-workspace-bar {
        grid-template-columns: minmax(13rem, 1fr) auto;
        grid-template-areas:
            "brand account"
            "navigation navigation";
    }

    .zt-workspace-nav {
        justify-content: stretch;
    }

    .zt-workspace-nav-link {
        flex: 1 1 0;
    }
}

@media (max-width: 640px) {
    .zt-workspace-shell {
        margin-bottom: 1.1rem;
    }

    .zt-workspace-bar {
        grid-template-columns: 1fr;
        grid-template-areas:
            "brand"
            "navigation"
            "account";
        gap: .7rem;
        padding: .7rem;
        border-radius: .8rem;
    }

    .zt-workspace-logo {
        justify-content: center;
    }

    .zt-workspace-brandcopy {
        flex: 0 1 auto;
    }

    .zt-workspace-account {
        justify-content: space-between;
        padding-top: .15rem;
    }

    .zt-workspace-userbox {
        align-items: flex-start;
    }

    .zt-workspace-account-actions {
        justify-content: flex-end;
        flex-wrap: wrap;
    }

    .zt-workspace-action {
        min-height: 2.55rem;
    }

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

    .zt-dashboard-card .card-body {
        padding: .85rem;
    }

    .zt-dashboard-value {
        font-size: 1.7rem;
    }

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

@media (max-width: 430px) {
    .zt-workspace-account {
        align-items: stretch;
        flex-direction: column;
    }

    .zt-workspace-account-actions {
        display: grid;
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .zt-workspace-account-actions > *,
    .zt-workspace-account-actions form,
    .zt-workspace-account-actions .zt-workspace-action {
        width: 100%;
    }

    .zt-dashboard-grid {
        grid-template-columns: 1fr;
    }

    .zt-recent-item {
        grid-template-columns: 72px 1fr;
    }

    .zt-recent-item > img {
        width: 72px;
    }
}


/* Version 0.1.97 – Gegenstände im geschützten Frontend anlegen und bearbeiten */
.zt-heading-with-action,.zt-manageitem-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem;flex-wrap:wrap}.zt-heading-with-action>div,.zt-manageitem-heading>div:first-child{min-width:0}.zt-item-card-actions{display:flex;justify-content:flex-end;padding:.65rem 1rem;border-top:1px solid var(--border-color,#dfe3e7);background:rgba(0,0,0,.018)}.zt-manageitem-page{max-width:1180px}.zt-manageitem-header-actions{display:flex;gap:.5rem;flex-wrap:wrap}.zt-manageitem-toolbar{position:sticky;top:.5rem;z-index:20;display:flex;justify-content:flex-end;gap:.6rem;flex-wrap:wrap;margin-bottom:1rem;padding:.7rem;border:1px solid var(--border-color,#dfe3e7);border-radius:.75rem;background:var(--body-bg,#fff);box-shadow:0 .25rem .8rem rgba(0,0,0,.08)}.zt-manageitem-toolbar-bottom{position:static;margin-top:1rem;margin-bottom:0;box-shadow:none}.zt-manageitem-page .tab-content{padding-top:1rem}.zt-manageitem-page .control-group{margin-bottom:1rem}.zt-manageitem-page .control-label{margin-bottom:.35rem;font-weight:600}.zt-manageitem-page .controls input:not([type=checkbox]):not([type=radio]),.zt-manageitem-page .controls select,.zt-manageitem-page .controls textarea{width:100%;max-width:none}.zt-manageitem-page .field-calendar{width:100%}.zt-manageitem-page .field-calendar input{min-width:0}.zt-frontend-photo-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:1rem}.zt-frontend-photo-grid article{overflow:hidden}.zt-frontend-photo-grid img{display:block;width:100%;aspect-ratio:4/3;object-fit:cover;background:#f3f5f7}.zt-manageitem-page .nav-tabs{overflow-x:auto;flex-wrap:nowrap}.zt-manageitem-page .nav-tabs .nav-link{white-space:nowrap}
@media(max-width:767.98px){.zt-heading-with-action,.zt-manageitem-heading{display:block}.zt-heading-with-action .btn-lg,.zt-manageitem-header-actions{margin-top:1rem}.zt-manageitem-header-actions .btn{flex:1 1 auto}.zt-manageitem-toolbar{top:.25rem;justify-content:stretch}.zt-manageitem-toolbar .btn{flex:1 1 8rem}.zt-manageitem-page .card-body{padding:.9rem}.zt-frontend-photo-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}

/* Version 0.1.102 – Frontend-Dokumentverwaltung */
.zt-document-filters {
    display: grid;
    grid-template-columns: minmax(260px, 2fr) minmax(190px, 1fr) auto;
    gap: .8rem;
    align-items: end;
    margin: 1rem 0;
    padding: 1rem;
    border: 1px solid var(--border-color, #dfe3e7);
    border-radius: .8rem;
    background: var(--body-bg, #fff);
}

.zt-document-filters .zt-filter-actions {
    flex-wrap: nowrap;
}

.zt-filter-context {
    display: inline-flex;
    gap: .35rem;
    flex-wrap: wrap;
    padding: .4rem .65rem;
    border-radius: .55rem;
    background: rgba(0, 0, 0, .045);
    font-size: .9rem;
}

.zt-document-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(310px, 1fr));
    gap: 1rem;
}

.zt-document-card {
    display: flex;
    min-width: 0;
    flex-direction: column;
    overflow: hidden;
}

.zt-document-card.is-unpublished {
    opacity: .75;
}

.zt-document-card .card-body {
    flex: 1 1 auto;
}

.zt-document-card-heading {
    display: flex;
    justify-content: space-between;
    gap: 1rem;
    align-items: flex-start;
}

.zt-document-count {
    display: grid;
    flex: 0 0 2rem;
    width: 2rem;
    height: 2rem;
    place-items: center;
    border-radius: 999px;
    background: rgba(0, 0, 0, .07);
    font-size: .85rem;
    font-weight: 700;
}

.zt-document-details {
    margin: 1rem 0 0;
}

.zt-document-details > div {
    display: grid;
    grid-template-columns: minmax(105px, 38%) 1fr;
    gap: .6rem;
    padding: .35rem 0;
    border-top: 1px solid rgba(0, 0, 0, .07);
}

.zt-document-details dt {
    font-weight: 600;
}

.zt-document-details dd {
    min-width: 0;
    margin: 0;
    overflow-wrap: anywhere;
}

.zt-document-assignments {
    margin-top: 1rem;
    padding: .75rem;
    border-radius: .6rem;
    background: rgba(0, 0, 0, .035);
}

.zt-document-assignments ul {
    margin: .4rem 0 0;
    padding-left: 1.2rem;
}

.zt-document-actions {
    display: flex;
    gap: .5rem;
    flex-wrap: wrap;
    justify-content: flex-end;
}

.zt-managedocument-page {
    max-width: 1180px;
}

.zt-managedocument-page .tab-content {
    padding-top: 1rem;
}

.zt-managedocument-page .control-group {
    margin-bottom: 1rem;
}

.zt-managedocument-page .control-label {
    margin-bottom: .35rem;
    font-weight: 600;
}

.zt-managedocument-page .controls input:not([type=checkbox]):not([type=radio]),
.zt-managedocument-page .controls select,
.zt-managedocument-page .controls textarea {
    width: 100%;
    max-width: none;
}

.zt-managedocument-page select[multiple] {
    min-height: 16rem;
}

.zt-managedocument-page .nav-tabs {
    overflow-x: auto;
    flex-wrap: nowrap;
}

.zt-managedocument-page .nav-tabs .nav-link {
    white-space: nowrap;
}

.zt-item-document-list {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
    gap: 1rem;
}

@media (max-width: 767.98px) {
    .zt-document-filters {
        grid-template-columns: 1fr;
    }

    .zt-document-filters .zt-filter-actions .btn {
        flex: 1 1 0;
    }

    .zt-document-grid,
    .zt-item-document-list {
        grid-template-columns: 1fr;
    }

    .zt-document-actions .btn {
        flex: 1 1 8rem;
    }
}

/* Version 0.1.103 – Frontend-Ausleihverwaltung */
.zt-loan-filters {
    display: grid;
    grid-template-columns: minmax(260px, 2fr) minmax(190px, 1fr) auto;
    gap: .8rem;
    align-items: end;
    margin: 1rem 0;
    padding: 1rem;
    border: 1px solid var(--border-color, #dfe3e7);
    border-radius: .8rem;
    background: var(--body-bg, #fff);
}

.zt-loan-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(315px, 1fr));
    gap: 1rem;
}

.zt-loan-card {
    display: flex;
    min-width: 0;
    flex-direction: column;
    overflow: hidden;
    border-left-width: .35rem;
}

.zt-loan-card.is-open {
    border-left-color: var(--primary, #0d6efd);
}

.zt-loan-card.is-overdue {
    border-left-color: var(--danger, #dc3545);
}

.zt-loan-card.is-returned {
    border-left-color: var(--success, #198754);
    opacity: .92;
}

.zt-loan-card .card-body {
    flex: 1 1 auto;
}

.zt-loan-card-heading {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 1rem;
}

.zt-loan-quantity {
    display: grid;
    flex: 0 0 2.25rem;
    width: 2.25rem;
    height: 2.25rem;
    place-items: center;
    border-radius: 999px;
    background: rgba(0, 0, 0, .07);
    font-weight: 700;
}

.zt-loan-item {
    margin-top: 1rem;
    padding: .7rem .8rem;
    border-radius: .6rem;
    background: rgba(0, 0, 0, .04);
    overflow-wrap: anywhere;
}

.zt-loan-details {
    margin: 1rem 0 0;
}

.zt-loan-details > div {
    display: grid;
    grid-template-columns: minmax(115px, 38%) minmax(0, 1fr);
    gap: .65rem;
    padding: .35rem 0;
    border-top: 1px solid rgba(0, 0, 0, .07);
}

.zt-loan-details dt {
    font-weight: 600;
}

.zt-loan-details dd {
    min-width: 0;
    margin: 0;
    overflow-wrap: anywhere;
}

.zt-loan-notes {
    margin: 1rem 0 0;
    padding: .75rem;
    border-radius: .6rem;
    background: rgba(0, 0, 0, .035);
}

.zt-loan-actions {
    display: flex;
    gap: .5rem;
    flex-wrap: wrap;
    justify-content: flex-end;
}

.zt-loan-actions form {
    margin: 0;
}

.zt-manageloan-page {
    max-width: 980px;
}

.zt-manageloan-form .card {
    overflow: visible;
}

.zt-manageloan-actions {
    display: flex;
    justify-content: flex-end;
    gap: .75rem;
    flex-wrap: wrap;
    margin-top: 1rem;
}

@media (max-width: 767.98px) {
    .zt-loan-filters {
        grid-template-columns: 1fr;
    }

    .zt-loan-filters .zt-filter-actions .btn,
    .zt-loan-actions .btn,
    .zt-loan-actions form,
    .zt-loan-actions form .btn,
    .zt-manageloan-actions .btn {
        flex: 1 1 9rem;
        width: 100%;
    }

    .zt-loan-grid {
        grid-template-columns: 1fr;
    }

    .zt-loan-details > div {
        grid-template-columns: 1fr;
        gap: .1rem;
    }

    .zt-manageloan-actions {
        display: grid;
        grid-template-columns: 1fr;
    }
}

/* Version 0.1.109 – Frontend-Übersicht Prüfungen, Wartung und Reparatur */
.zt-workspace-nav {
    flex-wrap: wrap;
}

.zt-maintenance-quickadd {
    overflow: visible;
}

.zt-maintenance-quickadd-form {
    display: grid;
    grid-template-columns: minmax(260px, 1fr) auto;
    gap: .8rem;
    align-items: end;
}

.zt-section-heading {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 1rem;
}

.zt-due-check-grid,
.zt-maintenance-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(315px, 1fr));
    gap: 1rem;
}

.zt-due-check-card,
.zt-maintenance-card {
    display: flex;
    min-width: 0;
    flex-direction: column;
    overflow: hidden;
    border-left-width: .35rem;
}

.zt-due-check-card.is-due,
.zt-maintenance-card.has-due-followup {
    border-left-color: var(--danger, #dc3545);
}

.zt-due-check-card.is-upcoming {
    border-left-color: var(--warning, #ffc107);
}

.zt-due-check-card .card-body,
.zt-maintenance-card .card-body {
    flex: 1 1 auto;
}

.zt-maintenance-card-heading {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 1rem;
}

.zt-maintenance-card-heading > div {
    min-width: 0;
}

.zt-maintenance-card-heading h3,
.zt-maintenance-card-heading .text-body-secondary {
    overflow-wrap: anywhere;
}

.zt-due-date,
.zt-maintenance-event-date {
    flex: 0 0 auto;
    white-space: nowrap;
}

.zt-maintenance-filters {
    display: grid;
    grid-template-columns: minmax(260px, 2fr) repeat(3, minmax(170px, 1fr)) auto;
    gap: .8rem;
    align-items: end;
    margin: 1rem 0;
    padding: 1rem;
    border: 1px solid var(--border-color, #dfe3e7);
    border-radius: .8rem;
    background: var(--body-bg, #fff);
}

.zt-maintenance-details {
    margin: 1rem 0 0;
}

.zt-maintenance-details > div {
    display: grid;
    grid-template-columns: minmax(120px, 40%) minmax(0, 1fr);
    gap: .65rem;
    padding: .35rem 0;
    border-top: 1px solid rgba(0, 0, 0, .07);
}

.zt-maintenance-details dt {
    font-weight: 600;
}

.zt-maintenance-details dd {
    min-width: 0;
    margin: 0;
    overflow-wrap: anywhere;
}

.zt-maintenance-notes {
    margin: 1rem 0 0;
    padding: .75rem;
    border-radius: .6rem;
    background: rgba(0, 0, 0, .035);
    overflow-wrap: anywhere;
}

.zt-maintenance-actions {
    display: flex;
    justify-content: flex-end;
    gap: .5rem;
    flex-wrap: wrap;
}

@media (max-width: 1100px) {
    .zt-maintenance-filters {
        grid-template-columns: repeat(2, minmax(220px, 1fr));
    }

    .zt-maintenance-filters .zt-filter-search {
        grid-column: 1 / -1;
    }

    .zt-maintenance-filters .zt-filter-actions {
        grid-column: 1 / -1;
        justify-content: flex-end;
    }
}

@media (max-width: 980px) {
    .zt-workspace-nav-link {
        flex: 1 1 8rem;
    }
}

@media (max-width: 767.98px) {
    .zt-maintenance-quickadd-form,
    .zt-maintenance-filters {
        grid-template-columns: 1fr;
    }

    .zt-maintenance-filters .zt-filter-search,
    .zt-maintenance-filters .zt-filter-actions {
        grid-column: auto;
    }

    .zt-maintenance-quickadd-form .btn,
    .zt-maintenance-filters .zt-filter-actions .btn,
    .zt-maintenance-actions .btn {
        width: 100%;
        flex: 1 1 9rem;
    }

    .zt-due-check-grid,
    .zt-maintenance-grid {
        grid-template-columns: 1fr;
    }

    .zt-maintenance-details > div {
        grid-template-columns: 1fr;
        gap: .1rem;
    }
}

@media (max-width: 520px) {
    .zt-workspace-nav-link {
        flex: 1 1 calc(50% - .35rem);
    }

    .zt-maintenance-card-heading {
        flex-direction: column;
    }
}

/* Version 0.1.110 – zugehörige Gegenstände im geschützten Frontend */
.zt-relation-grid,
.zt-related-items-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(min(100%, 300px), 1fr));
    gap: 1rem;
}

.zt-relation-card,
.zt-related-item {
    min-width: 0;
}

.zt-relation-card-heading {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    gap: .75rem;
    flex-wrap: wrap;
}

.zt-relation-card-heading > div,
.zt-related-item > div {
    min-width: 0;
}

.zt-relation-card h3,
.zt-related-item h3,
.zt-relation-note,
.zt-related-item p {
    overflow-wrap: anywhere;
}

.zt-relation-note,
.zt-related-item {
    margin: .85rem 0 0;
    padding: .85rem;
    border: 1px solid var(--border-color, #dfe3e7);
    border-radius: .55rem;
    background: rgba(0, 0, 0, .02);
}

.zt-relation-note {
    margin-bottom: 0;
}

@media (max-width: 575.98px) {
    .zt-relation-card .btn,
    .zt-related-item .btn {
        width: 100%;
    }
}

/* Version 0.1.111 – QR-Codes und Etiketten im geschützten Frontend */
.zt-qr-label-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(min(100%, 280px), 1fr));
    gap: 1.25rem;
    align-items: start;
}

.zt-qr-card {
    text-align: center;
}

.zt-qr-code {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: min(100%, 240px);
    aspect-ratio: 1;
    padding: .5rem;
    background: #fff;
    border: 1px solid var(--border-color, #dfe3e7);
    border-radius: .55rem;
}

.zt-qr-code canvas,
.zt-qr-code img {
    display: block;
    width: 100% !important;
    height: auto !important;
}

.zt-label-preview {
    display: block;
    width: 100%;
    height: auto;
    max-width: 420px;
    margin-inline: auto;
    border: 1px solid var(--border-color, #dfe3e7);
    border-radius: .35rem;
    background: #fff;
}

.zt-label-batch-form {
    margin: 0;
}

.zt-label-batch-toolbar {
    display: flex;
    align-items: center;
    gap: .75rem 1rem;
    flex-wrap: wrap;
    margin: 0 0 1rem;
    padding: .85rem 1rem;
    border: 1px solid var(--border-color, #dfe3e7);
    border-radius: .75rem;
    background: var(--body-bg, #fff);
}

.zt-label-batch-toolbar .form-text {
    flex: 1 1 18rem;
    margin: 0;
}

.zt-item-card {
    position: relative;
}

.zt-label-select {
    display: flex;
    align-items: center;
    gap: .45rem;
    padding: .55rem .75rem;
    border-bottom: 1px solid var(--border-color, #dfe3e7);
    background: rgba(0, 0, 0, .025);
    font-size: .88rem;
    font-weight: 600;
    cursor: pointer;
}

.zt-label-select .form-check-input {
    flex: 0 0 auto;
    margin: 0;
}

@media (max-width: 575.98px) {
    .zt-label-batch-toolbar,
    .zt-label-batch-toolbar .btn {
        width: 100%;
    }

    .zt-label-batch-toolbar {
        align-items: stretch;
    }
}

/* Version 0.1.113 – mobile Feinarbeit des geschützten Frontend-Arbeitsbereichs */
.zt-site,
.zt-workspace-shell,
.zt-workspace-bar,
.zt-workspace-nav,
.zt-workspace,
.zt-site .card,
.zt-site .card-body,
.zt-site .card-footer {
    min-width: 0;
}

.zt-site :where(h1, h2, h3, p, dd, a, strong, span) {
    overflow-wrap: break-word;
}

.zt-site :where(.btn, .form-control, .form-select, input[type="file"], summary) {
    touch-action: manipulation;
}

.zt-filter-panel {
    margin: 1rem 0;
}

.zt-filter-summary {
    display: none;
    align-items: center;
    justify-content: space-between;
    gap: .75rem;
    min-height: 3rem;
    padding: .75rem 1rem;
    border: 1px solid var(--border-color, #dfe3e7);
    border-radius: .75rem;
    background: var(--body-bg, #fff);
    font-weight: 700;
    cursor: pointer;
    list-style: none;
}

.zt-filter-summary::-webkit-details-marker {
    display: none;
}

.zt-filter-summary::after {
    content: "⌄";
    flex: 0 0 auto;
    font-size: 1.25rem;
    line-height: 1;
    transition: transform .15s ease;
}

.zt-filter-panel[open] > .zt-filter-summary::after {
    transform: rotate(180deg);
}

.zt-filter-panel > :is(.zt-mobile-filters, .zt-document-filters, .zt-loan-filters, .zt-maintenance-filters) {
    margin-top: 0;
}

@media (min-width: 768px) {
    .zt-filter-panel:not([open]) > :not(summary) {
        display: grid;
    }
}

.zt-site .nav-tabs {
    scrollbar-width: thin;
    overscroll-behavior-inline: contain;
}

.zt-site .nav-tabs .nav-link {
    min-height: 44px;
}

.zt-site .pagination {
    gap: .2rem;
}

.zt-site .page-link {
    min-width: 42px;
    min-height: 42px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
}

@media (max-width: 767.98px) {
    .zt-workspace-shell,
    .zt-workspace,
    .zt-items-page,
    .zt-mobile-item,
    .zt-managedocument-page,
    .zt-manageitem-page,
    .zt-manageloan-page {
        width: 100%;
        max-width: 100%;
    }

    .zt-workspace-bar {
        padding: .65rem;
    }

    .zt-workspace-logo {
        justify-content: flex-start;
    }

    .zt-workspace-nav {
        display: flex;
        flex-wrap: nowrap;
        justify-content: flex-start;
        overflow-x: auto;
        overflow-y: hidden;
        padding: .3rem;
        scroll-padding-inline: .3rem;
        scroll-snap-type: x proximity;
        scrollbar-width: thin;
        overscroll-behavior-inline: contain;
        -webkit-overflow-scrolling: touch;
    }

    .zt-workspace-nav-link,
    .zt-workspace-nav-link:is(:link, :visited) {
        flex: 0 0 auto;
        min-width: max-content;
        min-height: 44px;
        scroll-snap-align: center;
        white-space: nowrap;
    }

    .zt-workspace-account {
        align-items: stretch;
        gap: .55rem;
    }

    .zt-workspace-account-actions {
        display: grid;
        grid-template-columns: repeat(2, minmax(0, 1fr));
        width: 100%;
    }

    .zt-workspace-account-actions > *,
    .zt-workspace-account-actions form,
    .zt-workspace-account-actions .zt-workspace-action {
        width: 100%;
    }

    .zt-workspace-action,
    .zt-site .btn,
    .zt-site .form-control,
    .zt-site .form-select,
    .zt-site input[type="file"] {
        min-height: 44px;
    }

    .zt-site :where(.form-control, .form-select, input[type="date"], input[type="datetime-local"], input[type="time"], input[type="number"], input[type="email"], input[type="tel"], input[type="search"], input[type="text"], textarea) {
        font-size: 16px;
    }

    .zt-workspace-heading {
        margin-bottom: 1rem;
    }

    .zt-workspace-heading h1 {
        font-size: clamp(1.65rem, 8vw, 2rem);
        line-height: 1.12;
    }

    .zt-heading-with-action > .btn,
    .zt-heading-with-action > a.btn,
    .zt-manageitem-header-actions,
    .zt-manageitem-header-actions .btn {
        width: 100%;
    }

    .zt-filter-summary {
        display: flex;
    }

    .zt-filter-panel[open] > .zt-filter-summary {
        border-bottom-right-radius: 0;
        border-bottom-left-radius: 0;
    }

    .zt-filter-panel > :is(.zt-mobile-filters, .zt-document-filters, .zt-loan-filters, .zt-maintenance-filters) {
        margin: 0;
        border-top: 0;
        border-top-left-radius: 0;
        border-top-right-radius: 0;
        padding: .85rem;
    }

    .zt-filter-actions,
    .zt-document-actions,
    .zt-loan-actions,
    .zt-maintenance-actions,
    .zt-item-card-actions,
    .zt-manageloan-actions {
        display: grid;
        grid-template-columns: 1fr;
        width: 100%;
    }

    .zt-filter-actions .btn,
    .zt-document-actions .btn,
    .zt-loan-actions .btn,
    .zt-loan-actions form,
    .zt-loan-actions form .btn,
    .zt-maintenance-actions .btn,
    .zt-item-card-actions .btn,
    .zt-manageloan-actions .btn {
        width: 100%;
    }

    .zt-item-card-details > div,
    .zt-document-details > div,
    .zt-loan-details > div,
    .zt-maintenance-details > div {
        grid-template-columns: 1fr;
        gap: .12rem;
    }

    .zt-item-card-details dt,
    .zt-document-details dt,
    .zt-loan-details dt,
    .zt-maintenance-details dt {
        color: var(--secondary-color, #59636e);
        font-size: .82rem;
    }

    .zt-status-badge,
    .zt-loan-quantity,
    .zt-document-count {
        flex-shrink: 0;
    }

    .zt-manageitem-page .nav-tabs,
    .zt-managedocument-page .nav-tabs {
        gap: .2rem;
        padding-bottom: .3rem;
        scroll-snap-type: x proximity;
        -webkit-overflow-scrolling: touch;
    }

    .zt-manageitem-page .nav-tabs .nav-item,
    .zt-managedocument-page .nav-tabs .nav-item {
        flex: 0 0 auto;
        scroll-snap-align: start;
    }

    .zt-manageitem-toolbar {
        position: sticky;
        top: .25rem;
        padding: .55rem;
    }

    .zt-manageitem-toolbar .btn {
        flex: 1 1 calc(50% - .3rem);
        min-width: 0;
    }

    .zt-mobile-form-actions {
        padding-bottom: max(.85rem, env(safe-area-inset-bottom));
    }

    .zt-frontend-photo-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: .65rem;
    }

    .zt-photo-gallery {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .zt-label-batch-toolbar {
        position: static;
        top: auto;
        z-index: auto;
        box-shadow: none;
    }

    .zt-pagination {
        overflow-x: auto;
        padding-bottom: .25rem;
        scrollbar-width: thin;
    }
}

@media (max-width: 430px) {
    .zt-workspace-account-actions {
        grid-template-columns: 1fr;
    }

    .zt-action-grid {
        grid-template-columns: 1fr;
    }

    .zt-manageitem-toolbar .btn {
        flex-basis: 100%;
    }

    .zt-frontend-photo-grid,
    .zt-photo-gallery {
        grid-template-columns: 1fr;
    }
}



/* Version 0.1.114 – Etikettenauswahl auf Smartphones nicht mehr überlagernd */
@media (max-width: 767.98px) {
    .zt-label-batch-form {
        display: block;
        width: 100%;
    }

    .zt-label-batch-toolbar {
        position: static !important;
        inset: auto !important;
        width: 100%;
        max-height: none;
        overflow: visible;
        margin-bottom: 1rem;
    }
}
