/* NEU: Betriebsbereich (mode-admin) – Dashboard, Einstellungen */

.kpi-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 1.25rem; margin-bottom: 1.5rem; }

.dashboard-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1.25rem; align-items: start; }

.settings-grid { align-items: start; }

/* ------------------------------------------------------------ NEU Phase 3: Header-Suche */
.header-search { flex: 0 1 360px; margin-left: auto; }
.header-search input { padding-top: 0.5rem; padding-bottom: 0.5rem; background: var(--bg-page); }
.app-header .header-search-mobile { display: none; }
.header-search + .header-search-mobile + .header-actions { margin-left: 0.5rem; }

/* ------------------------------------------------------------ NEU Phase 3: Auftragsakte */
.back-link { display: inline-flex; align-items: center; gap: 0.5rem; margin-bottom: 0.875rem; font-weight: 500; color: var(--text-secondary); }
.back-link:hover { color: var(--primary); }
.file-header { display: flex; justify-content: space-between; gap: 1.25rem; align-items: flex-end; flex-wrap: wrap; margin-bottom: 1.25rem; }
.file-header-main { min-width: 0; flex: 1 1 420px; }
.file-header-title { display: flex; align-items: center; gap: 0.75rem; flex-wrap: wrap; }
.file-header-title .page-title { font-size: 1.4rem; }
.file-header-badges { display: flex; gap: 0.4rem; }
.file-header-actions { display: flex; gap: 0.75rem; align-items: flex-end; flex-wrap: wrap; }
.file-header-actions .filter-field select { min-width: 170px; }

.file-layout { display: grid; grid-template-columns: minmax(0, 1fr) 360px; gap: 1.25rem; align-items: start; }
.file-main { padding: 0.5rem 1.5rem 1.5rem; min-width: 0; }
.file-aside { display: flex; flex-direction: column; gap: 1.25rem; }
.file-tab-content { display: flex; flex-direction: column; gap: 1rem; }
.file-item { display: flex; flex-direction: column; gap: 0.6rem; padding-bottom: 1rem; border-bottom: 1px solid var(--border-light); }
.file-item-title { display: flex; align-items: center; gap: 0.6rem; font-size: 1rem; font-weight: 600; }
.file-item-icon { width: 32px; height: 32px; font-size: 0.9rem; }
.file-subheading { font-size: 0.9rem; font-weight: 600; margin-bottom: 0.4rem; }
.file-facts { padding: 1rem; border-radius: var(--radius-md); background: var(--bg-page); }

.file-media-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(160px, 1fr)); gap: 0.875rem; }
.file-media { margin: 0; display: flex; flex-direction: column; gap: 0.35rem; }
.file-media-item {
    aspect-ratio: 4 / 3; overflow: hidden; display: flex; align-items: center; justify-content: center;
    border-radius: var(--radius-md); background: var(--gray-100); color: var(--text-muted); font-size: 1.6rem;
}
.file-media-item img { width: 100%; height: 100%; object-fit: cover; transition: var(--transition); }
.file-media-item:hover img { transform: scale(1.03); }
.file-media figcaption { display: flex; flex-direction: column; font-size: 0.78rem; }
.proposal-box { padding: 0.875rem 1rem; border-radius: var(--radius-md); background: var(--info-light); }
.proposal-box p { display: flex; gap: 0.4rem; align-items: baseline; font-size: 0.85rem; }

/* Seitenkarten */
.side-card-body { display: flex; flex-direction: column; gap: 0.45rem; font-size: 0.875rem; }
.side-card-title { display: flex; align-items: center; gap: 0.5rem; flex-wrap: wrap; font-weight: 600; font-size: 0.95rem; }
.side-card-item { display: flex; flex-direction: column; gap: 0.1rem; padding-bottom: 0.5rem; border-bottom: 1px solid var(--border-light); }
.side-card-item:last-child { border-bottom: none; padding-bottom: 0; }
.side-card-contact { margin-top: 0.4rem; padding-top: 0.6rem; border-top: 1px solid var(--border-light); display: flex; flex-direction: column; gap: 0.2rem; }
.contact-line { display: flex; gap: 0.55rem; align-items: baseline; color: var(--text-primary); overflow-wrap: anywhere; }
a.contact-line:hover { color: var(--primary); }
.contact-line i { color: var(--text-muted); width: 16px; text-align: center; flex-shrink: 0; }
.hint-line { color: var(--warning-dark); }
.hint-line i { color: var(--warning-dark); }

/* Interne Notizen – optisch klar von Kundennachrichten getrennt */
.notes-panel { border-top: 3px solid var(--warning); }
.note-form { display: flex; flex-direction: column; gap: 0.5rem; margin-bottom: 1rem; }
.note-form .btn { align-self: flex-end; }
.note-list { display: flex; flex-direction: column; gap: 0.6rem; }
.internal-note { padding: 0.65rem 0.8rem; border-radius: var(--radius-md); background: var(--warning-light); border-left: 3px solid var(--warning); }
.internal-note-pinned { border-left-color: var(--warning-dark); }
.internal-note-header { display: flex; justify-content: space-between; align-items: center; gap: 0.5rem; }
.internal-note-body { font-size: 0.875rem; white-space: pre-line; overflow-wrap: anywhere; }
.note-pin { width: 30px; height: 30px; color: var(--text-muted); }
.note-pin.pinned { color: var(--warning-dark); }

/* Nachrichtenverlauf */
.message-thread { display: flex; flex-direction: column; gap: 0.75rem; }
.message-bubble { max-width: 80%; display: flex; flex-direction: column; gap: 0.3rem; padding: 0.65rem 0.9rem; border-radius: var(--radius-lg); }
.message-bubble.from-business { align-self: flex-end; background: var(--primary-light); border-bottom-right-radius: var(--radius-sm); }
.message-bubble.from-customer { align-self: flex-start; background: var(--bg-page); border: 1px solid var(--border); border-bottom-left-radius: var(--radius-sm); }
.message-meta { display: flex; gap: 0.5rem; align-items: center; flex-wrap: wrap; font-size: 0.8rem; }
.message-body { white-space: pre-line; overflow-wrap: anywhere; line-height: 1.5; }
.message-time { font-size: 0.72rem; color: var(--text-muted); align-self: flex-end; }

.timeline-detailed .timeline-text i { color: var(--text-secondary); width: 18px; }
.timeline-internal { margin-left: 0.5rem; font-size: 0.65rem; }
.timeline-detailed .timeline-date { display: flex; align-items: center; flex-wrap: wrap; }

/* Kundenakte */
.customer-file-header { display: flex; align-items: center; gap: 1rem; }
.customer-file-header .avatar { width: 52px; height: 52px; font-size: 1.05rem; }
.customer-file-cards { margin-bottom: 1.25rem; align-items: start; }

@media (max-width: 1200px) {
    .file-layout { grid-template-columns: minmax(0, 1fr); }
    .file-aside { display: grid; grid-template-columns: repeat(auto-fit, minmax(280px, 1fr)); }
}

@media (max-width: 768px) {
    .app-header .header-search { display: none; }
    .app-header .header-search-mobile { display: inline-flex; margin-left: auto; }
    .file-main { padding: 0.25rem 1rem 1rem; }
    .file-header-actions { width: 100%; }
    .file-header-actions > * { flex: 1 1 100%; }
    .file-header-actions .btn { width: 100%; }
    .message-bubble { max-width: 92%; }
}

@media (max-width: 1024px) {
    .kpi-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .dashboard-grid { grid-template-columns: minmax(0, 1fr); }
}

@media (max-width: 768px) {
    .kpi-grid { gap: 0.75rem; }
    .kpi-card { padding: 0.875rem 1rem; }
    .kpi-value { font-size: 1.5rem; }
    .kpi-hint { display: none; }
    .list-row-meta .list-row-time { display: none; }
    .list-row { align-items: flex-start; flex-wrap: wrap; }
    .list-row-meta { width: 100%; flex-direction: row; align-items: center; padding-left: calc(36px + 0.875rem); }
    .list-row-badges { justify-content: flex-start; }
    .definition-list { grid-template-columns: 1fr; gap: 0.1rem; }
    .definition-list dd { margin-bottom: 0.5rem; }
}

/* ------------------------------------------------------------ NEU Phase 7: Tab „Auftrag“ (Durchführung, Nachkalkulation) */
.order-panel-head { display: flex; justify-content: space-between; align-items: flex-start; gap: 1rem; flex-wrap: wrap; }
.order-panel-head .definition-list { flex: 1; min-width: 260px; }
.order-report { display: flex; flex-direction: column; gap: 0.75rem; }
.order-report-text { white-space: pre-wrap; }
.signature-preview { max-width: 320px; border: 1px solid var(--border); border-radius: var(--radius-md); background: #ffffff; overflow: hidden; }
.signature-preview img { display: block; width: 100%; height: auto; }
.order-reports { display: flex; flex-direction: column; gap: 0.6rem; }
.order-reports li { display: flex; flex-direction: column; gap: 0.15rem; }
.order-reports p { white-space: pre-wrap; }
.calc-table th[scope="row"] { text-align: left; font-weight: 500; }
.calc-table tr.is-total th, .calc-table tr.is-total td { font-weight: 700; border-top: 2px solid var(--border); }
.calc-difference { display: flex; align-items: center; gap: 0.3rem; flex-wrap: wrap; margin: 0.75rem 0; font-weight: 600; }
.calc-difference.is-over { color: var(--danger-dark); }
.calc-difference.is-under { color: var(--success-dark); }

/* ------------------------------------------------------------ NEU Phase 8: Nächster Schritt in der Auftragsakte */
.next-step-panel {
    display: flex; flex-direction: column; gap: 1rem; padding: 1rem 1.25rem;
    border-radius: var(--radius-lg); background: var(--bg-card); box-shadow: var(--shadow-sm); border-left: 4px solid var(--border);
}
.next-step-panel.is-business { border-left-color: var(--primary); }
.next-step-panel.is-customer { border-left-color: var(--warning); }
.next-step-panel.is-overdue { border-left-color: var(--danger); background: linear-gradient(90deg, var(--danger-light), var(--bg-card) 40%); }
.next-step-panel-main { display: flex; align-items: center; gap: 0.875rem; flex-wrap: wrap; }
.next-step-panel-icon {
    width: 40px; height: 40px; flex-shrink: 0; display: inline-flex; align-items: center; justify-content: center;
    border-radius: var(--radius-md); background: var(--primary-light); color: var(--primary-dark);
}
.next-step-panel.is-customer .next-step-panel-icon { background: var(--warning-light); color: var(--warning-dark); }
.next-step-panel.is-overdue .next-step-panel-icon { background: var(--danger-light); color: var(--danger-dark); }
.next-step-panel-text { display: flex; flex-direction: column; gap: 0.15rem; flex: 1; min-width: 220px; }
.next-step-panel-kicker { font-size: 0.7rem; font-weight: 600; letter-spacing: 0.5px; text-transform: uppercase; color: var(--text-secondary); }
.next-step-panel-meta { display: flex; gap: 0.75rem; flex-wrap: wrap; align-items: center; font-size: 0.8rem; color: var(--text-secondary); }
.next-step-panel-actions { display: flex; gap: 0.5rem; flex-wrap: wrap; }
.data-table .col-next-step { min-width: 190px; }
.list-row-main .next-step-chip { margin-top: 0.15rem; }
