/* ===== EnergieForum CRM - Hausverwalterwechsel (VVW) ===== */
.bsm-rv { font-family: 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif; color: #212934; }
.bsm-rv, .bsm-rv * { font-family: 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif; }
.bsm-rv input:not(.bsm-rv-fileinput), .bsm-rv select, .bsm-rv textarea { color: #1f2733 !important; -webkit-text-fill-color: #1f2733 !important; opacity: 1 !important; }
.bsm-rv input::placeholder, .bsm-rv textarea::placeholder { color: #9aa0a6 !important; -webkit-text-fill-color: #9aa0a6 !important; }
.bsm-rv input[readonly] { color: #1f2733 !important; -webkit-text-fill-color: #1f2733 !important; background: #f4f6f8 !important; }
.bsm-rv h2 { font-size: 20px; font-weight: 600; margin: 0; color: #202833; }
.bsm-rv h3 { font-size: 15px; font-weight: 600; color: #3a424f; margin: 22px 0 10px; }
.bsm-rv-notice { background: #eafbef; border-left: 3px solid #2e8b57; padding: 10px 14px; margin-bottom: 16px; border-radius: 4px; }

.bsm-rv-head { display: flex; align-items: center; justify-content: space-between; gap: 12px; flex-wrap: wrap; margin-bottom: 6px; }

.bsm-rv-btn { background: #b22125; color: #fff; border: none; border-radius: 8px; padding: 10px 18px; font-size: 14px; font-weight: 600; cursor: pointer; }
.bsm-rv-btn:hover { background: #97191d; }
.bsm-rv-btn-ghost { background: #f1f3f5; color: #3a424f; border: none; border-radius: 8px; padding: 10px 18px; font-size: 14px; font-weight: 600; cursor: pointer; }

.bsm-rv-tablewrap { overflow-x: auto; }
.bsm-rv-table { border-collapse: collapse; width: 100%; font-size: 13px; min-width: 760px; }
.bsm-rv-table th { text-align: left; padding: 9px 12px; border-bottom: 2px solid #ececf0; color: #7c838d; font-size: 11px; text-transform: uppercase; letter-spacing: .04em; font-weight: 600; white-space: nowrap; }
.bsm-rv-table td { padding: 10px 12px; border-bottom: 1px solid #f0f1f4; vertical-align: middle; }
.bsm-rv-num { text-align: center; }
.bsm-rv-empty { color: #9aa0a6; font-style: italic; }

.bsm-rv-badge { display: inline-block; padding: 3px 9px; border-radius: 20px; font-size: 11px; font-weight: 600; background: #eef0f3; color: #5b636d; white-space: nowrap; }
.bsm-rv-st-pruefung { background: #eef0f3; color: #5b636d; }
.bsm-rv-st-vertr_info { background: #e7f0fa; color: #2d6a9f; }
.bsm-rv-st-vertr_kunde_tel { background: #e7f0fa; color: #2d6a9f; }
.bsm-rv-st-bo_kd_mail { background: #fbf1e3; color: #b06a16; }
.bsm-rv-st-bo_brief { background: #fbf1e3; color: #b06a16; }
.bsm-rv-st-wiedervorlage { background: #f3e8fa; color: #7a559f; }
.bsm-rv-st-abgeschlossen { background: #e6f6ec; color: #2e8b57; }

.bsm-rv-actions { white-space: nowrap; }
.bsm-rv-link { background: none; border: none; color: #2d6a9f; cursor: pointer; font-size: 13px; padding: 2px 6px; text-decoration: underline; }
.bsm-rv-link:hover { color: #1d4a30; }

/* Overlay/Modal */
.bsm-rv-overlay { position: fixed; inset: 0; background: rgba(20,28,38,.45); display: flex; align-items: center; justify-content: center; z-index: 2147483000 !important; }
.bsm-rv-modal { background: #fff; border-radius: 14px; padding: 26px; width: 640px; max-width: 92vw; max-height: 88vh; overflow-y: auto; box-shadow: 0 18px 50px rgba(0,0,0,.22); }
.bsm-rv-modal h3 { margin: 0 0 16px; font-size: 17px; font-weight: 600; color: #202833; }
.bsm-rv-modal label { display: block; font-size: 12px; font-weight: 600; color: #6b7480; margin-bottom: 12px; }
.bsm-rv-modal input, .bsm-rv-modal select, .bsm-rv-modal textarea { width: 100%; box-sizing: border-box; margin-top: 4px; padding: 8px 11px !important; border: 1px solid #cdd5e0 !important; border-radius: 7px !important; font-size: 13px !important; line-height: 1.3 !important; font-weight: 400; color: #1f2733 !important; -webkit-text-fill-color: #1f2733 !important; height: auto !important; min-height: 0 !important; background: #fff !important; opacity: 1 !important; }
.bsm-rv-modal textarea { resize: vertical !important; min-height: 70px !important; }
.bsm-rv-modal .bsm-rv-grid { gap: 16px; }
.bsm-rv-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }
.bsm-rv-form label { display: block; font-size: 12px; font-weight: 600; color: #6b7480; }
.bsm-rv-form input, .bsm-rv-form select, .bsm-rv-form textarea { width: 100%; box-sizing: border-box; margin-top: 4px; padding: 7px 10px !important; border: 1px solid #cdd5e0 !important; border-radius: 7px !important; font-size: 13px !important; line-height: 1.3 !important; font-weight: 400; color: #1f2733 !important; height: auto !important; min-height: 0 !important; background: #fff; }
.bsm-rv-full { display: block; margin-top: 12px; }
.bsm-rv-modal-actions { display: flex; gap: 10px; justify-content: flex-end; margin-top: 18px; }

@media ( max-width: 600px ) {
	.bsm-rv-grid { grid-template-columns: 1fr; }
}

/* Pipeline: Zähler */
.bsm-rv-counts { display: flex; flex-wrap: wrap; gap: 10px; margin: 6px 0 22px; }
.bsm-rv-count { background: #f6f7f9; border: 1px solid #ececf0; border-radius: 10px; padding: 10px 14px; min-width: 96px; }
.bsm-rv-count-num { font-size: 22px; font-weight: 700; color: #202833; line-height: 1; }
.bsm-rv-count-lbl { font-size: 11px; color: #7c838d; margin-top: 4px; }

/* Pipeline: Kanban */
.bsm-rv-kanban { display: grid; grid-template-columns: repeat(auto-fill, minmax(220px, 1fr)); gap: 14px; padding-bottom: 14px; }
.bsm-rv-col { background: #f6f7f9; border-radius: 12px; padding: 10px; min-width: 0; }
.bsm-rv-col-head { display: flex; align-items: center; justify-content: space-between; font-size: 12px; font-weight: 700; color: #3a424f; margin-bottom: 10px; padding: 2px 4px; }
.bsm-rv-col-count { background: #fff; border-radius: 20px; padding: 1px 8px; font-size: 11px; color: #6b7480; }
.bsm-rv-card { background: #fff; border: 1px solid #ececf0; border-radius: 9px; padding: 10px 11px; margin-bottom: 9px; cursor: pointer; transition: box-shadow .12s, border-color .12s; user-select: none; -webkit-user-select: none; }
.bsm-rv-card * { pointer-events: none; }
.bsm-rv-card:hover { box-shadow: 0 3px 10px rgba(30,40,55,.1); border-color: #d6dbe1; }
.bsm-rv-card-title { font-size: 13px; font-weight: 600; color: #202833; margin-bottom: 4px; }
.bsm-rv-card-meta { font-size: 11px; color: #7c838d; line-height: 1.5; }
.bsm-rv-card-next { margin-top: 6px; font-size: 11px; color: #2d6a9f; }
.bsm-rv-col-empty { font-size: 11px; color: #aeb4ba; font-style: italic; padding: 6px 4px; }

/* Ausklappbare Detailzeile */
.bsm-rv-toggle { cursor: pointer; user-select: none; font-weight: 600; }
.bsm-rv-caret { display: inline-block; width: 0; height: 0; margin-right: 8px; vertical-align: middle; border-left: 5px solid #9aa0a6; border-top: 4px solid transparent; border-bottom: 4px solid transparent; transition: transform .12s; }
.bsm-rv-row.bsm-rv-open .bsm-rv-caret { transform: rotate( 90deg ); }
.bsm-rv-detail-cell { background: #f8f9fb; padding: 18px 20px !important; }
.bsm-rv-detail-grid { display: grid; grid-template-columns: 1.4fr 1fr; gap: 22px; }
.bsm-rv-detail-edit h4, .bsm-rv-detail-notes h4 { margin: 0 0 12px; font-size: 14px; font-weight: 600; color: #202833; }
.bsm-rv-detail-edit label { display: block; font-size: 12px; font-weight: 600; color: #6b7480; }
.bsm-rv-detail-edit input, .bsm-rv-detail-edit select, .bsm-rv-detail-edit textarea { width: 100%; box-sizing: border-box; margin-top: 4px; padding: 7px 10px !important; border: 1px solid #cdd5e0 !important; border-radius: 7px !important; font-size: 13px !important; line-height: 1.3 !important; font-weight: 400; color: #1f2733 !important; height: auto !important; min-height: 0 !important; background: #fff; }
.bsm-rv-detail-edit textarea, .bsm-rv-form textarea, .bsm-rv-note-form textarea { resize: vertical !important; min-height: 60px !important; }
.bsm-rv textarea[name="bemerkungen"], .bsm-rv textarea[name="note_body"] { resize: vertical !important; min-height: 64px !important; height: 64px; overflow: auto !important; }
.bsm-rv .bsm-rv-detail-edit form textarea[name="bemerkungen"],
.bsm-rv-detail-cell textarea[name="bemerkungen"],
body .bsm-rv textarea.bsm-rv-resize,
.bsm-rv textarea.bsm-rv-resize { resize: vertical !important; -webkit-resize: vertical !important; max-height: none !important; height: auto; min-height: 70px !important; overflow: auto !important; }
.bsm-rv-detail-actions { display: flex; gap: 10px; margin-top: 14px; }
.bsm-rv-btn-danger { background: #b22125; color: #fff; border: none; border-radius: 8px; padding: 10px 18px; font-size: 14px; font-weight: 600; cursor: pointer; }
.bsm-rv-btn-danger:hover { background: #97191d; }
.bsm-rv-pipe-table thead { display: none; }
.bsm-rv-pipe-table .bsm-rv-row { display: none !important; }
.bsm-rv-detail-row { display: none; }
.bsm-rv-detail-row.bsm-rv-detail-open { display: table-row !important; }
.bsm-rv-tabs { display: flex; gap: 4px; border-bottom: 2px solid #e2e6ea; margin: 8px 0 20px; flex-wrap: wrap; }
.bsm-rv-tab { background: none; border: none; border-bottom: 2px solid transparent; margin-bottom: -2px; padding: 9px 16px; font-size: 14px; font-weight: 600; color: #6b7480; cursor: pointer; }
.bsm-rv-tab:hover { color: #b22125; }
.bsm-rv-tab-active { color: #b22125 !important; border-bottom-color: #b22125 !important; }
.bsm-rv-tabpanel { display: none; }
.bsm-rv-tabpanel-active { display: block; }
.bsm-rv-btn-mail { background: #212934; color: #fff; border: none; border-radius: 8px; padding: 10px 18px; font-size: 14px; font-weight: 600; cursor: pointer; }
.bsm-rv-btn-mail:hover { background: #0f151c; }

/* Notizen */
.bsm-rv-note-form { margin-bottom: 14px; }
.bsm-rv-note-form textarea { width: 100%; box-sizing: border-box; padding: 7px 10px !important; border: 1px solid #cdd5e0 !important; border-radius: 7px !important; font-size: 13px !important; line-height: 1.3 !important; margin-bottom: 8px; resize: vertical !important; background: #fff; }
.bsm-rv-dropzone { position: relative; border: 1.5px dashed #cdd5e0; border-radius: 8px; background: #fafbfc; padding: 14px 12px; margin-bottom: 10px; cursor: pointer; transition: border-color .12s, background .12s; min-height: 56px; overflow: hidden; }
.bsm-rv-dropzone.bsm-rv-dragover { border-color: #b22125; background: #fbf3f3; }
.bsm-rv .bsm-rv-dropzone input.bsm-rv-fileinput, .bsm-rv-dropzone input[type="file"].bsm-rv-fileinput { position: absolute !important; top: 0 !important; left: 0 !important; right: 0 !important; bottom: 0 !important; width: 100% !important; height: 100% !important; opacity: 0 !important; margin: 0 !important; padding: 0 !important; border: 0 !important; background: transparent !important; cursor: pointer !important; z-index: 2; }
.bsm-rv-dropzone-inner { display: flex; flex-direction: row; align-items: center; justify-content: center; flex-wrap: wrap; text-align: center; gap: 4px 8px; pointer-events: none; position: relative; z-index: 1; }
.bsm-rv-drop-ico { width: 16px; height: 16px; border: 2px solid #b22125; border-radius: 50%; position: relative; flex: 0 0 auto; }
.bsm-rv-drop-ico::before, .bsm-rv-drop-ico::after { content: ''; position: absolute; background: #b22125; }
.bsm-rv-drop-ico::before { width: 2px; height: 8px; left: 6px; top: 2px; }
.bsm-rv-drop-ico::after { width: 8px; height: 2px; left: 3px; top: 5px; }
.bsm-rv-drop-text { font-size: 12px; color: #3a424f; }
.bsm-rv-drop-link { color: #b22125; font-weight: 600; text-decoration: underline; }
.bsm-rv-drop-hint { font-size: 10px; color: #9aa0a6; flex-basis: 100%; }
.bsm-rv-droplist { margin-top: 8px; display: flex; flex-direction: column; gap: 4px; }
.bsm-rv-dropitem { font-size: 12px; color: #2b3340; background: #fff; border: 1px solid #e6eaf0; border-radius: 6px; padding: 4px 9px; }
.bsm-rv-note-list { max-height: 360px; overflow-y: auto; }
.bsm-rv-note { background: #fff; border: 1px solid #ececf0; border-left: 3px solid #b22125; border-radius: 8px; padding: 9px 12px; margin-bottom: 8px; }
.bsm-rv-note-meta { font-size: 11px; color: #9aa0a6; margin-bottom: 3px; }
.bsm-rv-note-body { font-size: 13px; color: #2b3340; line-height: 1.45; }
.bsm-rv-note-empty { font-size: 12px; color: #aeb4ba; font-style: italic; }
.bsm-rv-note-files { margin-top: 7px; display: flex; flex-direction: column; gap: 4px; }
.bsm-rv-note-file-link { display: inline-flex; align-items: center; gap: 6px; font-size: 12px; color: #2d6a9f; text-decoration: none; }
.bsm-rv-note-file-link:hover { text-decoration: underline; }
.bsm-rv-file-ico { display: inline-block; width: 12px; height: 14px; background: linear-gradient( #d6dbe1, #d6dbe1 ) no-repeat; border-radius: 2px; position: relative; flex: 0 0 auto; border: 1px solid #b8bfc7; }

@media ( max-width: 760px ) {
	.bsm-rv-detail-grid { grid-template-columns: 1fr; }
}

/* Dashboard / Auswertung */
.bsm-rv-dash-filter { display: flex; gap: 12px; align-items: flex-end; flex-wrap: wrap; margin: 8px 0 20px; }
.bsm-rv-dash-filter label { font-size: 12px; font-weight: 600; color: #5b636d; display: flex; flex-direction: column; gap: 3px; }
.bsm-rv-dash-filter input { padding: 7px 9px; border: 1px solid #cdd5e0; border-radius: 7px; font-size: 13px; }
.bsm-rv-dash-cards { display: grid; grid-template-columns: repeat(auto-fit, minmax(150px, 1fr)); gap: 12px; margin-bottom: 22px; }
.bsm-rv-dash-card { background: #fff; border: 1px solid #e6e8ec; border-radius: 12px; padding: 16px 18px; text-align: center; }
.bsm-rv-dash-num { font-size: 30px; font-weight: 700; color: #202833; line-height: 1.1; }
.bsm-rv-dash-lbl { font-size: 12px; color: #6b7480; margin-top: 4px; }
.bsm-rv-dash-cols { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; margin-bottom: 22px; }
.bsm-rv-dash-box { background: #fff; border: 1px solid #e6e8ec; border-radius: 12px; padding: 16px 20px; margin-bottom: 22px; }
.bsm-rv-dash-box h3 { margin: 0 0 14px; font-size: 15px; color: #202833; }
.bsm-rv-bar-row { display: flex; align-items: center; gap: 10px; margin-bottom: 8px; }
.bsm-rv-bar-lbl { flex: 0 0 170px; font-size: 13px; color: #3a424d; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.bsm-rv-bar-track { flex: 1; background: #f0f2f5; border-radius: 6px; height: 16px; overflow: hidden; }
.bsm-rv-bar-fill { display: block; height: 100%; background: #b22125; border-radius: 6px; min-width: 2px; }
.bsm-rv-bar-val { flex: 0 0 36px; text-align: right; font-size: 13px; font-weight: 600; color: #202833; }
.bsm-rv-dash-tablefilter { width: 100%; max-width: 360px; padding: 8px 11px; border: 1px solid #cdd5e0; border-radius: 7px; font-size: 13px; margin-bottom: 12px; }
@media ( max-width: 760px ) {
	.bsm-rv-dash-cols { grid-template-columns: 1fr; }
	.bsm-rv-bar-lbl { flex-basis: 110px; }
}

/* Dashboard KPI-Kacheln (Excel-Optik: dunkelblau, orange Zahlen) */
.bsm-rv-kpis { display: grid; grid-template-columns: repeat(5, 1fr); gap: 14px; margin-bottom: 16px; }
.bsm-rv-kpi { background: #1f3a5f; border-top: 3px solid #1f3a5f; border-radius: 4px; padding: 14px 16px 12px; text-align: center; box-shadow: 0 1px 3px rgba(20,40,70,.18); display: flex; flex-direction: column; min-height: 104px; }
.bsm-rv-kpi-lbl { font-size: 11px; font-weight: 700; letter-spacing: .04em; color: #ffffff; text-transform: uppercase; margin-bottom: 8px; }
.bsm-rv-kpi-num { font-size: 30px; font-weight: 800; color: #f08a24; line-height: 1.05; }
.bsm-rv-kpi-unit { font-size: 15px; font-weight: 600; color: #f08a24; }
.bsm-rv-kpi-sub { font-size: 10.5px; color: #c4d2e3; margin-top: auto; padding-top: 8px; line-height: 1.3; }
.bsm-rv-dash-loading { font-size: 12px; color: #b22125; font-weight: 600; align-self: center; }
@media ( max-width: 1100px ) {
	.bsm-rv-kpis { grid-template-columns: repeat(3, 1fr); }
}
@media ( max-width: 680px ) {
	.bsm-rv-kpis { grid-template-columns: repeat(2, 1fr); }
}
