.kdp-portal {
    --kdp-primary: #06B6D4;
    --kdp-primary-dark: #105E73;
    --kdp-text: #17202a;
    --kdp-muted: #52606d;
    --kdp-border: #d9e2ec;
    --kdp-soft: #f8fafc;
    color: var(--kdp-text);
    font-family: inherit;
    max-width: 1280px;
    width: 100%;
    margin: 0 auto;
}

.kdp-portal *,
.kdp-portal *::before,
.kdp-portal *::after {
    border-radius: 0 !important;
    box-sizing: border-box;
}

.kdp-hero,
.kdp-panel,
.kdp-stat,
.kdp-project-card {
    background: #ffffff;
    border: 1px solid var(--kdp-border);
    box-shadow: 0 8px 24px rgba(23, 32, 42, 0.06);
    margin: 0 0 24px;
    padding: 20px;
}

.kdp-message {
    background: #ecfdf3;
    border: 1px solid #a6f4c5;
    color: #067647;
    font-weight: 700;
    margin: 0 0 18px;
    padding: 12px 14px;
    transition: opacity 240ms ease;
}

.kdp-message.is-fading { opacity: 0.72; }

.kdp-hero {
    align-items: center;
    background: linear-gradient(135deg, #ffffff 0%, #effcff 100%);
    display: flex;
    gap: 24px;
    justify-content: space-between;
}

.kdp-project-head {
    align-items: flex-start;
    display: flex;
    gap: 24px;
    justify-content: space-between;
}

.kdp-kicker {
    color: var(--kdp-primary-dark);
    font-size: 12px;
    font-weight: 800;
    letter-spacing: 0.04em;
    margin: 0 0 8px;
    text-transform: uppercase;
}

.kdp-hero h1,
.kdp-panel h2,
.kdp-panel h3,
.kdp-project-card h3 {
    color: var(--kdp-primary-dark);
    letter-spacing: 0;
    margin: 0 0 12px;
}

.kdp-hero h1 {
    font-size: clamp(24px, 2.4vw, 32px);
    line-height: 1.08;
}

.kdp-panel h2 { font-size: 18px; line-height: 1.25; }
.kdp-panel h3, .kdp-project-card h3 { font-size: 16px; line-height: 1.28; }

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

.kdp-stat-grid {
    display: grid;
    gap: 16px;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    margin-bottom: 24px;
}

.kdp-stat { margin: 0; }
.kdp-stat strong { display: block; font-size: 26px; line-height: 1; margin-bottom: 8px; color: var(--kdp-primary-dark); }
.kdp-stat span, .kdp-muted { color: var(--kdp-muted); font-weight: 700; }

.kdp-video { aspect-ratio: 16 / 9; background: #111827; overflow: hidden; }
.kdp-video iframe { border: 0; height: 100%; width: 100%; }

.kdp-progress { min-width: 180px; }
.kdp-progress span { color: var(--kdp-primary-dark); display: block; font-size: 22px; font-weight: 800; margin-bottom: 8px; text-align: right; }
.kdp-progress div { background: #d9e2ec; height: 10px; overflow: hidden; }
.kdp-progress i { background: var(--kdp-primary); display: block; height: 100%; transition: width 220ms ease; }

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

.kdp-links a,
.kdp-button,
.kdp-form button,
.kdp-button-row button,
.kdp-mini-link {
    background: var(--kdp-primary);
    border: 0;
    color: #ffffff !important;
    cursor: pointer;
    display: inline-flex;
    font-weight: 600;
    justify-content: center;
    line-height: 1.2;
    padding: 11px 14px;
    text-decoration: none !important;
}

.kdp-links a:hover,
.kdp-button:hover,
.kdp-form button:hover,
.kdp-button-row button:hover,
.kdp-mini-link:hover {
    background: var(--kdp-primary-dark);
    color: #ffffff !important;
}

.kdp-links a {
    font-weight: 400;
}

.kdp-progress small {
    color: var(--kdp-muted);
    display: block;
    font-size: 12px;
    margin: -4px 0 8px;
    text-align: right;
}

.kdp-button-row { display: flex; flex-wrap: wrap; gap: 10px; }
.kdp-button-row .kdp-button-secondary,
.kdp-danger-button { background: var(--kdp-primary) !important; }
.kdp-button-row .kdp-button-secondary:hover,
.kdp-danger-button:hover { background: var(--kdp-primary-dark) !important; }
.kdp-inline-form { display: inline-flex; margin: 0; }
.kdp-file-actions { margin-top: 10px; }

.kdp-list { display: grid; gap: 12px; }
.kdp-item { align-items: flex-start; background: var(--kdp-soft); border: 1px solid #e5edf5; display: flex; gap: 12px; padding: 14px; }
.kdp-item > div { width: 100%; }
.kdp-item a { color: var(--kdp-primary-dark); font-weight: 800; }
.kdp-item p, .kdp-item small, .kdp-project-card small { color: var(--kdp-muted); display: block; margin: 6px 0 0; }
.kdp-item.is-done { opacity: 0.72; }

.kdp-task-toggle { margin: 0; }
.kdp-task-toggle button { align-items: center; background: #ffffff; border: 2px solid var(--kdp-primary); color: var(--kdp-primary-dark); cursor: pointer; display: inline-flex; font-size: 16px; font-weight: 800; height: 28px; justify-content: center; line-height: 1; padding: 0; width: 28px; }
.kdp-task-toggle button:hover { background: var(--kdp-primary); color: #fff; }

.kdp-form { display: grid; gap: 14px; margin: 0 0 24px; }
.kdp-form label { color: #344054; display: grid; font-weight: 600; gap: 6px; }
.kdp-form label small { color: #667085; font-weight: 400; }
.kdp-form input, .kdp-form select, .kdp-form textarea { border: 1px solid #ccd6e0; color: var(--kdp-text); font: inherit; padding: 11px 12px; width: 100%; }
.kdp-form input:focus, .kdp-form select:focus, .kdp-form textarea:focus { border-color: var(--kdp-primary); box-shadow: 0 0 0 3px rgba(6, 182, 212, 0.16); outline: 0; }

.kdp-note { background: #effcff; border: 1px solid #a5f3fc; color: var(--kdp-primary-dark); margin-top: 14px; padding: 12px 14px; }
.kdp-data-list { display: grid; gap: 8px; grid-template-columns: max-content 1fr; margin: 18px 0 18px; }
.kdp-data-list dt { color: var(--kdp-muted); font-weight: 800; }
.kdp-data-list dd { margin: 0; }

.kdp-table { display: grid; gap: 10px; }
.kdp-row { align-items: center; background: var(--kdp-soft); border: 1px solid #e5edf5; display: grid; gap: 10px; grid-template-columns: 1.4fr 0.8fr 0.8fr auto 1.4fr auto auto; padding: 14px; }

.kdp-thread { display: grid; gap: 10px; margin: 14px 0; }
.kdp-thread-item { background: #ffffff; border: 1px solid #e5edf5; border-left: 4px solid #94a3b8; padding: 12px; }
.kdp-thread-item.is-admin { border-left-color: var(--kdp-primary); }
.kdp-thread-item strong { display: inline-block; margin-right: 8px; }
.kdp-thread-item span { color: #64748b; font-size: 12px; }
.kdp-thread-item p { color: #334155; margin: 8px 0 0; }
.kdp-reply-form, .kdp-approval-form { background: #ffffff; border: 1px solid #e5edf5; margin-top: 14px; padding: 14px; }

.kdp-timeline { counter-reset: timeline; display: grid; gap: 0; list-style: none; margin: 0; padding: 0; }
.kdp-timeline li { align-items: center; border-left: 2px solid #d9e2ec; display: flex; gap: 12px; min-height: 44px; padding: 0 0 0 18px; position: relative; }
.kdp-timeline li span { background: #ffffff; border: 2px solid #cbd5e1; height: 14px; left: -8px; position: absolute; width: 14px; }
.kdp-timeline li.is-complete span, .kdp-timeline li.is-current span { background: var(--kdp-primary); border-color: var(--kdp-primary); }
.kdp-timeline li.is-current strong { color: var(--kdp-primary-dark); }

.kdp-status-badge { background: #e0f7fb; color: var(--kdp-primary-dark); display: inline-flex; font-size: 12px; font-weight: 900; letter-spacing: 0.02em; line-height: 1; padding: 7px 10px; text-transform: uppercase; }
.kdp-status-paid, .kdp-status-approved, .kdp-status-done, .kdp-status-live { background: #dcfce7; color: #166534; }
.kdp-status-open, .kdp-status-requested { background: #e0f7fb; color: var(--kdp-primary-dark); }
.kdp-status-in_progress, .kdp-status-quoted, .kdp-status-feedback, .kdp-status-revision { background: #fef9c3; color: #854d0e; }
.kdp-status-waiting_customer, .kdp-status-overdue, .kdp-status-rejected { background: #fee2e2; color: #991b1b; }
.kdp-status-cancelled { background: #e5e7eb; color: #374151; }

.kdp-attachments a { margin-right: 8px; }

@media (max-width: 900px) {
    .kdp-grid,
    .kdp-project-grid,
    .kdp-stat-grid { grid-template-columns: 1fr; }
    .kdp-hero,
    .kdp-project-head { align-items: flex-start; flex-direction: column; }
    .kdp-row { grid-template-columns: 1fr; }
    .kdp-progress { min-width: 100%; width: 100%; }
    .kdp-progress span, .kdp-progress small { text-align: left; }
}

/* Version 2.4.0: volle 1280px Breite, Infoboxen und Rechnungs-Button-Anpassung */
.kdp-portal .kdp-hero h1 {
    font-size: 45px !important;
    line-height: 1.05 !important;
}

.kdp-portal .kdp-panel h2,
.kdp-portal .kdp-panel-heading h2 {
    font-size: 30px !important;
    line-height: 1.18 !important;
}

.kdp-panel-heading {
    align-items: center;
    display: flex;
    gap: 14px;
    justify-content: space-between;
    margin: 0 0 14px;
}

.kdp-panel-heading h2 {
    margin: 0 !important;
}

.kdp-panel-link-icon {
    align-items: center;
    background: #06B6D4;
    color: #ffffff !important;
    display: inline-flex;
    flex: 0 0 auto;
    font-size: 16px;
    font-weight: 400;
    height: 34px;
    justify-content: center;
    line-height: 1;
    text-decoration: none !important;
    width: 34px;
}

.kdp-panel-link-icon:hover {
    background: #105E73;
    color: #ffffff !important;
}

.kdp-quicklinks-panel {
    margin-top: 24px;
}

.kdp-quicklinks-panel .kdp-links {
    grid-template-columns: repeat(4, minmax(0, 1fr));
}

.kdp-upload-summary {
    align-items: baseline;
    display: flex;
    gap: 10px;
    margin-bottom: 14px;
}

.kdp-upload-summary strong {
    color: #105E73;
    display: inline-block;
    font-size: 34px;
    line-height: 1;
}

.kdp-upload-summary span {
    color: #52606d;
}

.kdp-upload-buckets {
    display: grid;
    gap: 8px;
}

.kdp-upload-buckets div {
    align-items: center;
    background: #f8fafc;
    border: 1px solid #e5edf5;
    display: flex;
    justify-content: space-between;
    padding: 10px 12px;
}

.kdp-upload-buckets span {
    color: #52606d;
}

.kdp-upload-buckets strong {
    color: #105E73;
}

.kdp-questionnaire-status {
    align-items: center;
    display: flex;
    gap: 12px;
}

.kdp-questionnaire-status > span {
    align-items: center;
    color: #ffffff;
    display: inline-flex;
    flex: 0 0 auto;
    font-weight: 800;
    height: 28px;
    justify-content: center;
    width: 28px;
}

.kdp-questionnaire-status.is-complete > span {
    background: #16a34a;
}

.kdp-questionnaire-status.is-open > span {
    background: #dc2626;
}

.kdp-questionnaire-status strong {
    color: #105E73;
    display: block;
    margin-bottom: 2px;
}

.kdp-questionnaire-status p {
    color: #52606d;
    margin: 0;
}

.kdp-timeline-title {
    margin-top: 50px !important;
}

@media (max-width: 900px) {
    .kdp-portal .kdp-hero h1 {
        font-size: 32px !important;
    }

    .kdp-portal .kdp-panel h2,
    .kdp-portal .kdp-panel-heading h2 {
        font-size: 24px !important;
    }

    .kdp-quicklinks-panel .kdp-links {
        grid-template-columns: 1fr;
    }
}


.kdp-info-box {
    background: #effcff;
    border: 1px solid #a5f3fc;
    color: #105E73;
    margin: 0 0 18px;
    padding: 14px 16px;
}

.kdp-info-box p {
    color: #105E73;
    margin: 0;
}

.kdp-invoice-table .kdp-row {
    grid-template-columns: 1.4fr 0.8fr 0.8fr auto 1.4fr auto;
}

@media (min-width: 901px) {
    .kdp-portal {
        max-width: 1280px;
        width: 100%;
    }
}

/* Version 2.5.0: Dashboard-Erweiterungen, Aktivitäten, Angebote, Abnahme und Hilfe-Center */
.kdp-company-name {
    color: var(--kdp-primary-dark) !important;
    font-size: 16px;
    font-weight: 600;
    margin: -4px 0 12px !important;
}

.kdp-dashboard-top {
    margin-bottom: 0;
}

.kdp-waiting-list,
.kdp-activity-feed,
.kdp-upload-buckets {
    display: grid;
    gap: 10px;
}

.kdp-waiting-list a,
.kdp-activity-feed > div,
.kdp-milestone-box,
.kdp-contact-box,
.kdp-help-card,
.kdp-required-files,
.kdp-onboarding-box,
.kdp-acceptance-box,
.kdp-feedback-box,
.kdp-project-comments {
    background: var(--kdp-soft);
    border: 1px solid #e5edf5;
    color: var(--kdp-text);
    display: block;
    padding: 14px;
    text-decoration: none !important;
}

.kdp-waiting-list a:hover {
    border-color: var(--kdp-primary);
}

.kdp-waiting-list strong,
.kdp-activity-feed strong,
.kdp-milestone-box strong,
.kdp-contact-box strong {
    color: var(--kdp-primary-dark);
    display: block;
    margin-bottom: 4px;
}

.kdp-waiting-list span,
.kdp-activity-feed p,
.kdp-milestone-box span,
.kdp-milestone-box small,
.kdp-contact-box p,
.kdp-contact-box a {
    color: var(--kdp-muted);
    display: block;
    margin: 4px 0 0;
}

.kdp-activity-feed small {
    color: var(--kdp-muted);
    display: block;
    font-size: 12px;
    margin-bottom: 4px;
}

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

.kdp-help-card h3,
.kdp-required-files h3,
.kdp-onboarding-box h3,
.kdp-acceptance-box h3,
.kdp-feedback-box h3,
.kdp-project-comments h3 {
    color: var(--kdp-primary-dark);
    font-size: 20px !important;
    margin: 0 0 8px !important;
}

.kdp-required-files,
.kdp-onboarding-box,
.kdp-acceptance-box,
.kdp-feedback-box,
.kdp-project-comments {
    margin-top: 24px;
}

.kdp-required-files ul,
.kdp-onboarding-box ul {
    margin: 10px 0 14px 18px;
}

.kdp-required-files li,
.kdp-onboarding-box li {
    margin-bottom: 6px;
}

.kdp-acceptance-box.is-complete {
    background: #ecfdf3;
    border-color: #a6f4c5;
}

.kdp-service-response-form {
    margin-top: 14px;
}

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

/* Version 2.6.0: Dashboard-Statusfarben, Ansprechpartner pro Projekt, Akkordeons, Feedback-Sterne */
.kdp-stat.is-clear strong { color: #16a34a !important; }
.kdp-stat.is-open strong { color: #dc2626 !important; }
.kdp-contact-list { display: grid; gap: 12px; }
.kdp-contact-box { align-items: center; display: flex !important; gap: 14px; }
.kdp-contact-box > div { min-width: 0; }
.kdp-contact-box small { color: var(--kdp-muted); display: block; font-size: 12px; margin-bottom: 4px; }
.kdp-contact-box span { color: var(--kdp-muted); display: block; margin: 4px 0 0; }
.kdp-contact-photo { aspect-ratio: 1 / 1; height: 64px; object-fit: cover; width: 64px; }
.kdp-details-accordion,
.kdp-help-item {
    background: var(--kdp-soft);
    border: 1px solid #e5edf5;
    margin: 14px 0;
    padding: 0;
}
.kdp-details-accordion summary,
.kdp-help-item summary {
    color: var(--kdp-primary-dark);
    cursor: pointer;
    font-weight: 700;
    list-style: none;
    padding: 14px 16px;
}
.kdp-details-accordion summary::-webkit-details-marker,
.kdp-help-item summary::-webkit-details-marker { display: none; }
.kdp-details-accordion summary::after,
.kdp-help-item summary::after { content: '+'; float: right; }
.kdp-details-accordion[open] summary::after,
.kdp-help-item[open] summary::after { content: '–'; }
.kdp-details-accordion > div,
.kdp-help-item > div { border-top: 1px solid #e5edf5; padding: 14px 16px; }
.kdp-help-accordion { display: grid; gap: 12px; }
.kdp-light-badge {
    display: inline-flex;
    font-size: 12px;
    font-weight: 800;
    line-height: 1;
    padding: 7px 10px;
    text-transform: uppercase;
}
.kdp-light-green { background: #dcfce7; color: #166534; }
.kdp-light-yellow { background: #fef9c3; color: #854d0e; }
.kdp-light-red { background: #fee2e2; color: #991b1b; }
.kdp-total-box {
    align-items: baseline;
    background: var(--kdp-soft);
    border: 1px solid #e5edf5;
    display: flex;
    gap: 12px;
    margin: 0 0 16px;
    padding: 14px;
}
.kdp-total-box strong { color: var(--kdp-primary-dark); font-size: 24px; }
.kdp-total-box.is-open strong { color: #dc2626; }
.kdp-total-box.is-clear strong { color: #16a34a; }
.kdp-star-rating {
    direction: rtl;
    display: inline-flex;
    gap: 4px;
    justify-content: flex-end;
}
.kdp-star-rating input { display: none !important; }
.kdp-star-rating label {
    color: #cbd5e1;
    cursor: pointer;
    display: inline-flex !important;
    font-size: 30px;
    line-height: 1;
    padding: 0 2px;
}
.kdp-star-rating input:checked ~ label,
.kdp-star-rating label:hover,
.kdp-star-rating label:hover ~ label { color: #f59e0b; }
.kdp-feedback-box textarea { min-height: 160px; }
.kdp-project-archive { opacity: .92; }
html { scroll-behavior: smooth; }
