* {
     box-sizing: border-box;
}
 body {
     margin: 0;
     background: #f5f7fb;
     color: #152238;
     font-family: Arial, sans-serif;
}
 a {
     color: inherit;
}
 .acp-login-body {
     min-height: 100vh;
}
 .acp-login-page {
     min-height: 100vh;
     display: flex;
     align-items: center;
     justify-content: center;
     padding: 30px;
}
 .acp-login-card {
     width: 100%;
     max-width: 430px;
     padding: 42px;
     background: #fff;
     border: 1px solid #e2e8f0;
     border-radius: 20px;
     box-shadow: 0 20px 60px rgba(20, 40, 80, .08);
}
 .acp-login-brand {
     margin-bottom: 30px;
     font-size: 26px;
     font-weight: 700;
}
 .acp-login-brand span {
     color: #2f73ff;
}
 .acp-login-eyebrow {
     display: block;
     margin-bottom: 8px;
     color: #2f73ff;
     font-size: 11px;
     font-weight: 700;
     letter-spacing: .8px;
     text-transform: uppercase;
}
 .acp-login-card h1 {
     margin: 0 0 10px;
     font-size: 30px;
}
 .acp-login-intro {
     margin: 0 0 28px;
     color: #6b778b;
     line-height: 1.6;
}
 .acp-login-form {
     display: flex;
     flex-direction: column;
     gap: 18px;
}
 .acp-form-field {
     display: flex;
     flex-direction: column;
     gap: 7px;
}
 .acp-form-field label {
     font-size: 13px;
     font-weight: 600;
}
 .acp-form-field input {
     width: 100%;
     padding: 13px 14px;
     border: 1px solid #d8e0eb;
     border-radius: 10px;
     font: inherit;
     outline: none;
}
 .acp-form-field input:focus {
     border-color: #2f73ff;
}
 .acp-button-primary {
     padding: 14px 20px;
     border: 0;
     border-radius: 10px;
     background: #2f73ff;
     color: #fff;
     font: inherit;
     font-weight: 700;
     cursor: pointer;
}
 .acp-alert {
     margin-bottom: 20px;
     padding: 13px 15px;
     border-radius: 10px;
     font-size: 13px;
}
 .acp-alert-error {
     background: #fff1f1;
     color: #a32c2c;
     border: 1px solid #ffd2d2;
}
 .acp-topbar {
     display: flex;
     align-items: center;
     justify-content: space-between;
     min-height: 72px;
     padding: 0 30px;
     background: #fff;
     border-bottom: 1px solid #e2e8f0;
}
 .acp-topbar > div:first-child {
     display: flex;
     flex-direction: column;
}
 .acp-topbar > div:first-child strong {
     font-size: 20px;
}
 .acp-topbar > div:first-child strong span {
     color: #2f73ff;
}
 .acp-topbar small, .acp-user-area span {
     color: #7c899b;
}
 .acp-user-area {
     display: flex;
     align-items: center;
     gap: 25px;
}
 .acp-user-area > div {
     display: flex;
     flex-direction: column;
     text-align: right;
     font-size: 12px;
}
 .acp-content {
     width: min(1200px, calc(100% - 50px));
     margin: 0 auto;
     padding: 40px 0;
}
 .acp-debug-card {
     max-width: 600px;
     margin-top: 30px;
     padding: 25px;
     background: #fff;
     border: 1px solid #e2e8f0;
     border-radius: 16px;
}
 .acp-debug-card dl {
     display: grid;
     grid-template-columns: 160px 1fr;
     gap: 12px;
     margin: 0;
}
 .acp-debug-card dt {
     color: #7c899b;
}
 .acp-debug-card dd {
     margin: 0;
     font-weight: 600;
}
/* ============================================================ APP ============================================================ */
 .acp-app {
     min-height: 100vh;
     display: grid;
     grid-template-columns: 250px minmax(0, 1fr);
}
 .acp-main {
     min-width: 0;
}
/* ============================================================ SIDEBAR ============================================================ */
 .acp-sidebar {
     position: sticky;
     top: 0;
     height: 100vh;
     display: flex;
     flex-direction: column;
     padding: 26px 18px;
     background: #10192b;
     color: #fff;
}
 .acp-sidebar-brand {
     display: flex;
     flex-direction: column;
     padding: 0 10px 28px;
}
 .acp-sidebar-brand a {
     color: #fff;
     font-size: 23px;
     font-weight: 700;
     text-decoration: none;
}
 .acp-sidebar-brand a span {
     color: #6093ff;
}
 .acp-sidebar-brand small {
     margin-top: 4px;
     color: #8793a8;
     font-size: 10px;
}
 .acp-navigation, .acp-navigation-section {
     display: flex;
     flex-direction: column;
     gap: 5px;
}
 .acp-navigation-section {
     margin-top: 25px;
}
 .acp-navigation-heading {
     padding: 0 12px 8px;
     color: #69768d;
     font-size: 9px;
     font-weight: 700;
     letter-spacing: .8px;
     text-transform: uppercase;
}
 .acp-navigation-item {
     display: flex;
     align-items: center;
     gap: 11px;
     padding: 11px 12px;
     border-radius: 10px;
     color: #b7c0d0;
     font-size: 13px;
     text-decoration: none;
}
 .acp-navigation-item:hover {
     background: rgba(255, 255, 255, .06);
     color: #fff;
}
 .acp-navigation-item.is-active {
     background: #2f73ff;
     color: #fff;
}
 .acp-navigation-icon {
     width: 22px;
     text-align: center;
}
 .acp-sidebar-footer {
     margin-top: auto;
     display: flex;
     flex-direction: column;
     padding: 20px 10px 0;
     border-top: 1px solid rgba(255, 255, 255, .08);
}
 .acp-sidebar-footer span {
     font-size: 12px;
     font-weight: 600;
}
 .acp-sidebar-footer small {
     margin-top: 4px;
     color: #768197;
}
/* ============================================================ HEADER ============================================================ */
 .acp-header {
     min-height: 76px;
     display: flex;
     align-items: center;
     justify-content: space-between;
     gap: 25px;
     padding: 0 30px;
     background: #fff;
     border-bottom: 1px solid #e3e8ef;
}
 .acp-header-title {
     display: flex;
     flex-direction: column;
}
 .acp-header-title > span {
     font-weight: 700;
}
 .acp-header-title small {
     margin-top: 3px;
     color: #7b8798;
}
 .acp-header-actions {
     display: flex;
     align-items: center;
     gap: 25px;
}
 .acp-current-location {
     display: flex;
     flex-direction: column;
     font-size: 11px;
}
 .acp-current-location span {
     color: #8a95a5;
}
 .acp-location-switcher {
     display: flex;
     align-items: center;
     gap: 8px;
}
 .acp-location-switcher label {
     color: #8a95a5;
     font-size: 11px;
}
 .acp-location-switcher select {
     padding: 8px 10px;
     border: 1px solid #dce2eb;
     border-radius: 8px;
     background: #fff;
}
 .acp-user-menu {
     display: flex;
     align-items: center;
     gap: 11px;
}
 .acp-user-avatar {
     width: 38px;
     height: 38px;
     display: flex;
     align-items: center;
     justify-content: center;
     border-radius: 50%;
     background: #eaf1ff;
     color: #2f73ff;
     font-size: 11px;
     font-weight: 700;
}
 .acp-user-details {
     display: flex;
     flex-direction: column;
     font-size: 11px;
}
 .acp-user-details span {
     color: #8a95a5;
}
 .acp-logout {
     margin-left: 10px;
     color: #7a8697;
     font-size: 11px;
     text-decoration: none;
}
/* ============================================================ CONTENT ============================================================ */
 .acp-page {
     width: min(1350px, calc(100% - 60px));
     margin: 0 auto;
     padding: 38px 0 60px;
}
 .acp-page-intro h1 {
     margin: 5px 0 8px;
     font-size: 30px;
}
 .acp-page-intro p {
     margin: 0;
     color: #778398;
}
 .acp-eyebrow {
     color: #2f73ff;
     font-size: 10px;
     font-weight: 700;
     letter-spacing: .8px;
     text-transform: uppercase;
}
/* ============================================================ STATS ============================================================ */
 .acp-stat-grid {
     display: grid;
     grid-template-columns: repeat(4, minmax(0, 1fr));
     gap: 16px;
     margin-top: 30px;
}
 .acp-stat-card {
     padding: 22px;
     background: #fff;
     border: 1px solid #e3e8ef;
     border-radius: 15px;
}
 .acp-stat-card > span {
     display: block;
     color: #7b8798;
     font-size: 11px;
}
 .acp-stat-card strong {
     display: block;
     margin: 8px 0 5px;
     font-size: 30px;
}
 .acp-stat-card small {
     color: #8994a5;
}
/* ============================================================ PANEL / TABLE ============================================================ */
 .acp-panel {
     margin-top: 25px;
     padding: 24px;
     background: #fff;
     border: 1px solid #e3e8ef;
     border-radius: 15px;
}
 .acp-panel-header {
     display: flex;
     align-items: center;
     justify-content: space-between;
     margin-bottom: 20px;
}
 .acp-panel-header h2 {
     margin: 5px 0 0;
     font-size: 18px;
}
 .acp-panel-header > a {
     color: #2f73ff;
     font-size: 11px;
     font-weight: 600;
     text-decoration: none;
}
 .acp-table-wrapper {
     overflow-x: auto;
}
 .acp-table {
     width: 100%;
     border-collapse: collapse;
}
 .acp-table th, .acp-table td {
     padding: 13px 10px;
     border-bottom: 1px solid #edf0f4;
     text-align: left;
     font-size: 11px;
}
 .acp-table th {
     color: #8994a5;
     font-size: 9px;
     letter-spacing: .5px;
     text-transform: uppercase;
}
 .acp-empty-state {
     padding: 35px;
     color: #8994a5;
     text-align: center;
}
/* ============================================================ FOOTER ============================================================ */
 .acp-footer {
     display: flex;
     justify-content: space-between;
     padding: 25px 30px;
     color: #939dad;
     font-size: 10px;
}
/* ============================================================ RESPONSIVE ============================================================ */
 @media (max-width: 1050px) {
     .acp-stat-grid {
         grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}
 @media (max-width: 780px) {
     .acp-app {
         display: block;
    }
     .acp-sidebar {
         position: relative;
         width: 100%;
         height: auto;
    }
     .acp-header {
         align-items: flex-start;
         flex-direction: column;
         padding: 20px;
    }
     .acp-header-actions {
         width: 100%;
         flex-wrap: wrap;
    }
     .acp-page {
         width: calc(100% - 30px);
    }
     .acp-stat-grid {
         grid-template-columns: 1fr;
    }
}
/* ============================================================ DETAIL ============================================================ */
 .acp-page-intro {
     display: flex;
     align-items: flex-start;
     justify-content: space-between;
     gap: 25px;
}
 .acp-back-link {
     display: inline-block;
     margin-bottom: 18px;
     color: #7c899c;
     font-size: 11px;
     font-weight: 600;
     text-decoration: none;
}
 .acp-detail-grid {
     display: grid;
     grid-template-columns: minmax(0, 2fr) minmax(280px, 1fr);
     gap: 20px;
     margin-top: 25px;
}
 .acp-detail-sidebar {
     display: flex;
     flex-direction: column;
     gap: 20px;
}
 .acp-detail-sidebar .acp-panel {
     margin-top: 0;
}
 .acp-detail-list {
     display: flex;
     flex-direction: column;
}
 .acp-detail-list > div {
     display: flex;
     align-items: flex-start;
     justify-content: space-between;
     gap: 20px;
     padding: 12px 0;
     border-bottom: 1px solid #edf0f4;
}
 .acp-detail-list > div:first-child {
     padding-top: 0;
}
 .acp-detail-list > div:last-child {
     border-bottom: 0;
}
 .acp-detail-list span {
     color: #8994a5;
     font-size: 11px;
}
 .acp-detail-list strong {
     text-align: right;
     font-size: 12px;
}
 .acp-detail-list a {
     color: #2f73ff;
     text-decoration: none;
}
 .acp-report-description {
     margin-top: 25px;
     padding-top: 22px;
     border-top: 1px solid #edf0f4;
}
 .acp-report-description > span, .acp-report-photo > span {
     display: block;
     margin-bottom: 10px;
     color: #8994a5;
     font-size: 10px;
     font-weight: 700;
     letter-spacing: .5px;
     text-transform: uppercase;
}
 .acp-report-description p {
     margin: 0;
     line-height: 1.7;
}
 .acp-report-photo {
     margin-top: 25px;
}
 .acp-report-photo img {
     display: block;
     width: 100%;
     max-height: 500px;
     object-fit: contain;
     border: 1px solid #e3e8ef;
     border-radius: 12px;
}
 .acp-status-form {
     display: flex;
     flex-direction: column;
     gap: 15px;
}
 .acp-status-form select {
     width: 100%;
     padding: 10px 12px;
     border: 1px solid #dce2eb;
     border-radius: 9px;
     background: #fff;
     font: inherit;
}
 .acp-meta-note {
     margin: 15px 0 0;
     color: #8994a5;
     font-size: 10px;
}
 .acp-alert-success {
     margin-top: 20px;
     background: #eaf8ef;
     color: #247647;
     border: 1px solid #ccebd7;
}
 @media (max-width: 900px) {
     .acp-detail-grid {
         grid-template-columns: 1fr;
    }
}
 .acp-rating, .acp-feedback-stars {
     color: #f0a500;
     letter-spacing: 2px;
}
 .acp-feedback-stars {
     font-size: 22px;
}
 .acp-filter-form {
     display: flex;
     align-items: flex-end;
     gap: 12px;
     flex-wrap: wrap;
}
 .acp-filter-form .acp-form-field {
     min-width: 180px;
}
 .acp-filter-form .acp-form-field:first-child {
     min-width: 280px;
     flex: 1;
}
 .acp-filter-form select {
     width: 100%;
     min-height: 42px;
     padding: 9px 12px;
     border: 1px solid #dce2eb;
     border-radius: 9px;
     background: #fff;
     font: inherit;
}
 .acp-week-navigation {
     display: flex;
     align-items: center;
     justify-content: space-between;
     gap: 20px;
}
 .acp-week-current {
     display: flex;
     flex-direction: column;
     align-items: center;
     gap: 4px;
     text-align: center;
}
 .acp-week-current span {
     color: #8994a5;
     font-size: 10px;
}
 .acp-table-subline {
     margin-top: 4px;
     color: #8994a5;
     font-size: 10px;
}
 .acp-tag-list {
     display: flex;
     flex-wrap: wrap;
     gap: 5px;
}
 .acp-tag-list span {
     padding: 4px 7px;
     border-radius: 20px;
     background: #eef3f8;
     color: #657286;
     font-size: 9px;
}
.acp-editor-grid {
    display: grid;
    grid-template-columns: minmax(500px, 1.6fr) minmax(320px, .8fr);
    gap: 20px;

    margin-top: 25px;

    align-items: start;
}

.acp-editor-grid > .acp-panel {
    margin-top: 0;
}

.acp-editor-grid .acp-detail-sidebar {
    margin-top: 0;
}
 .acp-form-grid {
     display: grid;
     grid-template-columns: repeat(2, minmax(0, 1fr));
     gap: 15px;
}
 .acp-editor-form .acp-form-field {
     margin-bottom: 18px;
}
 .acp-editor-form textarea, .acp-editor-form select {
     width: 100%;
     padding: 11px 13px;
     border: 1px solid #d8e0eb;
     border-radius: 9px;
     background: #fff;
     font: inherit;
}
 .acp-editor-form textarea {
     resize: vertical;
}
 .acp-checkbox-list {
     display: flex;
     flex-direction: column;
     gap: 12px;
}
 .acp-checkbox-list label {
     display: flex;
     align-items: center;
     gap: 9px;
     font-size: 12px;
}
 .acp-checkbox-feature {
     display: flex;
     align-items: flex-start;
     gap: 10px;
     margin-bottom: 20px;
}
 .acp-checkbox-feature > span {
     display: flex;
     flex-direction: column;
     gap: 3px;
}
 .acp-checkbox-feature small {
     color: #8994a5;
}
 .acp-editor-actions {
     display: flex;
     align-items: center;
     gap: 10px;
     margin-top: 20px;
}
 .acp-button-danger {
     margin-left: auto;
     min-height: 40px;
     padding: 9px 15px;
     border: 1px solid #efcaca;
     border-radius: 9px;
     background: #fff3f3;
     color: #b12d2d;
     font: inherit;
     font-size: 12px;
     font-weight: 600;
     cursor: pointer;
}
 @media (max-width: 900px) {
     .acp-editor-grid, .acp-form-grid {
         grid-template-columns: 1fr;
    }
     .acp-week-navigation {
         flex-direction: column;
    }
}
 .acp-image-preview {
     margin-bottom: 12px;
}
 .acp-image-preview img {
     display: block;
     width: 100%;
     max-width: 420px;
     max-height: 260px;
     object-fit: cover;
     border: 1px solid #e3e8ef;
     border-radius: 12px;
}
 .acp-status-sent, .acp-status-completed {
     background: #e8f8ee;
     color: #21864b;
}
 .acp-status-pending, .acp-status-sending {
     background: #fff5db;
     color: #9a6a00;
}
 .acp-status-failed, .acp-status-completed_with_errors {
     background: #fff0f0;
     color: #b12d2d;
}
/* ============================================================
   QR STATUS
============================================================ */

.acp-status-active {
    display: inline-flex;
    align-items: center;

    padding: 5px 10px;

    border-radius: 999px;

    background: #e8f8ee;
    color: #21864b;

    font-size: 11px;
    font-weight: 700;
}


.acp-status-inactive {
    display: inline-flex;
    align-items: center;

    padding: 5px 10px;

    border-radius: 999px;

    background: #eef2f7;
    color: #657286;

    font-size: 11px;
    font-weight: 700;
}


.acp-status-revoked {
    display: inline-flex;
    align-items: center;

    padding: 5px 10px;

    border-radius: 999px;

    background: #fff0f0;
    color: #b12d2d;

    font-size: 11px;
    font-weight: 700;
}

 .acp-error-message {
     color: #b12d2d;
     font-size: 10px;
}
 .acp-stat-text {
     font-size: 18px !important;
}
 .acp-qr-preview {
     display: flex;
     align-items: center;
     justify-content: center;
     padding: 24px;
     margin-bottom: 20px;
     background: #fff;
     border: 1px solid var(--acp-border, #e5e7eb);
     border-radius: 14px;
}
 .acp-qr-preview img {
     display: block;
     width: min(100%, 260px);
     height: auto;
}
 .acp-qr-actions {
     display: flex;
     flex-wrap: wrap;
     gap: 10px;
     margin-top: 16px;
}
/* ============================================================ FEEDBACK DETAIL OPTIMIERUNG ============================================================ */
 .acp-detail-grid {
     display: grid;
     grid-template-columns: minmax(500px, 1.8fr) minmax(300px, .9fr);
     gap: 20px;
     margin-top: 25px;
     align-items: start;
}
.acp-detail-sidebar {
    display: flex;
    flex-direction: column;
    gap: 16px;
}
.acp-detail-grid > .acp-detail-sidebar {
    margin-top: 25px;
}

.acp-editor-grid > .acp-detail-sidebar {
    margin-top: 0;
}
 .acp-detail-sidebar .acp-panel {
     margin-top: 0;
}

/* ============================================================
   REPORT STATUS
============================================================ */

.acp-status {
    display: inline-flex;
    align-items: center;

    padding: 5px 10px;

    border-radius: 999px;

    font-size: 10px;
    font-weight: 700;

    line-height: 1;

    white-space: nowrap;
}


/*
|--------------------------------------------------------------------------
| Meldungen
|--------------------------------------------------------------------------
*/

.acp-status-new {

    background: #eaf1ff;

    color: #2f73ff;

}


.acp-status-in_progress {

    background: #fff5db;

    color: #9a6a00;

}


.acp-status-resolved {

    background: #e8f8ee;

    color: #21864b;

}


.acp-status-closed {

    background: #eef1f5;

    color: #657286;

}

/* |-------------------------------------------------------------------------- | Titel + Bewertung |-------------------------------------------------------------------------- */
 .acp-title-rating {
     display: flex;
     align-items: center;
     gap: 15px;
}
 .acp-title-rating h1 {
     margin-bottom: 0;
}
/* |-------------------------------------------------------------------------- | Sterne Badge |-------------------------------------------------------------------------- */
 .acp-feedback-stars {
     display: inline-flex;
     align-items: center;
     padding: 6px 14px;
     background: #fff7df;
     border: 1px solid #f7df9b;
     border-radius: 999px;
     color: #f0a500;
     font-size: 16px;
     letter-spacing: 2px;
     line-height: 1;
}
/* |-------------------------------------------------------------------------- | Detailwerte |-------------------------------------------------------------------------- */
 .acp-detail-list > div {
     padding: 10px 0;
}
 .acp-detail-list strong {
     max-width: 60%;
     text-align: right;
}
/* |-------------------------------------------------------------------------- | Kommentar |-------------------------------------------------------------------------- */
 .acp-report-description {
     margin-top: 20px;
     padding-top: 18px;
}
/* |-------------------------------------------------------------------------- | Karten |-------------------------------------------------------------------------- */
 .acp-detail-grid .acp-panel {
     border-radius: 18px;
}
 .acp-empty-state {
     padding: 25px;
}
/* |-------------------------------------------------------------------------- | Responsive |-------------------------------------------------------------------------- */
 @media (max-width: 1100px) {
     .acp-detail-grid {
         grid-template-columns: 1fr;
    }
}
 
.acp-table-action {

    color: #2f73ff;

    font-size: 11px;

    font-weight: 600;

    text-decoration: none;

}


.acp-table-action:hover {

    text-decoration: underline;

}

