
.portal-report-layout{display:flex;flex-direction:column;gap:18px}.portal-report-layout>.section-intro{margin:0}.portal-report-layout .report-controls{margin:0;padding:18px 22px;gap:14px}.portal-report-layout .report-controls label{min-width:190px}.portal-report-layout .report-controls [data-report-type]{min-width:230px}.portal-report-layout .report-controls .button{min-height:44px}.portal-report-layout .report-period{margin:0;color:#6e8076}.portal-report-layout .kpi-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;margin:0;width:100%}.portal-report-layout .kpi{background:white;border:1px solid #dae6dc;border-radius:16px;padding:22px;min-height:112px;display:flex;flex-direction:column;gap:13px}.portal-report-layout .kpi b{font-size:1.8rem;color:#10543f;font-variant-numeric:tabular-nums}.portal-report-layout .kpi:nth-child(3){background:#eaf5ee;border-color:#cce5d5}.portal-report-layout [data-report-table]{margin:0;padding:0;overflow:auto}.portal-report-layout table{width:100%;border-collapse:collapse}.portal-report-layout th,.portal-report-layout td{padding:18px 24px}.portal-report-layout .report-explanation{margin:0;padding:14px 18px;background:#eef3ed;border-radius:12px;font-size:.82rem;line-height:1.8}.device-table-scroll{overflow:auto;margin-top:20px}.device-report-table{width:100%;border-collapse:collapse;min-width:1050px;text-align:right}.device-report-table th{background:#eef4ec;color:#64796d;font-size:.82rem;white-space:nowrap}.device-report-table th,.device-report-table td{padding:16px;border-bottom:1px solid #e6ede7;vertical-align:middle}.device-report-table td:first-child{font-weight:700}.device-report-table .device-actions{display:flex;flex-wrap:wrap;gap:6px;min-width:200px}.device-report-table .button{width:auto;min-height:36px;padding:7px 11px;font-size:.78rem}.device-add-forms{margin-top:20px}.device-add-forms form{align-self:start}.device-report-table .compact-form{min-width:260px}.portal-report-layout [hidden]{display:none!important}@media(max-width:800px){.portal-report-layout .kpi-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.portal-report-layout .report-controls label{min-width:0;flex:1 1 180px}}@media(max-width:480px){.portal-report-layout .kpi-grid{grid-template-columns:1fr}.portal-report-layout th,.portal-report-layout td{padding:14px}}

.device-report-table{min-width:900px}.device-report-table td[dir=ltr],.device-report-table td:nth-last-child(2){white-space:nowrap;font-variant-numeric:tabular-nums}.device-report-table .device-row-menu{min-width:125px}.device-row-menu>summary{list-style:none;cursor:pointer;white-space:nowrap}.device-row-menu>summary::-webkit-details-marker{display:none}.device-report-table .device-row-menu:not([open]) .device-actions{display:none}.device-report-table .device-row-menu[open] .device-actions{display:grid;margin-top:10px;min-width:180px}.device-report-table td{height:72px}

.portal-report-layout .report-controls{display:flex;flex-wrap:wrap;align-items:end;background:#fff;padding:16px;gap:12px}
.portal-report-layout .report-controls label{min-width:135px;font-size:12px;margin:0;flex:1}
.portal-report-layout .report-controls input,.portal-report-layout .report-controls select{font-size:13px;min-height:40px;padding:8px 10px;background:#fff}
.portal-report-layout .report-controls .button,.portal-report-layout .report-export-actions .button{font-size:12px;padding:9px 14px;min-height:39px;white-space:nowrap}
.portal-report-layout .kpi-grid{grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:10px}.portal-report-layout .kpi{min-height:0;padding:14px;border-radius:12px;gap:6px;background:white!important}.portal-report-layout .kpi span{font-size:12px}.portal-report-layout .kpi b{font-size:23px}
.report-result-heading{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:12px}.report-result-heading h3{font-size:16px;margin:0}.report-export-actions{display:flex;gap:8px}
.portal-report-layout th,.portal-report-layout td{padding:12px 16px;font-size:13px}.portal-report-layout .report-explanation{background:#fff;border:1px solid #e0e8e2;font-size:12px;padding:12px}
@media print{body.report-print .report-export-actions{display:none!important}body.report-print .portal-report-layout{gap:12px}body.report-print .portal-report-layout .dash-card{box-shadow:none;border:0}body.report-print .portal-report-layout table{font-size:11px}body.report-print .portal-report-layout thead{display:table-header-group}}

/* Explicit button styling for report controls rendered outside forms. */
.portal-report-layout .report-controls .button.primary{appearance:none;border:1px solid #0b5138;background:#0b5138;color:#fff;font-family:inherit;box-shadow:none;cursor:pointer}
.portal-report-layout .report-controls .button.primary:hover{background:#126843;border-color:#126843;transform:none}
.portal-report-layout .report-export-actions .button.secondary{appearance:none;display:inline-flex;align-items:center;justify-content:center;min-height:38px;padding:8px 14px;border:1px solid #bad3c4;border-radius:9px;background:#fff;color:#0b5138;font-family:inherit;font-size:12px;font-weight:700;line-height:1.5;box-shadow:none;cursor:pointer}
.portal-report-layout .report-export-actions .button.secondary:hover{background:#edf6ef;border-color:#3e8b63;transform:none}
.portal-report-layout .report-controls .button:focus-visible,.portal-report-layout .report-export-actions .button:focus-visible{outline:3px solid #92c7a9;outline-offset:2px}
.portal-report-layout .report-export-actions .button:disabled{background:#fff;color:#537b65;border-color:#c9ddcf;opacity:.55;cursor:not-allowed;transform:none}
