@font-face{font-family:IBMPlexSans;src:url("fonts/ibm-plex-sans-400.woff2") format("woff2");font-weight:400}@font-face{font-family:IBMPlexSans;src:url("fonts/ibm-plex-sans-400.woff2") format("woff2");font-weight:700}@font-face{font-family:IBMPlexMono;src:url("fonts/ibm-plex-mono-400.woff2") format("woff2");font-weight:400}:root{--primary:#232F61;--secondary:#0f172a;--muted:#f4f6f8;--border:#d9dee7;--text:#172033;--sub:#667085;--accent:#d5a448}*{box-sizing:border-box}body{margin:0;font-family:IBMPlexSans,system-ui,sans-serif;color:var(--text);background:#fff}a{color:inherit}img{max-width:100%;display:block}.container{max-width:1180px;margin:0 auto;padding:0 24px}.site-header{position:sticky;top:0;z-index:50;background:rgba(255,255,255,.96);backdrop-filter:blur(10px);border-bottom:1px solid var(--border)}.topbar{max-width:1180px;height:68px;margin:0 auto;padding:0 24px;display:flex;align-items:center;justify-content:space-between}.brand{text-decoration:none;display:flex;align-items:center;gap:12px;font-weight:750;letter-spacing:-.02em}.brand img{height:38px;width:38px;object-fit:cover;border-radius:6px}.brand span span{color:var(--primary)}.brand small{color:var(--sub);font-weight:400}.nav{display:flex;align-items:center;gap:28px;font-size:14px;font-weight:600}.nav a{text-decoration:none}.nav a:hover{color:var(--primary)}.nav-cta{background:var(--primary);color:#fff!important;padding:10px 16px}.nav-toggle{display:none;background:transparent;border:0;font-size:26px}.hero{border-bottom:1px solid var(--border);background:#fff}.hero-grid{display:grid;grid-template-columns:1fr 1fr;gap:60px;align-items:center;padding-top:72px;padding-bottom:72px}.overline{font-family:IBMPlexMono,monospace;color:var(--primary);font-size:12px;text-transform:uppercase;letter-spacing:.2em;font-weight:700}.overline.small{font-size:11px;color:#667085}.hero h1,.page-header h1{font-size:clamp(42px,7vw,72px);line-height:1.05;letter-spacing:-.055em;margin:18px 0 20px;font-weight:760}.lead{font-size:19px;line-height:1.75;color:var(--sub);max-width:680px}.actions{display:flex;gap:14px;flex-wrap:wrap;margin-top:30px}.btn{display:inline-flex;align-items:center;justify-content:center;border:1px solid var(--primary);padding:12px 18px;text-decoration:none;font-weight:700;cursor:pointer;border-radius:0;font-size:14px}.btn.primary{background:var(--primary);color:#fff}.btn.primary:hover{background:var(--secondary)}.btn.secondary{background:#fff;color:var(--primary)}.btn.secondary:hover{background:var(--muted)}.full{width:100%}.hero-card{position:relative}.hero-card .frame,.image-frame:before{position:absolute;content:"";left:-16px;top:-16px;width:100%;height:100%;border:2px solid var(--primary);z-index:0}.logo-box{position:relative;border:1px solid var(--border);background:#fff;padding:70px}.logo-box img{max-width:320px;margin:0 auto;border-radius:10px}.section{padding:82px 0}.muted{background:var(--muted)}.section h2{font-size:clamp(30px,4vw,44px);line-height:1.15;margin:10px 0 18px;letter-spacing:-.035em}.usp-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:1px;border:1px solid var(--border);background:var(--border);margin-top:42px}.usp-grid article{background:#fff;padding:30px}.usp-grid span,.service-card .icon{font-family:IBMPlexMono,monospace;color:var(--primary);font-size:12px;font-weight:700}.usp-grid h3{margin:14px 0 8px}.usp-grid p,.service-card p,.reference-card p,.text-block p,.side-card p,.legal-page p,.muted-text{color:var(--sub);line-height:1.7}.section-head{display:flex;align-items:end;justify-content:space-between;gap:24px;margin-bottom:42px}.text-link{color:var(--primary);font-weight:700;text-decoration:none}.card-grid{display:grid;gap:24px}.card-grid.two{grid-template-columns:repeat(2,1fr)}.card-grid.three{grid-template-columns:repeat(3,1fr)}.card-grid.four{grid-template-columns:repeat(4,1fr)}.narrow{max-width:720px}.service-card{border:1px solid var(--border);background:#fff;text-decoration:none;padding:30px;display:flex;gap:24px;transition:.2s}.service-card:hover,.reference-card:hover{border-color:var(--primary);transform:translateY(-2px)}.service-card .icon{height:48px;width:48px;background:var(--secondary);color:#fff;display:flex;align-items:center;justify-content:center;flex:0 0 48px}.service-card h2,.service-card h3,.reference-card h2,.reference-card h3{margin:0 0 10px;line-height:1.25}.service-card strong{display:inline-block;margin-top:14px;color:var(--primary);font-size:12px;text-transform:uppercase;letter-spacing:.12em}.reference-card,.team-card,.side-card,.form-card,.legal-page,.admin-card,.login-card{border:1px solid var(--border);background:#fff;padding:28px}.cta-band{background:var(--secondary);color:#fff}.cta-inner{display:flex;align-items:center;justify-content:space-between;gap:30px;padding-top:60px;padding-bottom:60px}.cta-inner h2{font-size:34px;margin:0}.cta-inner p{color:#cbd5e1}.page-header{background:var(--muted);border-bottom:1px solid var(--border);padding:72px 0 54px}.page-header p{max-width:760px;color:var(--sub);line-height:1.7}.about-grid,.contact-grid{display:grid;grid-template-columns:1fr 1fr;gap:60px;align-items:start}.image-frame{position:relative}.image-frame img{position:relative;z-index:1;width:100%;max-height:560px;object-fit:cover}.text-block{font-size:17px}.location-box{margin-top:70px;display:grid;grid-template-columns:1fr 1fr;background:var(--secondary);color:#fff}.location-box>div{padding:34px}.location-box>div+div{background:#fff;color:var(--text);border:1px solid var(--border)}.check-list{list-style:none;padding:0;margin:28px 0}.check-list li{padding:12px 0 12px 32px;border-bottom:1px solid var(--border);position:relative}.check-list li:before{content:"✓";position:absolute;left:0;color:var(--primary);font-weight:900}.form-card form,.login-card form,.settings-form{display:grid;gap:16px}label{display:grid;gap:7px;font-size:14px;font-weight:700;color:#344054}input,textarea,select{width:100%;border:1px solid var(--border);padding:12px 13px;font:inherit;background:#fff}input:focus,textarea:focus,select:focus{outline:none;border-color:var(--primary);box-shadow:0 0 0 3px rgba(35,47,97,.12)}.side-card h2{margin-top:0}.footer{background:var(--secondary);color:#cbd5e1}.footer-inner{max-width:1180px;margin:0 auto;padding:60px 24px;display:grid;grid-template-columns:2fr 1fr 1fr 1fr;gap:40px}.footer a,.footer span{display:block;text-decoration:none;color:#cbd5e1;margin:9px 0}.footer a:hover{color:#fff}.footer h4,.footer strong{color:#fff}.footer-brand{display:flex;align-items:center;gap:12px}.footer-brand img{width:42px;height:42px;object-fit:cover;border-radius:6px;background:#fff}.footer-login{color:#94a3b8!important;font-weight:600;margin-top:15px!important}.footer-bottom{max-width:1180px;margin:0 auto;padding:24px;border-top:1px solid #334155;text-align:center;font-size:14px}.flash{max-width:1180px;margin:20px auto;padding:14px 18px;border-radius:0;font-weight:700}.flash-success{background:#dcfce7;color:#166534}.flash-error{background:#fee2e2;color:#991b1b}.admin-section{padding-top:50px}.admin-card{margin-bottom:26px}.admin-card h2{margin-top:0}.table-wrap{overflow:auto}table{width:100%;border-collapse:collapse;font-size:14px}th,td{padding:12px;border-bottom:1px solid var(--border);vertical-align:top;text-align:left}th{background:var(--muted)}.inline-form{display:grid;grid-template-columns:1fr 1fr auto;gap:10px}.settings-form details{border:1px solid var(--border);background:var(--muted);margin-bottom:16px}.settings-form summary{padding:16px 18px;background:#fff;font-weight:800;cursor:pointer;border-bottom:1px solid var(--border)}.settings-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px;padding:18px}.full-row{grid-column:1/-1}.edit-box{background:#fff;border:1px solid var(--border);padding:18px}.checkbox{display:flex;grid-template-columns:auto 1fr;align-items:center;gap:10px}.checkbox input{width:auto}.legal-page{max-width:900px}.legal-page h2{margin-top:34px}.bullet{padding-left:20px}.login-card{max-width:520px;margin:0 auto}.local-reset{margin:18px 0 0!important}.reveal{opacity:0;transform:translateY(16px);transition:opacity .6s ease,transform .6s ease}.reveal.visible{opacity:1;transform:none}@media(max-width:900px){.nav{display:none;position:absolute;left:0;right:0;top:68px;background:#fff;border-bottom:1px solid var(--border);padding:18px 24px;flex-direction:column;align-items:flex-start}.nav.open{display:flex}.nav-toggle{display:block}.hero-grid,.about-grid,.contact-grid,.location-box{grid-template-columns:1fr}.usp-grid,.card-grid.two,.card-grid.three,.card-grid.four,.footer-inner,.settings-grid{grid-template-columns:1fr}.section-head,.cta-inner{align-items:flex-start;flex-direction:column}.inline-form{grid-template-columns:1fr}.logo-box{padding:40px}.section{padding:62px 0}}

.hero-logo-clean {
    display: flex;
    align-items: center;
    justify-content: center;
}

.hero-logo-clean img {
    max-width: 360px;
    width: 100%;
    height: auto;
    margin: 0 auto;
    border-radius: 18px;
    box-shadow: none;
}

.hero-logo-clean .frame {
    display: none;
}


/* Finalanpassungen GO */
.hero-logo-clean {
    display: flex;
    align-items: center;
    justify-content: center;
    background: transparent;
    border: 0;
    box-shadow: none;
    padding: 0;
}

.hero-logo-clean img {
    max-width: 380px;
    width: 100%;
    height: auto;
    border-radius: 18px;
    box-shadow: none;
}

.service-card {
    align-items: flex-start;
    min-height: 220px;
}

.service-card .icon {
    display: none;
}

.service-dot,
.dot-mark {
    width: 14px;
    height: 14px;
    min-width: 14px;
    margin-top: 7px;
    border-radius: 999px;
    background: var(--primary);
    box-shadow: 0 0 0 7px rgba(35,47,97,.08);
    display: inline-block;
}

.service-card h2,
.service-card h3 {
    font-size: clamp(24px, 2.5vw, 36px);
    line-height: 1.18;
    letter-spacing: -.035em;
}

.service-card p {
    font-size: 16px;
    max-width: 720px;
}

.point-list {
    list-style: none;
    padding: 0;
    margin: 28px 0;
}

.point-list li {
    padding: 15px 0 15px 34px;
    border-bottom: 1px solid var(--border);
    position: relative;
    line-height: 1.65;
}

.point-list li:before {
    content: "";
    position: absolute;
    left: 0;
    top: 24px;
    width: 10px;
    height: 10px;
    background: var(--primary);
    border-radius: 999px;
    box-shadow: 0 0 0 6px rgba(35,47,97,.08);
}

.detail-lead {
    max-width: 780px;
    margin-top: 0;
    margin-bottom: 10px;
}

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

.references-grid-home {
    grid-template-columns: repeat(3, minmax(0, 1fr));
}

.reference-card {
    min-height: 300px;
    display: flex;
    flex-direction: column;
    justify-content: flex-start;
}

.reference-card h2,
.reference-card h3 {
    font-size: clamp(24px, 2.2vw, 34px);
    line-height: 1.18;
    letter-spacing: -.035em;
    margin-top: 18px;
}

.reference-card p:not(.overline) {
    font-size: 16px;
    line-height: 1.75;
}

.reference-card .overline {
    word-break: normal;
    overflow-wrap: break-word;
    hyphens: auto;
}

.image-frame.clean-image {
    border: 1px solid var(--border);
    background: #fff;
    padding: 16px;
    box-shadow: 0 16px 45px rgba(15, 23, 42, .08);
}

.image-frame.clean-image:before {
    display: none;
}

.image-frame.clean-image img {
    width: 100%;
    height: auto;
    max-height: 560px;
    object-fit: cover;
    object-position: center;
}

.team-photo img {
    aspect-ratio: 4 / 3;
    object-fit: cover;
    object-position: center;
}

.about-photo img {
    aspect-ratio: 4 / 3;
    object-fit: cover;
    object-position: center;
}

.team-card {
    min-height: 260px;
}

.team-card h2 {
    font-size: clamp(30px, 3vw, 42px);
    line-height: 1.08;
    letter-spacing: -.04em;
}

.team-card p:not(.overline) {
    font-size: 16px;
    line-height: 1.7;
    color: var(--sub);
}

.about-strengths {
    margin-top: 70px;
    border: 1px solid var(--border);
    background: #fff;
    display: grid;
    grid-template-columns: .75fr 1.25fr;
    gap: 36px;
    padding: 34px;
}

.about-strengths h2 {
    margin-bottom: 0;
}

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

.strength-grid p {
    margin: 0;
    border-left: 4px solid var(--primary);
    background: var(--muted);
    padding: 18px;
}

.strength-grid strong {
    display: block;
    margin-bottom: 7px;
    color: var(--text);
}

.strength-grid span {
    display: block;
    color: var(--sub);
    line-height: 1.65;
}

@media(max-width:1100px) {
    .references-grid,
    .references-grid-home {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media(max-width:900px) {
    .references-grid,
    .references-grid-home,
    .about-strengths,
    .strength-grid {
        grid-template-columns: 1fr;
    }

    .service-card h2,
    .service-card h3,
    .reference-card h2,
    .reference-card h3 {
        font-size: 28px;
    }
}

@media(max-width:620px) {
    .service-card {
        gap: 16px;
        padding: 24px;
    }

    .service-dot {
        margin-top: 5px;
    }

    .hero-logo-clean img {
        max-width: 280px;
    }
}


/* Referenzkarten Layoutkorrektur */
.references-grid,
.references-grid-home {
    grid-template-columns: repeat(auto-fit, minmax(340px, 1fr)) !important;
    align-items: stretch;
}

.reference-card {
    min-width: 0;
    overflow: hidden;
    padding: 30px 32px;
}

.reference-card h2,
.reference-card h3 {
    font-size: clamp(24px, 1.8vw, 30px) !important;
    line-height: 1.2 !important;
    letter-spacing: -.03em;
    overflow-wrap: anywhere;
    word-break: normal;
    hyphens: auto;
    max-width: 100%;
}

.reference-card p:not(.overline) {
    font-size: 15.5px;
    line-height: 1.72;
    max-width: 46rem;
}

.reference-card .overline {
    line-height: 1.5;
    letter-spacing: .16em;
    overflow-wrap: anywhere;
}

@media(max-width:760px) {
    .references-grid,
    .references-grid-home {
        grid-template-columns: 1fr !important;
    }

    .reference-card {
        padding: 26px 24px;
    }
}


/* Mitarbeiterbereich */
.employee-layout {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 340px;
    gap: 28px;
    align-items: start;
}

.employee-form {
    display: grid;
    gap: 24px;
}

.employee-table-wrap {
    overflow-x: auto;
}

.entry-table {
    min-width: 980px;
}

.entry-table input {
    min-width: 115px;
}

.entry-table td:nth-child(6) input,
.entry-table td:nth-child(7) input {
    min-width: 220px;
}

.employee-actions {
    display: flex;
    gap: 12px;
    flex-wrap: wrap;
}

.submission-list {
    display: grid;
    gap: 14px;
}

.submission-list > div {
    border-left: 4px solid var(--primary);
    padding: 12px 14px;
    background: var(--muted);
}

.submission-list strong,
.submission-list span,
.submission-list small {
    display: block;
}

.submission-list small {
    color: var(--sub);
    margin-top: 5px;
}

.employee-admin-form {
    grid-template-columns: 1fr 1fr 1fr auto;
    margin-bottom: 24px;
}

@media(max-width:1100px) {
    .employee-layout {
        grid-template-columns: 1fr;
    }

    .employee-admin-form {
        grid-template-columns: 1fr;
    }
}


/* Arbeitszeit Tabellenbreite */
.entry-table {
    min-width: 1120px;
}

.entry-table td:nth-child(7) input {
    min-width: 120px;
}


/* Header-Logo ohne Text */
.brand-logo-only {
    gap: 0;
}

.brand-logo-only img {
    height: 54px;
    width: 54px;
    object-fit: cover;
    border-radius: 8px;
}

@media(max-width:900px) {
    .brand-logo-only img {
        height: 50px;
        width: 50px;
    }
}


/* Mitarbeiterbereich Layout-Fix */
.employee-layout {
    grid-template-columns: minmax(0, 1fr) 320px;
}

.employee-layout > *,
.employee-form,
.employee-layout .admin-card {
    min-width: 0;
}

.employee-layout .settings-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
}

.employee-layout input,
.employee-layout textarea,
.employee-layout select {
    min-width: 0;
}

@media(max-width:1100px) {
    .employee-layout {
        grid-template-columns: 1fr;
    }
}

@media(max-width:760px) {
    .employee-layout .settings-grid {
        grid-template-columns: 1fr;
    }
}


/* Mitarbeiter-Arbeitszeitseite größer und übersichtlicher */
.employee-section {
    padding-top: 54px;
}

.employee-wide-container {
    max-width: 1520px;
}

.employee-wide-container .admin-card {
    padding: 34px;
}

.employee-top-card {
    margin-bottom: 28px;
}

.employee-section-head {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 24px;
    margin-bottom: 20px;
}

.employee-section-head h2 {
    margin: 0 0 8px;
}

.employee-meta-grid {
    display: grid;
    grid-template-columns: 1fr 1.4fr 1fr 1fr;
    gap: 18px;
}

.employee-form-large {
    width: 100%;
    display: grid;
    gap: 28px;
}

.employee-table-wrap {
    width: 100%;
    overflow-x: auto;
    border: 1px solid var(--border);
    background: #fff;
}

.entry-table {
    width: 100%;
    min-width: 1320px;
    border-collapse: collapse;
}

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

.entry-table th {
    white-space: nowrap;
}

.entry-table input {
    width: 100%;
    min-width: 0;
}

.work-entry-table td:nth-child(1),
.work-entry-table th:nth-child(1),
.travel-entry-table td:nth-child(1),
.travel-entry-table th:nth-child(1) {
    width: 150px;
}

.work-entry-table td:nth-child(2),
.work-entry-table td:nth-child(3),
.work-entry-table td:nth-child(4),
.work-entry-table td:nth-child(7),
.travel-entry-table td:nth-child(5),
.travel-entry-table td:nth-child(6) {
    width: 115px;
}

.work-entry-table td:nth-child(5),
.travel-entry-table td:nth-child(2),
.travel-entry-table td:nth-child(3) {
    width: 190px;
}

.work-entry-table td:nth-child(6),
.travel-entry-table td:nth-child(4),
.travel-entry-table td:nth-child(7) {
    min-width: 300px;
}

.employee-submission-table table {
    min-width: 900px;
}

.employee-submission-table .text-link {
    display: inline-block;
    margin-right: 16px;
}

.employee-actions-sticky {
    justify-content: flex-end;
    background: #fff;
    border: 1px solid var(--border);
    padding: 18px;
}

@media(max-width:1200px) {
    .employee-meta-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media(max-width:760px) {
    .employee-wide-container .admin-card {
        padding: 24px;
    }

    .employee-section-head {
        flex-direction: column;
    }

    .employee-meta-grid {
        grid-template-columns: 1fr;
    }

    .entry-table {
        min-width: 1100px;
    }
}


/* Monat, Reisekostenberechnung und Belege */
.month-row-hidden {
    display: none;
}

.employee-cost-summary {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 14px;
    margin-top: 22px;
}

.employee-cost-summary > div {
    border: 1px solid var(--border);
    background: var(--muted);
    padding: 16px;
}

.employee-cost-summary span {
    display: block;
    color: var(--sub);
    font-size: 13px;
    margin-bottom: 6px;
}

.employee-cost-summary strong {
    display: block;
    color: var(--text);
    font-size: 22px;
}

.receipt-upload-box {
    margin-top: 22px;
    border: 1px dashed var(--primary);
    background: #fff;
    padding: 22px;
}

.receipt-upload-box h3 {
    margin: 0 0 8px;
}

.receipt-upload-box input[type="file"] {
    border: 1px solid var(--border);
    background: var(--muted);
    padding: 14px;
}

@media(max-width:1000px) {
    .employee-cost-summary {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media(max-width:620px) {
    .employee-cost-summary {
        grid-template-columns: 1fr;
    }
}


/* Monatsbericht, Reisezeiträume und Abwesenheiten */
.employee-meta-grid-wide {
    grid-template-columns: 1fr 1.4fr 1fr 1fr 1fr;
}

.employee-month-summary {
    display: grid;
    grid-template-columns: repeat(6, minmax(0, 1fr));
    gap: 14px;
    margin: 18px 0 22px;
}

.employee-month-summary > div,
.employee-cost-summary > div {
    border: 1px solid var(--border);
    background: var(--muted);
    padding: 16px;
}

.employee-month-summary span,
.employee-cost-summary span {
    display: block;
    color: var(--sub);
    font-size: 12px;
    line-height: 1.35;
    margin-bottom: 6px;
}

.employee-month-summary strong,
.employee-cost-summary strong {
    display: block;
    color: var(--text);
    font-size: 20px;
    white-space: nowrap;
}

.absence-help {
    display: flex;
    flex-wrap: wrap;
    gap: 10px 16px;
    align-items: center;
    border: 1px solid var(--border);
    background: #fff;
    padding: 14px 16px;
    margin-bottom: 18px;
    color: var(--sub);
}

.absence-help strong {
    color: var(--text);
}

.work-entry-table {
    min-width: 1500px;
}

.travel-entry-table {
    min-width: 1680px;
}

.work-entry-table td:nth-child(1),
.travel-entry-table td:nth-child(1),
.travel-entry-table td:nth-child(2) {
    width: 145px;
}

.work-entry-table td:nth-child(2) {
    width: 80px;
}

.work-entry-table td:nth-child(3),
.work-entry-table td:nth-child(4),
.work-entry-table td:nth-child(5),
.work-entry-table td:nth-child(6),
.work-entry-table td:nth-child(9),
.work-entry-table td:nth-child(10),
.travel-entry-table td:nth-child(6),
.travel-entry-table td:nth-child(7),
.travel-entry-table td:nth-child(8) {
    width: 115px;
}

.travel-entry-table td:nth-child(9) {
    width: 220px;
}

.weekend-row {
    background: #f8fafc;
}

.holiday-row {
    background: #fff7ed;
}

.weekend-row input,
.holiday-row input,
.holiday-row select {
    background: rgba(255,255,255,.85);
}

@media(max-width:1250px) {
    .employee-meta-grid-wide,
    .employee-month-summary {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media(max-width:700px) {
    .employee-meta-grid-wide,
    .employee-month-summary {
        grid-template-columns: 1fr;
    }
}


/* Fix Reisekosten-Tabelle und KV-Berechnung */
.travel-entry-table {
    min-width: 1540px !important;
    table-layout: fixed;
}

.travel-entry-table th,
.travel-entry-table td {
    padding: 8px 7px !important;
}

.travel-entry-table th:nth-child(1),
.travel-entry-table td:nth-child(1),
.travel-entry-table th:nth-child(2),
.travel-entry-table td:nth-child(2) {
    width: 122px !important;
}

.travel-entry-table th:nth-child(3),
.travel-entry-table td:nth-child(3),
.travel-entry-table th:nth-child(4),
.travel-entry-table td:nth-child(4) {
    width: 220px !important;
}

.travel-entry-table th:nth-child(5),
.travel-entry-table td:nth-child(5) {
    width: 180px !important;
}

.travel-entry-table th:nth-child(6),
.travel-entry-table td:nth-child(6),
.travel-entry-table th:nth-child(7),
.travel-entry-table td:nth-child(7),
.travel-entry-table th:nth-child(9),
.travel-entry-table td:nth-child(9),
.travel-entry-table th:nth-child(10),
.travel-entry-table td:nth-child(10) {
    width: 96px !important;
}

.travel-entry-table th:nth-child(8),
.travel-entry-table td:nth-child(8) {
    width: 145px !important;
}

.travel-entry-table th:nth-child(11),
.travel-entry-table td:nth-child(11) {
    width: 175px !important;
}

.travel-entry-table th:nth-child(12),
.travel-entry-table td:nth-child(12) {
    width: 150px !important;
}

.travel-entry-table input,
.travel-entry-table select {
    width: 100%;
    min-width: 0 !important;
}

.travel-entry-table input[type="file"] {
    font-size: 12px;
    padding: 10px 8px;
}

.work-entry-table {
    min-width: 1500px !important;
}

.employee-cost-summary span#unused,
.employee-month-summary span#unused {
    display: none;
}


/* Finale Anpassung: Entfernungszulage je Tag, Mitfahrer und Reisekostenlayout */
.employee-wide-container {
    max-width: 1680px;
}

.travel-entry-table {
    min-width: 1580px !important;
    table-layout: fixed;
}

.travel-entry-table th,
.travel-entry-table td {
    padding: 7px 6px !important;
}

.travel-entry-table input,
.travel-entry-table select {
    width: 100%;
    min-width: 0 !important;
}

.travel-entry-table th:nth-child(1),
.travel-entry-table td:nth-child(1),
.travel-entry-table th:nth-child(2),
.travel-entry-table td:nth-child(2) {
    width: 120px !important;
}

.travel-entry-table th:nth-child(3),
.travel-entry-table td:nth-child(3),
.travel-entry-table th:nth-child(4),
.travel-entry-table td:nth-child(4) {
    width: 210px !important;
}

.travel-entry-table th:nth-child(5),
.travel-entry-table td:nth-child(5) {
    width: 170px !important;
}

.travel-entry-table th:nth-child(6),
.travel-entry-table td:nth-child(6),
.travel-entry-table th:nth-child(7),
.travel-entry-table td:nth-child(7),
.travel-entry-table th:nth-child(8),
.travel-entry-table td:nth-child(8),
.travel-entry-table th:nth-child(9),
.travel-entry-table td:nth-child(9),
.travel-entry-table th:nth-child(10),
.travel-entry-table td:nth-child(10) {
    width: 92px !important;
}

.travel-entry-table th:nth-child(11),
.travel-entry-table td:nth-child(11) {
    width: 155px !important;
}

.travel-entry-table th:nth-child(12),
.travel-entry-table td:nth-child(12) {
    width: 130px !important;
}

.travel-entry-table input[type="file"] {
    font-size: 11px;
    padding: 9px 6px;
}

.work-entry-table {
    min-width: 1600px !important;
    table-layout: fixed;
}

.work-entry-table th,
.work-entry-table td {
    padding: 7px 6px !important;
}

.work-entry-table input,
.work-entry-table select {
    min-width: 0 !important;
    width: 100%;
}

.work-entry-table th:nth-child(1),
.work-entry-table td:nth-child(1) {
    width: 128px;
}

.work-entry-table th:nth-child(2),
.work-entry-table td:nth-child(2) {
    width: 64px;
}

.work-entry-table th:nth-child(3),
.work-entry-table td:nth-child(3),
.work-entry-table th:nth-child(4),
.work-entry-table td:nth-child(4),
.work-entry-table th:nth-child(5),
.work-entry-table td:nth-child(5),
.work-entry-table th:nth-child(10),
.work-entry-table td:nth-child(10),
.work-entry-table th:nth-child(11),
.work-entry-table td:nth-child(11) {
    width: 95px;
}

.work-entry-table th:nth-child(6),
.work-entry-table td:nth-child(6),
.work-entry-table th:nth-child(7),
.work-entry-table td:nth-child(7) {
    width: 145px;
}

.work-entry-table th:nth-child(8),
.work-entry-table td:nth-child(8) {
    width: 170px;
}

.work-entry-table th:nth-child(9),
.work-entry-table td:nth-child(9) {
    width: 310px;
}

.employee-cost-summary span {
    min-height: 32px;
}


/* Admin- und Mitarbeiterkonten bearbeiten */
.account-create-form {
    grid-template-columns: 1fr 1.3fr 1fr auto;
    margin-bottom: 24px;
}

.account-table {
    min-width: 980px;
}

.account-edit-form {
    display: grid;
    grid-template-columns: minmax(160px, 1fr) minmax(220px, 1.2fr) auto;
    gap: 10px;
    align-items: end;
}

.account-edit-form label {
    display: grid;
    gap: 6px;
    font-size: 12px;
    font-weight: 700;
}

.account-edit-form input {
    width: 100%;
}

@media(max-width:1100px) {
    .account-create-form,
    .account-edit-form {
        grid-template-columns: 1fr;
    }
}


/* Nachträglicher E-Mailversand und Belege löschen */
.form-note {
    border: 1px solid var(--border);
    background: #fff;
    padding: 14px 16px;
    color: var(--sub);
    line-height: 1.5;
}

.form-warning {
    margin: 16px 0 0;
    padding: 14px 16px;
    border: 1px solid #f59e0b;
    background: #fffbeb;
    color: #92400e;
    font-weight: 700;
}

.btn.disabled,
.btn:disabled {
    opacity: .45;
    cursor: not-allowed;
}

.btn.danger {
    border-color: #b91c1c;
    color: #b91c1c;
    background: #fff;
}

.btn.danger:hover {
    background: #fef2f2;
}

.btn.mini {
    padding: 6px 10px;
    font-size: 12px;
}

.receipt-admin-item {
    border-bottom: 1px solid var(--border);
    padding: 8px 0;
}

.receipt-admin-item:last-child {
    border-bottom: 0;
}

.receipt-admin-item form {
    margin-top: 6px;
}


/* Belege vor dem Speichern entfernen */
.selected-file-list {
    display: grid;
    gap: 6px;
    margin-top: 8px;
}

.selected-file-item {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 6px;
    align-items: center;
    font-size: 12px;
    color: var(--sub);
    border: 1px solid var(--border);
    background: #fff;
    padding: 6px;
}

.selected-file-item span {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.file-remove-btn {
    border: 1px solid #b91c1c;
    color: #b91c1c;
    background: #fff;
    font-size: 11px;
    padding: 4px 6px;
    cursor: pointer;
}

.file-remove-btn:hover {
    background: #fef2f2;
}


/* Leeres Warnfeld ausblenden */
.form-warning:empty {
    display: none !important;
}


/* Gemeinsamer Login dezent */
.footer-login {
    color: #94a3b8 !important;
    font-weight: 600 !important;
}

.footer-login:hover {
    color: #cbd5e1 !important;
}

/* Reisekosten Zusatzzeilen und digitale Bestätigung */
.travel-extra-actions {
    display: flex;
    align-items: center;
    gap: 14px;
    flex-wrap: wrap;
    margin: 14px 0 22px;
}

.signature-confirm {
    border: 1px solid var(--border);
    background: #f8fafc;
    padding: 16px 18px;
    margin: 22px 0;
}

.signature-confirm .checkbox {
    align-items: flex-start;
}

.signature-confirm .checkbox span {
    line-height: 1.5;
    color: var(--text);
}

.allowance-table {
    min-width: 720px;
}

.allowance-table th:nth-child(1),
.allowance-table td:nth-child(1) {
    width: 90px;
    text-align: center;
}

.allowance-table th:nth-child(3),
.allowance-table td:nth-child(3) {
    width: 160px;
}


/* SMTP Status/Test */
.mail-status-grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 12px;
    margin: 18px 0;
}

.mail-status-grid > div {
    border: 1px solid var(--border);
    background: #f8fafc;
    padding: 12px 14px;
    line-height: 1.5;
}

.mail-status-grid .status-ok {
    background: #dcfce7;
    border-color: #86efac;
    color: #166534;
}

.mail-status-grid .status-bad {
    background: #fee2e2;
    border-color: #fecaca;
    color: #991b1b;
}

.smtp-test-form {
    margin: 14px 0 24px;
}

@media(max-width:900px){
    .mail-status-grid {
        grid-template-columns: 1fr;
    }
}


/* Schmutz-, Erschwernis- und Gefahrenzulagen */
.employee-month-summary {
    grid-template-columns: repeat(8, minmax(0, 1fr));
}

.kv-info-box {
    border: 1px solid var(--border);
    background: #f8fafc;
    padding: 14px 16px;
    margin: 0 0 18px;
}

.kv-info-box summary {
    cursor: pointer;
    font-weight: 800;
    color: var(--primary);
}

.kv-info-box p {
    color: var(--sub);
    line-height: 1.6;
}

.kv-info-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 14px;
    margin-top: 14px;
}

.kv-info-grid article {
    border: 1px solid var(--border);
    background: #fff;
    padding: 14px;
}

.kv-info-grid h3 {
    margin: 0 0 8px;
}

.work-entry-table {
    min-width: 1860px;
}

.work-entry-table th:nth-child(10),
.work-entry-table td:nth-child(10) {
    min-width: 260px;
}

.work-entry-table th:nth-child(11),
.work-entry-table td:nth-child(11),
.work-entry-table th:nth-child(12),
.work-entry-table td:nth-child(12),
.work-entry-table th:nth-child(13),
.work-entry-table td:nth-child(13) {
    width: 120px;
}

@media(max-width:1200px) {
    .employee-month-summary {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .kv-info-grid {
        grid-template-columns: 1fr;
    }
}


/* Arbeitszeitfenster breiter / Uhrzeitfelder lesbar */
.employee-wide-container {
    max-width: 1860px;
}

.employee-section .container.employee-wide-container {
    width: min(96vw, 1860px);
}

.work-entry-table {
    min-width: 2120px;
}

.work-entry-table th,
.work-entry-table td {
    padding: 10px 12px;
}

.work-entry-table input,
.work-entry-table select {
    min-width: 118px;
}

.work-entry-table th:nth-child(1),
.work-entry-table td:nth-child(1) {
    width: 165px;
}

.work-entry-table th:nth-child(2),
.work-entry-table td:nth-child(2) {
    width: 80px;
}

.work-entry-table th:nth-child(3),
.work-entry-table td:nth-child(3),
.work-entry-table th:nth-child(4),
.work-entry-table td:nth-child(4) {
    width: 135px;
}

.work-entry-table th:nth-child(5),
.work-entry-table td:nth-child(5) {
    width: 115px;
}

.work-entry-table th:nth-child(6),
.work-entry-table td:nth-child(6) {
    width: 160px;
}

.work-entry-table th:nth-child(7),
.work-entry-table td:nth-child(7) {
    width: 230px;
}

.work-entry-table th:nth-child(8),
.work-entry-table td:nth-child(8) {
    width: 190px;
}

.work-entry-table th:nth-child(9),
.work-entry-table td:nth-child(9) {
    min-width: 340px;
}

.work-entry-table th:nth-child(10),
.work-entry-table td:nth-child(10) {
    width: 130px;
}

.work-entry-table th:nth-child(11),
.work-entry-table td:nth-child(11),
.work-entry-table th:nth-child(12),
.work-entry-table td:nth-child(12),
.work-entry-table th:nth-child(13),
.work-entry-table td:nth-child(13) {
    width: 145px;
}

.employee-table-wrap {
    max-width: 100%;
    overflow-x: auto;
}

@media(max-width:1200px) {
    .employee-section .container.employee-wide-container {
        width: calc(100vw - 32px);
    }
}


/* Prüfung Monatsberichte / Status */
.status-badge {
    display: inline-block;
    padding: 5px 8px;
    font-size: 12px;
    font-weight: 800;
    line-height: 1.25;
    border: 1px solid var(--border);
}

.status-badge.status-submitted,
tr.status-submitted .status-badge {
    background: #eef2ff;
    border-color: #c7d2fe;
    color: #3730a3;
}

.status-badge.status-accepted,
tr.status-accepted .status-badge {
    background: #dcfce7;
    border-color: #86efac;
    color: #166534;
}

.status-badge.status-rejected,
tr.status-rejected .status-badge,
.edit-mode-notice {
    background: #fee2e2;
    border-color: #fecaca;
    color: #991b1b;
}

.admin-submission-table {
    min-width: 1500px;
}

.inline-admin-action,
.reject-form {
    display: grid;
    gap: 8px;
    margin-bottom: 10px;
}

.reject-form textarea {
    width: 100%;
    min-width: 240px;
    resize: vertical;
}

.edit-mode-notice {
    border: 1px solid #fecaca;
    padding: 14px 16px;
    line-height: 1.6;
}

.mini-btn {
    margin-top: 8px;
    padding: 7px 10px;
    font-size: 12px;
}


/* Header im Logo-Blauton */
.site-header {
    background: var(--primary) !important;
    border-bottom: 1px solid rgba(255,255,255,.18) !important;
    box-shadow: 0 6px 18px rgba(15, 23, 42, .12);
}

.topbar {
    background: transparent;
}

.nav a {
    color: #fff !important;
}

.nav a:hover {
    color: #e5e7eb !important;
}

.nav-cta {
    background: transparent !important;
    color: #fff !important;
    border: 2px solid #fff !important;
    padding: 10px 18px !important;
}

.nav-cta:hover {
    background: rgba(255,255,255,.12) !important;
    color: #fff !important;
}

.nav-toggle {
    color: #fff !important;
}

.brand-logo-only img {
    box-shadow: 0 0 0 1px rgba(255,255,255,.35);
}

@media(max-width:900px) {
    .nav {
        background: var(--primary) !important;
        border-bottom: 1px solid rgba(255,255,255,.18) !important;
    }

    .nav a {
        color: #fff !important;
    }

    .nav-cta {
        display: inline-flex;
    }
}


/* Entwurf und Belegbeträge */
.status-badge.status-draft,
tr.status-draft .status-badge,
.draft-mode-notice {
    background: #fef3c7;
    border-color: #fde68a;
    color: #92400e;
}

.selected-file-list-with-amounts {
    display: grid;
    gap: 8px;
    margin-top: 8px;
}

.selected-file-item-with-amount {
    display: grid;
    grid-template-columns: minmax(160px, 1fr) 110px auto;
    gap: 8px;
    align-items: center;
}

.selected-file-item-with-amount span {
    overflow-wrap: anywhere;
    font-size: 12px;
}

.selected-file-item-with-amount input {
    min-width: 95px;
    padding: 8px;
}

.file-remove-btn {
    white-space: nowrap;
}

.draft-help-text {
    margin: 0;
}




/* FINAL Layout-Fix: breite Ansichten ohne Rechtsverschiebung */
html,
body {
    width: 100%;
    max-width: 100%;
    overflow-x: hidden;
}

main {
    width: 100%;
    max-width: 100%;
    overflow-x: hidden;
}

.site-header {
    width: 100%;
    left: 0;
    right: 0;
}

.site-header .topbar {
    width: min(96vw, 1740px) !important;
    max-width: 1740px !important;
    margin-left: auto !important;
    margin-right: auto !important;
}

.page-header > .container,
.hero > .container,
.section > .container,
.cta-band > .container,
.admin-section > .container,
.employee-section > .container,
.employee-section > .container.employee-wide-container {
    width: min(96vw, 1740px) !important;
    max-width: 1740px !important;
    margin-left: auto !important;
    margin-right: auto !important;
}

.employee-section {
    display: block !important;
}

.employee-section > .container.employee-wide-container {
    padding-left: 0 !important;
    padding-right: 0 !important;
}

.employee-form-large,
.employee-section .admin-card,
.employee-top-card,
.employee-form-large > .admin-card,
.employee-actions-sticky,
.signature-confirm,
.edit-mode-notice,
.admin-section .admin-card {
    width: 100% !important;
    max-width: 100% !important;
    margin-left: 0 !important;
    margin-right: 0 !important;
    min-width: 0 !important;
}

.employee-meta-grid.employee-meta-grid-wide {
    display: grid;
    grid-template-columns: 1fr 1.45fr 1fr 1fr 1fr !important;
    gap: 18px;
    width: 100%;
    min-width: 0;
}

.employee-meta-grid.employee-meta-grid-wide label,
.employee-meta-grid.employee-meta-grid-wide input {
    min-width: 0 !important;
}

.employee-table-wrap,
.table-wrap {
    width: 100%;
    max-width: 100%;
    overflow-x: auto;
    overflow-y: visible;
}

.work-entry-table {
    min-width: 2120px;
}

.travel-entry-table {
    min-width: 1680px;
}

.site-header .brand-logo-only img {
    box-shadow: none !important;
    border: 0 !important;
    outline: 0 !important;
    background: transparent !important;
}

@media(max-width:1200px) {
    .employee-meta-grid.employee-meta-grid-wide {
        grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    }
}

@media(max-width:900px) {
    .site-header .topbar,
    .page-header > .container,
    .hero > .container,
    .section > .container,
    .cta-band > .container,
    .admin-section > .container,
    .employee-section > .container,
    .employee-section > .container.employee-wide-container {
        width: calc(100vw - 32px) !important;
        max-width: calc(100vw - 32px) !important;
    }

    .employee-meta-grid.employee-meta-grid-wide {
        grid-template-columns: 1fr !important;
    }
}


/* Bestehende Belege im Entwurf anzeigen */
.existing-receipts-list {
    display: grid;
    gap: 6px;
    margin-top: 8px;
    padding: 8px;
    border: 1px solid var(--border);
    background: #f8fafc;
    font-size: 12px;
}

.existing-receipts-list strong {
    color: var(--primary);
}

.existing-receipt-item {
    display: flex;
    gap: 4px;
    align-items: baseline;
    flex-wrap: wrap;
    line-height: 1.4;
}

.existing-receipts-list small {
    color: var(--sub);
}


/* Fix: gespeicherte Belege im Entwurf immer sichtbar */
.server-existing-receipts {
    margin-top: 10px;
    min-width: 240px;
}

.server-existing-receipts .text-link {
    font-weight: 700;
}

.existing-receipts-list {
    word-break: break-word;
    overflow-wrap: anywhere;
}


/* Admin: Header-Navigation ein-/ausblenden */
.nav-toggle-grid {
    display: grid;
    grid-template-columns: repeat(5, minmax(150px, 1fr));
    gap: 12px;
    margin: 18px 0;
}

.nav-toggle-option {
    border: 1px solid var(--border);
    background: #f8fafc;
    padding: 14px;
    display: flex;
    gap: 10px;
    align-items: center;
    font-weight: 700;
}

.nav-toggle-option input {
    width: auto;
}

@media(max-width:900px) {
    .nav-toggle-grid {
        grid-template-columns: 1fr;
    }
}


/* Admin: Bilder verwalten */
.image-admin-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 18px;
    margin: 18px 0;
}

.image-admin-card {
    border: 1px solid var(--border);
    background: #f8fafc;
    padding: 16px;
    display: grid;
    gap: 10px;
}

.image-admin-card h3 {
    margin: 0;
}

.image-admin-preview {
    border: 1px solid var(--border);
    background: #fff;
    min-height: 160px;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 12px;
}

.image-admin-preview img {
    max-width: 100%;
    max-height: 220px;
    object-fit: contain;
    display: block;
}

.image-admin-card input[type="file"] {
    margin-top: 8px;
}

.image-admin-card small {
    color: var(--sub);
    overflow-wrap: anywhere;
}

@media(max-width:1000px) {
    .image-admin-grid {
        grid-template-columns: 1fr;
    }
}


/* Website-Inhalte: Sichtbarkeit je Reiter */
.visibility-control-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(240px, 1fr));
    gap: 12px;
    margin: 16px 0 18px;
}

.visibility-option {
    border: 1px solid var(--border);
    background: #f8fafc;
    padding: 13px 14px;
    display: flex;
    align-items: center;
    gap: 10px;
    font-weight: 700;
}

.visibility-option input {
    width: auto;
}

@media(max-width:900px) {
    .visibility-control-grid {
        grid-template-columns: 1fr;
    }
}


/* Admin: Bildvorschauen skaliert und einheitlich darstellen */
.image-admin-grid {
    align-items: start;
}

.image-admin-card {
    min-width: 0;
}

.image-admin-preview {
    width: 100%;
    height: 180px;
    max-height: 180px;
    overflow: hidden;
    border: 1px solid var(--border);
    background:
        linear-gradient(45deg, #f8fafc 25%, transparent 25%),
        linear-gradient(-45deg, #f8fafc 25%, transparent 25%),
        linear-gradient(45deg, transparent 75%, #f8fafc 75%),
        linear-gradient(-45deg, transparent 75%, #f8fafc 75%);
    background-size: 20px 20px;
    background-position: 0 0, 0 10px, 10px -10px, -10px 0;
    display: flex;
    align-items: center;
    justify-content: center;
}

.image-admin-preview img {
    width: 100%;
    height: 100%;
    max-width: 100%;
    max-height: 100%;
    object-fit: contain;
    display: block;
}

.image-admin-card small {
    display: block;
    max-width: 100%;
    overflow-wrap: anywhere;
}

@media(max-width:1000px) {
    .image-admin-preview {
        height: 160px;
        max-height: 160px;
    }
}


/* FIX: Admin-Bildvorschauen wirklich skaliert anzeigen */
.image-settings-form .image-admin-grid {
    grid-template-columns: repeat(3, minmax(220px, 1fr)) !important;
    align-items: start !important;
}

.image-settings-form .image-admin-card {
    min-width: 0 !important;
    overflow: hidden !important;
}

.image-settings-form .image-admin-preview {
    width: 100% !important;
    height: 160px !important;
    min-height: 160px !important;
    max-height: 160px !important;
    overflow: hidden !important;
    padding: 10px !important;
    box-sizing: border-box !important;
    border: 1px solid var(--border) !important;
    background: #fff !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
}

.image-settings-form .image-admin-preview img,
.image-settings-form img.admin-image-preview-img {
    display: block !important;
    width: auto !important;
    height: auto !important;
    max-width: 100% !important;
    max-height: 140px !important;
    object-fit: contain !important;
}

.image-settings-form input[type="file"] {
    max-width: 100% !important;
}

@media(max-width:1000px) {
    .image-settings-form .image-admin-grid {
        grid-template-columns: 1fr !important;
    }
}


/* Passwort-Sicherheitsrichtlinien */
.security-guidelines-box {
    border: 1px solid var(--border);
    background: #f8fafc;
    padding: 16px;
    margin: 16px 0 22px;
}

.security-guidelines-box h3 {
    margin: 0 0 10px;
}

.password-guidelines {
    margin: 0 0 12px 18px;
    padding: 0;
    line-height: 1.7;
    color: var(--sub);
}

.password-guidelines li {
    margin-bottom: 4px;
}

/* Rechtstexte: klare Dokumentform wie AGB-Seite */
.legal-page {
    max-width: 980px;
    margin: 0 auto;
    padding: 2.2rem 1.6rem 4rem;
    background: transparent;
    border: 0;
    box-shadow: none;
    color: #050b1f;
    font-size: 1rem;
    line-height: 1.55;
}

.legal-page .muted {
    display: block;
    color: #050b1f;
    font-size: 0.95rem;
    line-height: 1.45;
    margin: 0 0 3rem;
}

.legal-page h1 {
    font-size: clamp(1.7rem, 2.2vw, 2.05rem);
    line-height: 1.15;
    font-weight: 800;
    letter-spacing: 0.01em;
    margin: 0 0 1.35rem;
    color: #050b1f;
}

.legal-page h2 {
    font-size: clamp(1.25rem, 1.65vw, 1.6rem);
    line-height: 1.2;
    font-weight: 800;
    letter-spacing: 0;
    margin: 2.35rem 0 1rem;
    color: #050b1f;
}

.legal-page h3 {
    font-size: 1.12rem;
    line-height: 1.25;
    font-weight: 800;
    margin: 1.65rem 0 0.75rem;
    color: #050b1f;
}

.legal-page p,
.legal-page li {
    font-size: 1rem;
    line-height: 1.55;
    color: #050b1f;
}

.legal-page p {
    margin: 0 0 1.05rem;
}

.legal-page ul,
.legal-page ol {
    margin: 0.25rem 0 1.2rem;
    padding-left: 1.35rem;
}

.legal-page li {
    margin: 0 0 0.45rem;
}

.legal-page a {
    text-decoration: underline;
}

/* Falls Rechtstexte innerhalb einer Section liegen: keine übergroßen oberen Abstände */
.section:has(.legal-page) {
    padding-top: 1rem;
}

/* Mobile-Fix: kein seitliches Abschneiden + Hero-Logo mobil ausblenden */
@media (max-width: 900px) {
    html,
    body {
        max-width: 100%;
        overflow-x: hidden;
    }

    .site-header .topbar,
    .page-header > .container,
    .hero > .container,
    .section > .container,
    .cta-band > .container,
    .admin-section > .container,
    .employee-section > .container,
    .employee-section > .container.employee-wide-container {
        width: 100% !important;
        max-width: 100% !important;
        padding-left: 22px !important;
        padding-right: 22px !important;
    }

    .hero-grid {
        grid-template-columns: minmax(0, 1fr) !important;
        gap: 24px !important;
        padding-top: 44px !important;
        padding-bottom: 44px !important;
    }

    .hero-card.hero-logo-clean {
        display: none !important;
    }

    .hero h1,
    .page-header h1 {
        font-size: clamp(2.2rem, 10vw, 3.25rem) !important;
        line-height: 1.08 !important;
        letter-spacing: -0.04em !important;
    }

    .lead,
    .page-header p {
        font-size: 1.05rem !important;
        line-height: 1.55 !important;
        max-width: 100% !important;
    }

    .actions {
        width: 100%;
        max-width: 100%;
        gap: 12px;
    }

    .actions .btn {
        width: 100%;
        max-width: 360px;
        min-height: 48px;
    }

    .card-grid,
    .card-grid.two,
    .card-grid.three,
    .card-grid.four,
    .usp-grid,
    .references-grid,
    .references-grid-home {
        grid-template-columns: minmax(0, 1fr) !important;
        width: 100% !important;
        max-width: 100% !important;
    }

    .service-card {
        width: 100% !important;
        max-width: 100% !important;
        min-width: 0 !important;
        padding: 24px 18px !important;
        gap: 14px !important;
        overflow: hidden !important;
    }

    .service-card > div {
        min-width: 0 !important;
        max-width: 100% !important;
    }

    .service-dot,
    .dot-mark {
        flex: 0 0 14px !important;
        min-width: 14px !important;
    }

    .service-card h2,
    .service-card h3 {
        font-size: clamp(1.55rem, 7.5vw, 2.15rem) !important;
        line-height: 1.15 !important;
        overflow-wrap: anywhere !important;
        word-break: normal !important;
        max-width: 100% !important;
    }

    .service-card p,
    .service-card strong,
    .reference-card p,
    .text-block p,
    .side-card p {
        max-width: 100% !important;
        overflow-wrap: break-word !important;
        word-break: normal !important;
    }

    .section {
        padding-top: 54px !important;
        padding-bottom: 54px !important;
    }
}

@media (max-width: 480px) {
    .site-header .topbar,
    .page-header > .container,
    .hero > .container,
    .section > .container,
    .cta-band > .container {
        padding-left: 18px !important;
        padding-right: 18px !important;
    }

    .service-card {
        padding: 22px 16px !important;
        gap: 12px !important;
    }

    .service-card h2,
    .service-card h3 {
        font-size: clamp(1.4rem, 7vw, 1.95rem) !important;
    }

    .service-card p {
        font-size: 0.98rem !important;
        line-height: 1.55 !important;
    }

    .hero h1,
    .page-header h1 {
        font-size: clamp(2rem, 10vw, 2.8rem) !important;
    }
}

