Spaces:
Running
Running
| /* ============================== | |
| Potential Analysis Page Styles | |
| ============================== */ | |
| .pa-page { | |
| padding: 12px 16px; | |
| width: 100%; | |
| } | |
| .pa-header-row { | |
| display: flex; | |
| align-items: center; | |
| justify-content: space-between; | |
| margin-bottom: 12px; | |
| } | |
| .pa-header-actions { | |
| display: flex; | |
| gap: 12px; | |
| } | |
| .pa-title { | |
| font-size: 1.5rem; | |
| margin: 0; | |
| } | |
| .pa-btn-save { | |
| padding: 8px 16px; | |
| background: #27ae60; | |
| color: #fff; | |
| border: none; | |
| border-radius: 6px; | |
| font-size: 0.8rem; | |
| font-weight: 600; | |
| cursor: pointer; | |
| transition: all 0.2s; | |
| } | |
| .pa-btn-save:hover { background: #219150; } | |
| .pa-btn-saving { background: #16a085; } | |
| .pa-btn-report { | |
| padding: 8px 18px; | |
| background: var(--surface-active); | |
| color: var(--text-main) ; | |
| border: 1px solid var(--border-strong); | |
| border-radius: 6px; | |
| font-size: 0.85rem; | |
| font-weight: 700; | |
| cursor: pointer; | |
| transition: all 0.2s ease; | |
| box-shadow: var(--shadow-sm); | |
| } | |
| .pa-btn-report:hover { | |
| background: var(--surface-hover); | |
| border-color: var(--primary); | |
| transform: translateY(-1px); | |
| } | |
| .pa-btn-report:active { | |
| transform: translateY(0); | |
| } | |
| .pa-btn-report:disabled { | |
| background: var(--border); | |
| color: var(--text-muted) ; | |
| cursor: not-allowed; | |
| transform: none; | |
| box-shadow: none; | |
| } | |
| /* Toggles for panels */ | |
| .pa-panel-toggle:hover { | |
| color: #3498db; | |
| } | |
| .pa-panel-closed { | |
| max-height: 48px; | |
| overflow: hidden; | |
| transition: max-height 0.3s ease; | |
| } | |
| /* ---------- Top Row ---------- */ | |
| .pa-top-row { | |
| display: flex; | |
| gap: 16px; | |
| align-items: flex-start; | |
| } | |
| .pa-col-streams { flex: 1.0; min-width: 300px; } | |
| .pa-col-demands { flex: 0.5; min-width: 250px; } | |
| .pa-col-map { flex: 1.5; min-width: 0; } | |
| /* ---------- Panels ---------- */ | |
| .pa-panel { | |
| background: var(--surface); | |
| border: 1px solid var(--border); | |
| border-radius: 6px; | |
| padding: 12px; | |
| max-height: 420px; | |
| overflow-y: auto; | |
| } | |
| .pa-panel-title { | |
| font-size: 0.85rem; | |
| font-weight: 700; | |
| margin: 0 0 8px; | |
| } | |
| /* ---------- Stream list ---------- */ | |
| .pa-stream-list { | |
| display: flex; | |
| flex-direction: column; | |
| gap: 6px; | |
| } | |
| .pa-stream-group-title { | |
| font-weight: 600; | |
| font-size: 0.8rem; | |
| margin-top: 4px; | |
| } | |
| .pa-stream-item { | |
| display: flex; | |
| align-items: center; | |
| gap: 6px; | |
| font-size: 0.75rem; | |
| cursor: pointer; | |
| padding: 2px 0; | |
| } | |
| .pa-stream-item input[type="checkbox"] { | |
| margin: 0; | |
| flex-shrink: 0; | |
| } | |
| .pa-stream-name { | |
| font-weight: 500; | |
| white-space: nowrap; | |
| } | |
| .pa-stream-info { | |
| color: var(--text-muted); | |
| font-size: 0.7rem; | |
| overflow: hidden; | |
| text-overflow: ellipsis; | |
| white-space: nowrap; | |
| } | |
| /* ---------- Energy Demands ---------- */ | |
| .pa-demand-card { | |
| margin-bottom: 4px; | |
| } | |
| .pa-demand-header { | |
| display: flex; | |
| justify-content: space-between; | |
| align-items: center; | |
| font-size: 0.8rem; | |
| } | |
| .pa-input-label { | |
| display: flex; | |
| align-items: center; | |
| gap: 6px; | |
| font-size: 0.75rem; | |
| margin: 4px 0; | |
| } | |
| .pa-number-input { | |
| width: 80px; | |
| padding: 3px 6px; | |
| border: 1px solid var(--border); | |
| background: var(--bg); | |
| color: var(--text-main); | |
| border-radius: 4px; | |
| font-size: 0.75rem; | |
| } | |
| .pa-multi-select { | |
| display: flex; | |
| flex-direction: column; | |
| gap: 2px; | |
| padding: 4px 0; | |
| } | |
| .pa-multi-option { | |
| display: flex; | |
| align-items: center; | |
| gap: 4px; | |
| font-size: 0.72rem; | |
| cursor: pointer; | |
| } | |
| .pa-muted { color: var(--text-muted); font-size: 0.72rem; } | |
| .pa-details { | |
| font-size: 0.75rem; | |
| } | |
| .pa-details summary { | |
| cursor: pointer; | |
| font-weight: 500; | |
| padding: 2px 0; | |
| } | |
| /* ---------- Buttons ---------- */ | |
| .pa-btn { | |
| padding: 4px 12px; | |
| border: 1px solid var(--border); | |
| border-radius: 4px; | |
| background: var(--surface-active); | |
| color: var(--text-main); | |
| cursor: pointer; | |
| font-size: 0.75rem; | |
| } | |
| .pa-btn:hover { background: var(--surface-hover); } | |
| .pa-btn-icon { | |
| background: none; | |
| border: none; | |
| cursor: pointer; | |
| font-size: 0.85rem; | |
| padding: 0; | |
| } | |
| .pa-btn-text { | |
| background: none; | |
| border: none; | |
| cursor: pointer; | |
| font-size: 0.75rem; | |
| color: var(--text-link, #1976d2); | |
| padding: 4px 0; | |
| text-align: left; | |
| } | |
| /* ---------- Map ---------- */ | |
| .pa-map-img { | |
| width: 100%; | |
| height: auto; | |
| border: 1px solid var(--border); | |
| border-radius: 4px; | |
| } | |
| /* ---------- Divider ---------- */ | |
| .pa-divider { | |
| border: none; | |
| border-top: 1px solid var(--border); | |
| margin: 16px 0; | |
| } | |
| .pa-hr { | |
| border: none; | |
| border-top: 1px solid var(--border); | |
| margin: 6px 0; | |
| } | |
| /* ---------- Info / warnings ---------- */ | |
| .pa-info-box { | |
| background: var(--primary-light); | |
| color: var(--text-main); | |
| padding: 12px 16px; | |
| border-radius: 6px; | |
| font-size: 0.8rem; | |
| line-height: 1.5; | |
| } | |
| .pa-loading { | |
| font-size: 0.8rem; | |
| color: var(--text-muted, #888); | |
| padding: 8px 0; | |
| } | |
| .pa-error { | |
| background: #ffebee; | |
| color: #c62828; | |
| padding: 8px 12px; | |
| border-radius: 4px; | |
| font-size: 0.8rem; | |
| } | |
| .pa-warning { | |
| background: #fff3e0; | |
| color: #e65100; | |
| padding: 8px 12px; | |
| border-radius: 4px; | |
| font-size: 0.8rem; | |
| } | |
| .pa-data-status { | |
| margin-top: 8px; | |
| } | |
| .pa-missing { | |
| color: #e65100; | |
| font-size: 0.75rem; | |
| } | |
| .pa-complete { | |
| color: #2e7d32; | |
| font-size: 0.75rem; | |
| } | |
| /* ---------- Controls row ---------- */ | |
| .pa-controls-row { | |
| display: flex; | |
| align-items: center; | |
| gap: 24px; | |
| margin-bottom: 12px; | |
| flex-wrap: wrap; | |
| } | |
| .pa-toggle-label { | |
| display: flex; | |
| align-items: center; | |
| gap: 6px; | |
| font-size: 0.8rem; | |
| cursor: pointer; | |
| } | |
| .pa-tmin-label { | |
| font-weight: 500; | |
| } | |
| .pa-tmin-input { | |
| width: 60px; | |
| } | |
| /* ---------- Metrics ---------- */ | |
| .pa-metrics-row { | |
| display: flex; | |
| gap: 16px; | |
| margin: 12px 0; | |
| flex-wrap: wrap; | |
| } | |
| .pa-metric-card { | |
| flex: 1; | |
| min-width: 140px; | |
| background: var(--surface); | |
| border: 1px solid var(--border); | |
| border-radius: 6px; | |
| padding: 10px 14px; | |
| text-align: center; | |
| } | |
| .pa-metric-hot, .pa-metric-cold, .pa-metric-pinch, .pa-metric-recovery { | |
| background: var(--surface) ; | |
| border: 1px solid var(--border) ; | |
| } | |
| .pa-metric-label { | |
| font-size: 0.65rem; | |
| color: #777; | |
| text-transform: uppercase; | |
| letter-spacing: 0.04em; | |
| margin-bottom: 2px; | |
| } | |
| .pa-metric-value { | |
| font-size: 1.1rem; | |
| font-weight: bold; | |
| color: var(--text-main); | |
| } | |
| /* ---------- Charts ---------- */ | |
| .pa-charts-row { | |
| display: flex; | |
| gap: 16px; | |
| } | |
| .pa-charts-row > .pa-chart { | |
| flex: 1; | |
| min-width: 0; | |
| } | |
| .pa-chart { | |
| width: 100%; | |
| } | |
| /* ---------- HPI Layout ---------- */ | |
| .pa-hpi-layout { | |
| display: flex; | |
| gap: 16px; | |
| align-items: flex-start; | |
| } | |
| .pa-hpi-table-col { | |
| flex: 0 0 35%; | |
| max-width: 35%; | |
| } | |
| .pa-hpi-chart-col { | |
| flex: 1; | |
| min-width: 0; | |
| } | |
| .pa-hp-select { | |
| margin-bottom: 8px; | |
| } | |
| .pa-hp-select > label { | |
| font-size: 0.8rem; | |
| font-weight: 500; | |
| display: block; | |
| margin-bottom: 4px; | |
| } | |
| /* ---------- Tables ---------- */ | |
| .pa-table { | |
| width: 100%; | |
| border-collapse: collapse; | |
| font-size: 0.75rem; | |
| margin: 8px 0; | |
| } | |
| .pa-table th, .pa-table td { | |
| border: 1px solid var(--border); | |
| padding: 6px 8px; | |
| text-align: left; | |
| } | |
| .pa-table th { | |
| background: var(--primary); | |
| color: var(--text-on-primary); | |
| font-weight: 600; | |
| } | |
| .pa-table tr:nth-child(even) { background: var(--bg); } | |
| .pa-table tr:hover { background: var(--surface-hover); } | |
| .pa-hp-table-wrap { margin: 8px 0; } | |
| /* Section labels above each HP group */ | |
| .pa-hp-section-label { | |
| font-size: 0.75rem; | |
| font-weight: 700; | |
| margin: 8px 0 4px; | |
| color: var(--text-muted); | |
| text-transform: uppercase; | |
| letter-spacing: 0.04em; | |
| } | |
| /* Excluded HP section */ | |
| .pa-excluded-hp { margin-top: 12px; } | |
| .pa-excluded-list { | |
| display: flex; | |
| flex-direction: column; | |
| gap: 6px; | |
| padding: 0; | |
| } | |
| /* Each excluded HP is a warning card */ | |
| .pa-excluded-card { | |
| border: 1px solid var(--warning); | |
| border-left: 4px solid var(--brand-red); | |
| border-radius: 5px; | |
| padding: 8px 10px; | |
| background: var(--surface); | |
| font-size: 0.75rem; | |
| } | |
| .dark .pa-excluded-card { | |
| background: #2a2010; | |
| border-color: #7a5010; | |
| border-left-color: #e67e22; | |
| } | |
| .pa-excluded-card-header { | |
| display: flex; | |
| align-items: center; | |
| gap: 8px; | |
| margin-bottom: 4px; | |
| } | |
| .pa-excluded-name { | |
| font-weight: 700; | |
| color: var(--text-main); | |
| } | |
| .pa-excluded-badge { | |
| font-size: 0.65rem; | |
| font-weight: 600; | |
| background: #e67e22; | |
| color: #fff; | |
| border-radius: 3px; | |
| padding: 1px 6px; | |
| text-transform: uppercase; | |
| letter-spacing: 0.03em; | |
| } | |
| .pa-excluded-reason { | |
| color: var(--text-muted); | |
| line-height: 1.5; | |
| } | |
| .dark .pa-excluded-reason { color: #b0a090; } | |
| /* ---------- Notes ---------- */ | |
| .pa-notes-textarea { | |
| width: 100%; | |
| padding: 8px 10px; | |
| border: 1px solid var(--border); | |
| background: var(--surface); | |
| color: var(--text-main); | |
| border-radius: 4px; | |
| font-size: 0.8rem; | |
| font-family: inherit; | |
| resize: vertical; | |
| } | |
| /* ---------- More info ---------- */ | |
| .pa-more-info { | |
| margin-top: 12px; | |
| } | |
| .pa-more-info summary { | |
| font-size: 0.85rem; | |
| font-weight: 600; | |
| cursor: pointer; | |
| padding: 6px 0; | |
| } | |
| /* ---------- Section ---------- */ | |
| .pa-section { | |
| margin: 12px 0; | |
| } | |
| .pa-section h3 { | |
| font-size: 0.9rem; | |
| margin-bottom: 8px; | |
| } | |
| /* ---------- Dark mode overrides ---------- */ | |
| .dark .pa-title, .dark .pa-panel-title, .dark .pa-section h3 { | |
| color: #ffffff; | |
| } | |
| .dark .pa-metric-label { | |
| color: #ffffff; | |
| opacity: 0.9; | |
| } | |
| .dark .pa-hp-section-label { | |
| color: #ffffff; | |
| font-weight: 800; | |
| } | |
| .dark .pa-stream-info, .dark .pa-muted, .dark .pa-excluded-reason { | |
| color: #cbd5e1; /* Light slate/gray-white */ | |
| } | |
| .dark .pa-metric-hot { border-color: #ef4444 ; background: rgba(239, 68, 68, 0.15) ; } | |
| .dark .pa-metric-cold { border-color: #3b82f6 ; background: rgba(59, 130, 246, 0.15) ; } | |
| .dark .pa-metric-pinch { border-color: #a855f7 ; background: rgba(168, 85, 247, 0.15) ; } | |
| .dark .pa-metric-recovery { border-color: #22c55e ; background: rgba(34, 197, 94, 0.15) ; } | |