/* Household workspace and the partner-only electricity editor. */
.household-detail-page { position: relative; min-width: 0; }
.household-workspace { min-width: 0; }
.client-detail-dialog .household-workspace { padding: 18px; }
.household-workspace-heading { display: flex; align-items: center; justify-content: space-between; gap: 20px; margin-bottom: 18px; }
.household-workspace-heading h1 { font-size: 24px; line-height: 1.3; font-weight: 650; margin: 4px 0 6px; overflow-wrap: anywhere; }
.household-workspace-heading p { color: var(--partner-muted); margin: 0; font-size: 14px; }
.household-workspace-heading > .mud-select { flex: 0 1 320px; min-width: 0; }
.household-section-nav, .household-quick-views { display: flex; gap: 6px; flex-wrap: wrap; margin-bottom: 16px; }
.household-section-picker { display: none; }
.household-section-nav { padding: 6px; background: #fff; border: 1px solid var(--partner-line); border-radius: 12px; }
.household-section-nav button, .household-quick-views button { font: inherit; font-size: 14px; font-weight: 600; padding: 10px 16px; border: 1px solid transparent; border-radius: 8px; color: var(--partner-ink); background: transparent; cursor: pointer; min-height: 42px; }
.household-quick-views button { background: #fff; border-color: var(--partner-line); }
.household-section-nav button.active, .household-quick-views button.active { color: var(--partner-primary); background: var(--partner-surface-subtle); border-color: var(--partner-line); box-shadow: inset 0 -2px 0 var(--partner-green); }
.household-section-nav button:hover, .household-quick-views button:hover { box-shadow: inset 0 0 0 2px var(--partner-control-line); }
.household-section-content.client-detail-content { display: grid; grid-template-columns: minmax(0, 1fr); gap: 16px; max-height: none; overflow: visible; padding: 0; }
.household-section-content.client-detail-content > * { min-width: 0; margin-block: 0; }
.household-section-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; align-items: start; }
.technology-grid > :first-child, .technology-grid > :last-child { grid-column: 1 / -1; }
.household-section-card { min-width: 0; background: #fff; border: 1px solid var(--partner-line); border-radius: 12px; padding: 18px; overflow-wrap: anywhere; }
.household-section-card h2, .contract-section h2 { margin: 0 0 10px; font-size: 18px; font-weight: 650; line-height: 1.4; }
.household-section-card p { margin: 6px 0 12px; color: var(--partner-muted); font-size: 14px; line-height: 1.55; }
.household-section-card .mud-card-header { padding: 10px 0; }
.household-section-card .mud-card-content { padding: 12px 0; }
.section-card-title { display: flex; align-items: flex-start; justify-content: space-between; gap: 12px; margin-bottom: 10px; }
.section-card-title .mud-button-root { flex-shrink: 0; }
.section-card-title h2 { margin-bottom: 0; }
.readiness-card { margin-bottom: 16px; }
.readiness-checks { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; }
.readiness-check { display: flex; align-items: center; gap: 10px; text-align: left; font: inherit; color: var(--partner-ink); background: #fff; border: 1px solid var(--partner-line); border-radius: 8px; padding: 12px; cursor: pointer; }
.readiness-check.attention { color: #704000; background: #fff7e7; border-color: #d6af69; }
.readiness-check > span { flex: 1; min-width: 0; }
.readiness-check strong { display: block; font-size: 14px; }
.readiness-check small { display: block; font-size: 13px; margin-top: 3px; }
.readiness-check > .mud-icon-root { flex-shrink: 0; }
button.readiness-check:hover { box-shadow: inset 0 0 0 1px currentColor; }
.readiness-note { margin-bottom: 0 !important; }
@media (min-width: 1200px) { .readiness-checks { grid-template-columns: repeat(4, minmax(0, 1fr)); } }
.electricity-summary { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 14px; margin-bottom: 16px; }
.electricity-summary .section-card-title { flex-wrap: wrap; align-items: center; }
.electricity-summary .summary-primary { color: var(--partner-ink); font-size: 17px; font-weight: 600; margin-bottom: 16px; }
.electricity-summary dl { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.2fr); gap: 10px 12px; font-size: 14px; line-height: 1.5; margin: 12px 0; }
.electricity-summary dt { color: var(--partner-muted); }
.electricity-summary dd { margin: 0; text-align: right; font-weight: 550; }
.electricity-summary summary, .contract-help summary { cursor: pointer; color: var(--partner-primary); font-weight: 600; font-size: 14px; padding: 10px 0; }
.household-warning-list { display: flex; flex-direction: column; gap: 6px; padding: 4px 0; white-space: normal; font-size: 13px; line-height: 1.4; }
.household-warning-list a { display: block; color: #784600; text-decoration: underline; text-underline-offset: 3px; }
.household-warning-list a:hover { color: #3c2900; }
.status-clear { color: var(--partner-primary); }
.partner-contract-dialog { width: 840px !important; max-width: calc(100vw - 40px) !important; max-height: calc(100dvh - 40px) !important; }
.partner-contract-dialog .mud-dialog-title { padding: 18px 22px 14px; border-bottom: 1px solid var(--partner-line); }
.partner-contract-dialog .contract-dialog-content { padding: 16px 22px; position: relative; background: #fff; }
.partner-contract-dialog .mud-dialog-actions { padding: 12px 22px; border-top: 1px solid var(--partner-line); gap: 8px; flex-shrink: 0; }
.contract-nav { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 6px; margin-bottom: 16px; }
.contract-nav button { display: flex; align-items: center; justify-content: center; gap: 7px; border: 1px solid var(--partner-line); border-radius: 8px; min-height: 48px; padding: 8px; font: inherit; font-size: 13px; font-weight: 600; color: var(--partner-ink); background: #fff; cursor: pointer; }
.contract-nav button span { display: grid; place-items: center; width: 23px; height: 23px; border-radius: 50%; background: var(--partner-surface-subtle); flex-shrink: 0; }
.contract-nav button.active { color: var(--partner-primary); background: var(--partner-surface-subtle); border-color: var(--partner-line); box-shadow: inset 0 -2px 0 var(--partner-green); }
.contract-nav button.active span { color: var(--partner-primary); background: #fff; }
.contract-nav button:disabled { cursor: default; }
.contract-draft { border: 0; padding: 0; margin: 0; min-width: 0; }
.contract-section { background: #fff; border: 1px solid var(--partner-line); border-radius: 10px; padding: 20px; }
.contract-section > p, .contract-help p { font-size: 14px; color: var(--partner-muted); line-height: 1.55; margin: 0 0 16px; }
.contract-section h3 { margin: 20px 0 12px; padding-top: 16px; border-top: 1px solid var(--partner-line); font-size: 16px; font-weight: 700; color: var(--partner-ink); }
.contract-fields { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px 18px; margin-bottom: 14px; }
.contract-field { min-width: 0; }
.contract-field .mud-input-control { margin-top: 8px; }
.contract-field .mud-input-label { max-width: calc(100% - 28px); }
.contract-help { border-top: 1px solid var(--partner-line); margin: 12px 0; }
.contract-hint { background: #fff; padding: 12px; border-radius: 8px; font-size: 13px !important; }
.contract-changes { margin: 16px 0; }
.contract-change { display: grid; grid-template-columns: 1.4fr 1fr 1fr; gap: 12px; padding: 12px 0; border-bottom: 1px solid var(--partner-line); font-size: 14px; overflow-wrap: anywhere; }
.contract-change small { display: block; font-size: 12px; color: var(--partner-muted); margin-bottom: 4px; }
.contract-change > span:last-child { color: var(--partner-primary); font-weight: 600; }
:is(.household-section-nav, .household-quick-views, .contract-nav) button:focus-visible, .readiness-check:focus-visible, .household-warning-list a:focus-visible { outline: 3px solid var(--partner-primary); outline-offset: 3px; }
@media (max-width: 1150px) { .electricity-summary { grid-template-columns: 1fr; } }
@media (max-width: 700px) {
    .household-workspace-heading { align-items: stretch; flex-direction: column; gap: 12px; }
    .household-workspace-heading > .mud-select { flex: auto; }
    .household-workspace-heading h1 { font-size: 21px; }
    .household-section-nav { display: none; }
    .household-section-picker { display: block; margin: 0 0 18px; background: #fff; border-radius: 8px; }
    .household-quick-views { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .household-quick-views button { padding: 8px; }
    .household-section-grid, .readiness-checks { grid-template-columns: 1fr; }
    .household-section-card { padding: 14px; }
    .section-card-title { flex-wrap: wrap; }
    .client-detail-dialog .household-workspace { padding: 12px; }
    .partner-contract-dialog { width: 100vw !important; max-width: 100vw !important; max-height: 100dvh !important; margin: 0 !important; border-radius: 0 !important; }
    .partner-contract-dialog .mud-dialog-title { padding: 14px 16px; }
    .partner-contract-dialog .contract-dialog-content { padding: 12px; }
    .partner-contract-dialog .mud-dialog-actions { padding: 10px 12px; gap: 4px; }
    .contract-nav { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .contract-nav button { justify-content: flex-start; }
    .contract-section { padding: 14px; }
    .contract-fields { grid-template-columns: 1fr; gap: 8px; }
    .contract-change { grid-template-columns: 1fr 1fr; }
    .contract-change > strong { grid-column: 1 / -1; }
}
.operation-status, .partner-work-overview { margin-bottom: 18px; position: relative; overflow: hidden; }
.operation-metrics { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 14px; margin: 12px 0; }
.operation-metrics > div { border: 1px solid var(--partner-line); border-radius: 8px; padding: 14px; background: #fff; min-width: 0; }
.operation-metrics > div > span, .operation-metrics > div > strong, .operation-metrics > div > small { display: block; }
.operation-metrics strong { font-size: 16px; margin: 5px 0; color: var(--partner-ink); }
.operation-metrics small, .delivery-row dt, .work-event small { color: var(--partner-muted); font-size: 13px; line-height: 1.5; }
.operation-next { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 10px 0; }
.work-filters { display: flex; flex-wrap: wrap; align-items: center; gap: 12px; margin-bottom: 14px; }
.work-filters > .mud-select { flex: 0 1 240px; min-width: 0; }
.delivery-row { border-top: 1px solid var(--partner-line); padding: 14px 0; }
.delivery-row > div { display: flex; flex-wrap: wrap; align-items: center; gap: 12px; }
.delivery-label { padding: 4px 9px; border-radius: 5px; color: var(--partner-ink); background: var(--partner-surface-subtle); font-size: 13px; }
.delivery-label.attention { color: #713c07; background: #fff0d5; }
.delivery-row dl { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 12px; margin: 10px 0 0; }
.delivery-row dd { margin: 0; font-size: 14px; }
.work-summary-links { display: grid; grid-template-columns: repeat(auto-fit,minmax(160px,1fr)); gap: 12px; margin: 14px 0 20px; }
.work-summary-links a { display: flex; align-items: center; gap: 12px; padding: 14px; border: 1px solid var(--partner-line); border-radius: 8px; color: var(--partner-ink); background: #fff; }
.work-summary-links strong { font-size: 25px; }
.work-summary-links span { font-size: 14px; font-weight: 600; }
.work-overview-columns { display: grid; grid-template-columns: minmax(0,1.35fr) minmax(0,1fr); gap: 26px; }
.work-overview-columns h3 { font-size: 16px; font-weight: 650; margin: 0 0 8px; }
.work-home, .work-event { border-top: 1px solid var(--partner-line); padding: 10px 0; }
.work-home > strong { display: block; margin-bottom: 4px; }
.work-event { display: flex; flex-direction: column; gap: 3px; color: var(--partner-ink); }
.work-empty { padding: 14px 0; color: var(--partner-muted); }
.work-summary-links a:hover, .work-event:hover { background: var(--partner-surface-subtle); text-decoration: underline; }
.work-summary-links a:focus-visible, .work-event:focus-visible, .installation-settings summary:focus-visible { outline: 3px solid var(--partner-primary); outline-offset: 3px; }
.partner-history .mud-toolbar { height: auto; flex-wrap: wrap; padding: 12px; gap: 10px; }
.partner-history .mud-toolbar > .mud-input-control { flex: 1 1 210px; min-width: 0 !important; margin: 0 !important; }
.partner-history .mud-paper { overflow: hidden; border-radius: 8px; }
.installation-page > .mud-grid > .installation-offers { order: -1; }
.installation-work-toolbar { padding: 0 16px 12px; }
.installation-settings { border: 1px solid var(--partner-line); border-radius: 10px; background: #fff; padding: 16px; }
.installation-settings summary { cursor: pointer; color: var(--partner-ink); font-weight: 600; min-height: 32px; }
.installation-settings[open] summary { margin-bottom: 16px; }
.installation-progress-overview { border: 1px solid var(--partner-line); border-radius: 10px; padding: 16px; background: #fff; margin-bottom: 18px; }
.installation-progress-overview h2 { font-size: 18px; font-weight: 650; margin: 0 0 8px; }
.installation-steps { list-style: none; display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); padding: 0; margin: 16px 0 0; gap: 8px; }
.installation-steps li { display: flex; align-items: center; gap: 8px; color: var(--partner-muted); padding: 10px; background: #fff; border: 1px solid var(--partner-line); border-radius: 7px; font-size: 14px; }
.installation-steps li > span { width: 28px; height: 28px; display: grid; place-items: center; flex-shrink: 0; border: 1px solid currentColor; border-radius: 50%; }
.installation-steps li.current { border: 2px solid var(--partner-primary); color: var(--partner-ink); font-weight: 650; }
.installation-steps li.complete > span { background: var(--partner-green); color: #fff; }
.installation-steps small { display: block; font-weight: 400; }
@media (max-width: 700px) {
    .operation-metrics, .work-overview-columns, .installation-steps { grid-template-columns: 1fr; gap: 10px; }
    .operation-next { align-items: flex-start; flex-direction: column; }
    .operation-metrics > div { padding: 12px; }
    .work-summary-links { grid-template-columns: repeat(2,minmax(0,1fr)); gap: 8px; }
    .work-summary-links a { flex-direction: column; align-items: flex-start; gap: 2px; padding: 10px; }
    .delivery-row dl { grid-template-columns: 1fr; gap: 6px; }
    .delivery-row dl > div { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 6px; }
    .partner-history .mud-toolbar > * { max-width: 100%; }
    .installation-progress-overview { padding: 12px; }
}
.change-filters { display: flex; flex-wrap: wrap; align-items: center; gap: 10px; margin-bottom: 14px; }
.change-filters > .mud-input-control, .change-filters > .mud-select { flex: 1 1 200px; min-width: 0; }
.change-entry { padding: 14px 0; border-top: 1px solid var(--partner-line); }
.change-entry-title { display: flex; justify-content: space-between; flex-wrap: wrap; gap: 8px; }
.change-entry-title time { font-size: 13px; color: var(--partner-muted); }
.change-values { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 12px; margin: 8px 0; }
.change-values > div { padding: 10px 12px; border-radius: 6px; border: 1px solid var(--partner-line); min-width: 0; }
.change-values > div:last-child { background: var(--partner-surface-subtle); }
.change-values small, .change-values span, .change-values strong { display: block; overflow-wrap: anywhere; }
.change-values small { color: var(--partner-muted); font-size: 12px; margin-bottom: 4px; }
.change-entry details { font-size: 13px; }
.change-entry summary { cursor: pointer; color: var(--partner-primary); padding: 6px 0; }
.change-entry dd { margin: 0 0 6px; overflow-wrap: anywhere; white-space: pre-wrap; }
.change-entry dt { font-weight: 600; }
.change-pagination { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 8px; margin-top: 14px; }
.change-pagination span { color: var(--partner-muted); font-size: 13px; }
.installation-setup-checks { display: flex; flex-wrap: wrap; list-style: none; gap: 10px 24px; padding: 0; color: var(--partner-ink); }
.partner-history { position: relative; overflow: hidden; }
.installation-work-toolbar { padding-top: 16px; }
.installation-extra-filters summary { min-height: 36px; padding: 8px 0; font-size: 14px; color: var(--partner-primary); cursor: pointer; }
.installation-extra-filters[open] { flex-basis: 100%; }
.operation-diagnostics { border: 1px solid var(--partner-line); border-radius: 10px; background: #fff; margin-bottom: 16px; }
.operation-diagnostics > summary { padding: 14px 18px; min-height: 48px; cursor: pointer; font-weight: 600; color: var(--partner-ink); }
.operation-diagnostics > summary:focus-visible { outline: 3px solid var(--partner-primary); outline-offset: 2px; }
.operation-diagnostics > section { border-width: 1px 0 0; border-radius: 0; margin: 0; }
.work-overview-columns.work-overview-single { grid-template-columns: 1fr; }
.offer-count { display: inline-block; margin-left: 5px; padding: 2px 8px; border-radius: 6px; background: var(--partner-surface-subtle); color: var(--partner-ink); font-size: 13px; }
.dashboard-offer { border-top: 1px solid var(--partner-line); padding: 12px 0; }
.dashboard-offer-title { display: flex; justify-content: space-between; flex-wrap: wrap; gap: 6px 14px; color: var(--partner-ink); }
.dashboard-offer p { margin: 4px 0; font-size: 14px; color: var(--partner-muted); }
.dashboard-offer small { color: var(--partner-muted); font-size: 12px; }
.dashboard-offer-actions { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 9px; }
.dashboard-accepted-offer { border: 1px solid var(--partner-line); border-radius: 8px; background: #fff; padding: 12px; margin: 12px 0; color: var(--partner-ink); }
.dashboard-accepted-offer p { margin: 6px 0; }
@media (max-width: 700px) { .dashboard-installations { grid-row: 1; } .dashboard-offer-actions > button { flex: 1 1 130px; } }
.load-failure { display: flex; align-items: center; flex-wrap: wrap; gap: 12px; border: 1px solid #bd9564; border-radius: 10px; background: #fff6e8; color: #624112; padding: 16px; margin: 12px 0; }
.load-failure > div { flex: 1 1 220px; }
.load-failure p { margin: 4px 0 0; font-size: 14px; }
.record-facts { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 18px; margin-top: 14px; }
.record-facts dt, .linked-record small { color: var(--partner-muted); font-size: 13px; }
.record-facts dd { margin: 4px 0 0; font-weight: 600; }
.linked-record { display: flex; justify-content: space-between; align-items: center; flex-wrap: wrap; gap: 12px; padding: 16px 0; border-bottom: 1px solid var(--partner-line); }
.linked-record:last-child { border-bottom: 0; }
.linked-record > div { min-width: 0; }
.linked-record p { margin: 4px 0; overflow-wrap: anywhere; }
.record-actions { display: flex; align-items: center; flex-wrap: wrap; gap: 8px; }
.record-actions .mud-button-label { overflow-wrap: anywhere; }
.client-record-columns { display: grid; grid-template-columns: minmax(0,1.2fr) minmax(0,1fr); gap: 18px; margin-top: 18px; align-items: start; }
.installation-contact-actions { margin-bottom: 12px; }
.installation-action-fields { border: 0; margin: 0; padding: 0; min-width: 0; }
@media (max-width: 800px) { .client-record-columns, .record-facts { grid-template-columns: 1fr; } .linked-record { align-items: flex-start; } .record-actions > .mud-button-root { max-width: 100%; } }
/* Let long labels determine card height instead of clipping absolutely positioned labels. */
@media (max-width: 600px) {
    .workspace-content .portfolio-grid.e-row-responsive .e-rowcell:not(.e-hide) {
        padding: 10px 14px !important;
        height: auto !important;
    }
    .workspace-content .portfolio-grid.e-row-responsive .e-rowcell::before {
        position: static !important;
        display: block;
        width: auto !important;
        padding: 0 0 3px !important;
        white-space: normal !important;
        font-weight: 600;
    }
}
.device-communication { display: flex; flex-direction: column; align-items: flex-start; gap: 3px; white-space: normal; padding: 3px 0; }
.device-communication-badge { display: inline-flex; align-items: center; gap: 7px; border: 1px solid; border-radius: 6px; padding: 4px 9px; font-size: 14px; font-weight: 700; line-height: 1.3; }
.device-communication-badge > span { font-size: 17px; line-height: 1; font-weight: 800; }
.device-communication-ok { color: #14532d; background: #dcfce7; border-color: #43865a; }
.device-communication-warning { color: #713f12; background: #fef3c7; border-color: #a77913; }
.device-communication-error { color: #991b1b; background: #fee2e2; border-color: #c55b5b; }
.device-communication-unassigned { color: #374151; background: #f3f4f6; border-color: #9ca3af; }
.device-communication-description { color: var(--partner-muted); font-size: 12px; line-height: 1.4; }
.household-problem-filter { display: flex; align-items: center; flex-wrap: wrap; gap: 10px; margin: 0 0 16px; }
.household-problem-filter label { font-weight: 700; color: var(--partner-ink); }
.household-problem-filter select { min-height: 42px; max-width: 100%; padding: 9px 34px 9px 12px; border: 1px solid var(--partner-control-line); border-radius: 6px; background: #fff; color: var(--partner-ink); font: inherit; }
.household-problem-filter select:focus-visible { outline: 3px solid var(--partner-primary); outline-offset: 2px; }
@media (max-width: 600px) { .household-problem-filter { align-items: stretch; flex-direction: column; gap: 6px; } .household-problem-filter select { width: 100%; min-width: 0; } }
.household-action-list { gap: 8px; }
.household-action-list .household-action { display: flex; flex-direction: column; align-items: flex-start; gap: 3px; padding: 8px 10px; border: 1px solid; border-left-width: 4px; border-radius: 6px; text-decoration: none; white-space: normal; }
.household-action-list .household-action-error { color: #851e1e; background: #fff1f0; border-color: #c86666; }
.household-action-list .household-action-warning { color: #714310; background: #fff8df; border-color: #b49339; }
.household-action-list .household-action-setup { color: #234968; background: #edf5fc; border-color: #7697b5; }
.household-action-list .warning-category { font-size: 11px; font-weight: 700; }
.household-action-list .warning-next { font-size: 12px; text-decoration: underline; text-underline-offset: 3px; }
.household-action-list .household-action:focus-visible { outline: 3px solid var(--partner-primary); outline-offset: 2px; }
.dashboard-problem-links { display: flex; flex-wrap: wrap; gap: 8px; margin: 14px 0 20px; }
.dashboard-problem-links a { display: inline-flex; align-items: center; gap: 10px; padding: 8px 11px; border: 1px solid var(--partner-line); border-radius: 6px; background: #fff; color: var(--partner-ink); font-size: 13px; text-decoration: none; }
.dashboard-problem-links strong { border-radius: 4px; padding: 1px 6px; background: var(--partner-surface-subtle); }
.portfolio-grid .household-action-list details .household-action { margin-top: 6px; }
.workspace-content .docs-search-bar { max-width: 340px; }
.workspace-content .docs-search-bar .mud-input-outlined { min-height: 42px; }
.workspace-content .docs-search-bar .mud-input-slot { padding-top: 10px; padding-bottom: 10px; }
@media (max-width: 600px) { .workspace-content .docs-search-bar { max-width: none; } }
.installation-status { display: flex; flex-direction: column; align-items: flex-start; gap: 5px; padding: 5px 0; white-space: normal; }
.installation-status-badge { display: inline-flex; border: 1px solid; border-radius: 6px; padding: 4px 8px; font-size: 14px; font-weight: 700; line-height: 1.3; }
.installation-status small { color: var(--partner-muted); font-size: 13px; line-height: 1.4; }
.installation-status-waiting { color: #713f12; background: #fef3c7; border-color: #a87818; }
.installation-status-ready, .installation-status-new { color: #164e63; background: #e0f2fe; border-color: #558293; }
.installation-status-success { color: #14532d; background: #dcfce7; border-color: #43865a; }
.installation-status-neutral { color: #374151; background: #f3f4f6; border-color: #9ca3af; }
.portfolio-empty { padding: 24px 16px; text-align: center; white-space: normal; color: var(--partner-ink); }
.portfolio-empty strong { font-size: 16px; }
.portfolio-empty p { margin: 8px auto 12px; max-width: 540px; color: var(--partner-muted); line-height: 1.5; }
.installation-work-toolbar .docs-search-bar { width: 100%; max-width: 580px; margin: 10px 0 14px; }
@media (max-width: 380px) {
    .contract-change { grid-template-columns: 1fr; gap: 8px; }
}
.installation-customer { display: flex; flex-direction: column; gap: 4px; white-space: normal; overflow-wrap: anywhere; padding: 5px 0; }
.installation-customer strong { color: var(--partner-ink); font-size: 15px; }
.installation-customer span { color: var(--partner-muted); font-size: 14px; line-height: 1.4; }
.contract-nav button:focus-visible, .household-quick-views button:focus-visible { outline: 3px solid var(--partner-primary); outline-offset: 2px; }
.installation-customer .installation-field-label { display: block; color: var(--partner-muted); font-size: 12px; font-weight: 600; line-height: 1.3; margin-bottom: 2px; }
.installation-customer .installation-age { font-size: 13px; color: var(--partner-muted); }
.installation-extra-info { display: flex; flex-direction: column; gap: 3px; border-top: 1px solid var(--partner-line); padding-top: 8px; margin-top: 4px; }
.installation-extra-info a { color: var(--partner-primary); text-decoration: underline; overflow-wrap: anywhere; }
.installation-grid .installation-status { padding: 0; }
.installation-grid .installation-customer { line-height: 1.4; padding: 10px 0; }
.installation-grid .e-rowcell { vertical-align: top; }
.installation-note { white-space: pre-wrap; }
.installation-grid .mud-button-label { white-space: normal; }
/* Keep household table labels independent of their sort/menu controls. */
.household-section-content .mud-table-head .mud-table-cell { padding: 12px 14px; vertical-align: top; line-height: 1.4; overflow-wrap: normal; word-break: normal; }
.household-section-content .mud-table-head .column-header { display: flex; flex-direction: column; align-items: stretch; gap: 4px; min-width: 0; white-space: normal; }
.household-section-content .mud-table-head .sortable-column-header { display: block; width: 100%; min-width: 0; line-height: 1.4; overflow-wrap: normal; word-break: normal; }
.household-section-content .mud-table-head .column-options { display: flex; align-items: center; align-self: flex-end; flex-shrink: 0; gap: 2px; margin: 0; }
.household-section-content .mud-table-head .column-options .mud-icon-button { margin: 0; padding: 5px; }
.household-section-content .mud-table-head .column-options .mud-sort-index { margin: 0; }
.household-section-content .mud-table-cell { line-height: 1.4; }
.household-section-content .mud-card-header { padding: 12px 16px; gap: 12px; }
.household-section-content .mud-card-header-content { min-width: 0; }
.household-section-content .mud-card-header-actions { margin: 0; align-self: center; flex-shrink: 0; }
.household-section-content .mud-card-header .mud-icon-button { margin: 0; }
.household-section-content .mud-table-toolbar { height: auto; min-height: 56px; padding: 10px 16px; gap: 12px; }
.household-section-content .mud-table-toolbar > .mud-icon-button { margin: 0; flex-shrink: 0; }
.household-section-content .mud-table-toolbar > .mud-typography { min-width: 0; white-space: normal; overflow-wrap: anywhere; }
.household-section-content .mud-table-container { max-width: 100%; overflow-x: auto; }
.household-section-content .mud-table-head .column-options { flex-direction: row; flex-wrap: nowrap; width: auto; }
.household-device-identity { display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap; gap: 16px; padding: 16px 0; }
.household-device-identity strong { display: block; font-size: 22px; color: var(--partner-ink); line-height: 1.4; }
.device-section-label { font-size: 14px; color: var(--partner-muted); }
.household-device-connections { display: flex; flex-direction: column; align-items: stretch; gap: 8px; }
.household-device-connections > div { display: flex; align-items: center; justify-content: space-between; gap: 16px; font-size: 14px; }
.household-device-facts { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 18px; }
.household-device-facts section { padding: 16px; background: #fff; border: 1px solid var(--partner-line); border-radius: 8px; }
.household-device-facts h3, .household-device-history h3 { font-size: 15px; font-weight: 700; margin: 0 0 12px; color: var(--partner-ink); }
.household-device-facts dl { margin: 0; display: grid; gap: 3px; }
.household-device-facts dt { color: var(--partner-muted); font-size: 13px; }
.household-device-facts dd { margin: 0 0 10px; font-size: 15px; color: var(--partner-ink); overflow-wrap: anywhere; }
.household-device-facts dd:last-child { margin-bottom: 0; }
.household-device-history { margin-top: 20px; border-top: 1px solid var(--partner-line); padding-top: 16px; }
.household-device-history ul { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: 10px; }
.household-device-history li { border: 1px solid var(--partner-line); border-radius: 6px; padding: 10px 12px; }
.household-device-history li span { display: block; font-size: 13px; color: var(--partner-muted); margin-top: 3px; }
@media (max-width: 700px) { .household-device-facts { grid-template-columns: 1fr; gap: 10px; } }
.household-section-content .mud-data-grid .mud-table-head .column-header .column-options { flex-direction: row; flex-wrap: nowrap; width: auto; }
.household-section-grid.people-grid > :only-child { grid-column: 1 / -1; }

.household-section-grid.people-grid { grid-template-columns: 1fr; }
.household-section-content .e-grid .e-headercell { padding: 12px 14px; }
.household-section-content .e-grid .e-headercelldiv { height: auto; white-space: normal; line-height: 1.4; }
.household-section-content .partner-history .e-grid .e-rowcell { padding: 10px 14px; white-space: normal; overflow-wrap: anywhere; line-height: 1.4; vertical-align: top; }
.household-device-history li { min-width: 0; max-width: 100%; overflow-wrap: anywhere; }

.control-summary-grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 16px; margin: 16px 0; }
.control-summary-grid > div { display: flex; flex-direction: column; gap: 4px; }
.control-modes h3, .connected-device h3, .connected-channel-editor h3 { font-size: 16px; font-weight: 700; margin: 12px 0 8px; }
.control-modes ul { display: flex; flex-wrap: wrap; gap: 8px; list-style: none; padding: 0; }
.control-modes li { padding: 5px 9px; border: 1px solid var(--partner-line); border-radius: 6px; background: #fff; }
.connected-device-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 16px; }
.connected-device { padding: 16px; border: 1px solid var(--partner-line); border-radius: 8px; min-width: 0; overflow-wrap: anywhere; }
.connected-channel { display: flex; flex-wrap: wrap; gap: 6px 16px; border-top: 1px solid var(--partner-line); padding: 12px 0; }
.connected-channel small { flex-basis: 100%; color: var(--partner-muted); }
.connected-channel-editor { margin-top: 20px; display: grid; gap: 12px; }
.service-limits { display: grid; grid-template-columns: minmax(0,1fr) minmax(0,1fr); gap: 8px 16px; }
.service-limits dd { margin: 0; font-weight: 600; }
@media(max-width:800px) { .control-summary-grid, .connected-device-grid { grid-template-columns: 1fr; } }

.control-modes { margin: 12px 0; border-top: 1px solid var(--partner-line); padding-top: 12px; }
.control-modes summary { cursor: pointer; font-weight: 600; padding: 6px 0; }
.chart-view-tabs { padding: 12px 16px 0; }
.chart-measurement-summary { display: flex; flex-wrap: wrap; gap: 8px 24px; padding: 0 16px 16px; }
.chart-measurement-summary small { flex-basis: 100%; color: var(--partner-muted); }
.control-summary-grid > div { min-width: 0; overflow-wrap: anywhere; }
.installation-detail-heading { margin: 20px 0 8px; padding-top: 12px; border-top: 1px solid var(--partner-line); font-size: 17px; }

.member-editor, .relay-rule-editor { display: grid; gap: 14px; min-width: 0; }
.member-editor { margin-top: 20px; }
.relay-rule-card { min-width: 0; border: 1px solid var(--partner-line); border-radius: 8px; padding: 14px; margin: 0; }
.relay-rule-card > .section-card-title { margin-bottom: 12px; }

.partner-readiness .readiness-checks { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:14px; margin:16px 0; }
.partner-readiness .readiness-check { display: block; cursor: default; border:1px solid var(--partner-line); border-radius:8px; padding:14px; min-width:0; overflow-wrap:anywhere; }
.partner-readiness .partner-readiness .readiness-check h3 { font-size:16px; margin:12px 0 8px; }
.partner-readiness .partner-readiness .readiness-check p { margin-bottom:12px; }
@media(max-width:900px) { .partner-readiness .readiness-checks { grid-template-columns:repeat(2,minmax(0,1fr)); } }
@media(max-width:600px) { .partner-readiness .readiness-checks { grid-template-columns:1fr; } }

.readiness-details > summary { cursor: pointer; font-weight: 650; padding: 10px 0; }
.readiness-details[open] > summary { margin-bottom: 12px; }
.partner-readiness .readiness-note { margin-bottom: 0; }
.household-members-content { margin-top: 18px; min-width: 0; }
.household-members-content .linked-record { flex-wrap: wrap; gap: 10px; }
.household-members-content .linked-record > div { min-width: 0; overflow-wrap: anywhere; }
.relay-rule-card > .section-card-title { flex-wrap: wrap; gap: 4px; }

.settings-tabs .mud-list-item.active { background: transparent !important; color: var(--partner-primary) !important; border-radius: 0; box-shadow: inset 0 -3px 0 var(--partner-green); }
.settings-tabs .mud-list-item.active .mud-typography { color: var(--partner-primary) !important; font-weight: 650; }
.partner-readiness { margin-bottom: 16px; }

/* Keep summary actions aligned with their content and with one another. */
.household-section-content > .household-section-card:first-child .control-summary-grid { margin-bottom: 0; }
.control-summary-grid > div > .mud-button-root { align-self: flex-start; margin-top: auto; }
@media (max-width: 600px) {
    .household-section-content.client-detail-content { gap: 12px; }
    .household-section-content .section-card-title { flex-wrap: wrap; gap: 8px; }
}

.member-dialog-fields { display: grid; gap: 16px; padding-top: 8px; }
.inverter-control-status { margin: 16px 0; padding: 14px; border: 1px solid var(--partner-line); border-radius: 8px; background: #fff; }

/* Read-only relay timeline: bounded dialog, wrapping controls, usable chart on phones. */
.relay-timeline-dialog .mud-dialog-content { min-width: 0; }
.relay-timeline-filters { display:flex; align-items:center; flex-wrap:wrap; gap:12px; margin:16px 0; }
.relay-timeline-filters .mud-input-control { flex:0 1 190px; margin:0; }
.relay-timeline-channels { display:flex; flex-wrap:wrap; gap:4px 16px; margin:12px 0; }
.relay-timeline-chart { min-width:0; width:100%; position:relative; isolation:isolate; }
.relay-timeline-tooltip { background:#fff; color:var(--partner-ink); padding:12px; border:1px solid var(--partner-line); border-radius:8px; max-width:350px; max-height:330px; overflow:auto; font-size:13px; }
.relay-timeline-dialog .mud-table-cell { padding:10px 12px; overflow-wrap:anywhere; }
.relay-timeline-dialog .relay-rule-card { margin:16px 0; padding:16px; }
.relay-timeline-dialog .relay-rule-card legend { padding:0 8px; font-weight:600; }
@media(max-width:600px) {
 .relay-timeline-dialog { margin:8px !important; width:calc(100% - 16px) !important; max-height:calc(100% - 16px) !important; }
 .relay-timeline-dialog .mud-dialog-content { padding:12px; }
 .relay-timeline-filters { gap:8px; }
 .relay-timeline-filters .mud-input-control { flex:1 1 100%; order:-1; }
 .relay-timeline-channels { display:grid; grid-template-columns:minmax(0,1fr); }
 .relay-timeline-chart { overflow-x:auto; }
 .relay-timeline-chart > div { min-width:660px; }
}

.relay-timeline-mobile-note { display:none; }
@media(max-width:600px) { .relay-timeline-mobile-note { display:block; } }

/* Keep the control card heading and actions within the same padded content edge. */
.household-control-overview > .section-card-title { flex-wrap:wrap; align-items:flex-start; }
.household-control-overview > .section-card-title > div:first-child { flex:1 1 420px; min-width:0; }
.household-control-overview > .section-card-title > .record-actions { flex:0 1 auto; justify-content:flex-end; max-width:100%; }
.household-control-overview .inverter-control-status .section-card-title { flex-wrap:wrap; }
.household-control-overview h3 { font-size:16px; font-weight:650; line-height:1.4; margin:0 0 10px; }
.household-control-overview .section-card-title .mud-button-root { max-width:100%; white-space:normal; }
@media(max-width:800px) {
 .household-control-overview > .section-card-title > .record-actions { justify-content:flex-start; }
}

/* Calm landing page: portfolio first, work details on demand. */
.portfolio-work.household-section-card { padding:0; }
.portfolio-work-switches { display:flex; flex-wrap:wrap; }
.portfolio-work-switch { display:flex; align-items:center; gap:12px; flex:1 1 340px; min-width:0; padding:10px 12px; border:0; background:transparent; text-align:left; color:var(--partner-ink); font:inherit; cursor:pointer; }
.portfolio-work-switch + .portfolio-work-switch { border-left:1px solid var(--partner-line); }
.portfolio-work-switch:hover, .portfolio-work-switch[aria-expanded="true"] { background:var(--partner-surface-subtle); }
.portfolio-work-switch:focus-visible { outline:3px solid var(--partner-primary); outline-offset:-4px; border-radius:8px; }
.portfolio-work-switch:disabled { cursor:default; }
.portfolio-work-switch > .mud-icon-root { flex-shrink:0; }
.portfolio-work-icon { display:inline-flex; align-items:center; justify-content:center; width:36px; height:36px; flex:0 0 36px; border-radius:8px; }
.portfolio-work-icon > .mud-icon-root { width:24px; height:24px; background:transparent; box-shadow:none; }
.portfolio-work-switch[aria-controls="portfolio-home-work"] .portfolio-work-icon { color:#89372d; background:#f7b8af; }
.portfolio-work-switch[aria-controls="portfolio-installation-work"] .portfolio-work-icon { color:#755715; background:#ffe18a; }
.portfolio-work-label { display:flex; flex-direction:column; flex:1; min-width:0; gap:2px; }
.portfolio-work-label > strong { font-size:15px; font-weight:650; line-height:1.5; }
.portfolio-work-label > span { font-size:13px; color:var(--partner-muted); line-height:1.4; }
.portfolio-work-count { display:inline-block; margin-left:6px; padding:1px 8px; border-radius:6px; background:var(--partner-surface-subtle); color:var(--partner-ink); font-size:13px; font-weight:650; }
.portfolio-work-detail { padding:18px; border-top:1px solid var(--partner-line); }
.portfolio-work-detail > .section-card-title { flex-wrap:wrap; align-items:center; }
.portfolio-work-detail h3 { font-size:16px; font-weight:650; margin:0; }
.portfolio-home-previews { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:8px 20px; }
@media(max-width:800px) {
 .portfolio-work-switch { flex-basis:100%; padding:14px; }
 .portfolio-work-switch + .portfolio-work-switch { border-left:0; border-top:1px solid var(--partner-line); }
 .portfolio-work-detail { padding:14px; }
 .portfolio-home-previews { grid-template-columns:1fr; }
}

/* Homepage offers share the list hierarchy, with compact rows instead of cards. */
.homepage-offer-table { margin:12px 0; border:1px solid var(--partner-line); border-radius:8px; overflow:hidden; }
.homepage-offer-table .mud-table-cell { padding:10px 12px; vertical-align:middle; font-size:14px; line-height:1.4; overflow-wrap:anywhere; }
.homepage-offer-table .mud-table-head .mud-table-cell { background:#fff; color:var(--partner-ink); font-weight:650; }
.homepage-offer-table small { display:block; margin-top:3px; color:var(--partner-muted); font-size:13px; }
.homepage-offer-price { white-space:nowrap; }
.homepage-offer-actions { display:flex; flex-wrap:wrap; gap:6px; }
@media(min-width:600px) { .homepage-offer-table .mud-table-head .mud-table-cell:last-child { width:200px; } .homepage-offer-actions { flex-wrap:nowrap; } .homepage-offer-actions .mud-button-root { flex-shrink:0; } }
@media(max-width:599px) {
 .homepage-offer-table .mud-table-cell { padding:7px 10px; }
 .homepage-offer-table .mud-table-cell::before { padding-right:12px; }
 .homepage-offer-table .homepage-offer-actions { justify-content:flex-end; }
}

.spot-interval-switch { display:flex; flex-wrap:wrap; gap:8px; padding:10px 16px 4px; }
.spot-empty { padding:24px 16px; color:var(--partner-muted); font-size:14px; }

/* Shared partner card hierarchy and diagnostic controls. */
.partner-section-header { flex-wrap:wrap; align-items:flex-start; }
.partner-section-header > div:first-child { min-width:0; flex:1 1 320px; }
.partner-section-header > .record-actions { max-width:100%; }
.household-section-card h3, .relay-timeline-dialog h3 { font-size:16px; line-height:1.4; font-weight:650; margin:16px 0 10px; }
.household-section-card .mud-table-cell { padding:10px 12px; line-height:1.4; overflow-wrap:anywhere; }
.partner-disclosure { margin-top:12px; }
.partner-disclosure > summary { cursor:pointer; padding:10px 0; font-weight:600; color:var(--partner-ink); }
.partner-disclosure > summary:focus-visible { outline:3px solid var(--partner-primary); outline-offset:2px; }
.support-preview { white-space:pre-wrap; overflow-wrap:anywhere; font:inherit; font-size:13px; padding:14px; background:var(--partner-surface-subtle); border:1px solid var(--partner-line); border-radius:8px; }
.telemetry-controls { display:flex; align-items:center; flex-wrap:wrap; gap:12px; margin:12px 0 16px; }
.telemetry-controls > :is(.mud-picker, .mud-input-control) { flex:0 1 220px; min-width:180px; margin:0; }
.telemetry-chart { margin:0; padding:16px; border:1px solid var(--partner-line); border-radius:8px; background:#fff; }
.telemetry-chart figcaption { display:flex; flex-wrap:wrap; gap:4px 16px; justify-content:space-between; font-size:14px; font-weight:600; }
.telemetry-chart figcaption > span { color:var(--partner-muted); font-weight:400; }
.telemetry-day { display:flex; height:28px; gap:1px; margin-top:12px; border:1px solid var(--partner-line); border-radius:5px; overflow:hidden; }
.telemetry-day > span { flex:1 1 0; min-width:0; }
:is(.telemetry-day, .telemetry-legend) .has-data { background:#387650; }
:is(.telemetry-day, .telemetry-legend) .missing-data { background:repeating-linear-gradient(135deg,#b9c3bf 0 3px,#d9dfdc 3px 6px); }
:is(.telemetry-day, .telemetry-legend) .future-data { background:#fff; }
.telemetry-day:focus-visible { outline:3px solid var(--partner-primary); outline-offset:3px; }
.telemetry-axis { position:relative; height:26px; margin-top:5px; font-size:12px; line-height:18px; color:var(--partner-muted); }
.telemetry-axis > span { position:absolute; white-space:nowrap; transform:translateX(-50%); }
.telemetry-axis > span:first-child { transform:none; }
.telemetry-axis > span:last-child { transform:translateX(-100%); }
.telemetry-legend { display:flex; flex-wrap:wrap; gap:8px 20px; list-style:none; padding:0; margin:6px 0 0; font-size:13px; line-height:1.5; color:var(--partner-muted); }
.telemetry-legend li { display:flex; align-items:center; gap:7px; }
.telemetry-legend li > span { flex:none; width:12px; height:12px; border:1px solid var(--partner-line); border-radius:3px; }
.communication-timeline .telemetry-gap-details, .communication-timeline .telemetry-deliveries { margin-top:20px; }
.communication-timeline :is(.telemetry-gap-details, .telemetry-deliveries) > h3 { display:flex; align-items:center; gap:8px; margin:0 0 10px; }
.communication-timeline p { margin:8px 0 0; }
.telemetry-count { display:inline-flex; padding:1px 7px; border-radius:5px; background:var(--partner-surface-subtle); font-size:13px; }
.telemetry-deliveries { padding-top:16px; border-top:1px solid var(--partner-line); }
@media(max-width:599px) { .telemetry-chart { padding:12px; } .telemetry-controls { gap:8px; } .telemetry-controls > :is(.mud-picker, .mud-input-control) { flex:1 1 170px; min-width:0; } .telemetry-legend { gap:6px 14px; } }
.connected-device small { display:block; }
@media(max-width:600px){ .partner-section-header > div:first-child { flex-basis:100%; } .household-section-card .mud-table-cell { padding:8px 10px; } }
