Spaces:
Sleeping
Sleeping
| :root { | |
| --bg: #f4f6f3; | |
| --panel: #ffffff; | |
| --line: #d8ddd7; | |
| --text: #1f2523; | |
| --muted: #65706b; | |
| --strong: #0f1614; | |
| --green: #138a51; | |
| --red: #c33b32; | |
| --amber: #af6a13; | |
| --blue: #2f6f9f; | |
| --teal: #147b7e; | |
| --purple: #7654a1; | |
| --shadow: 0 8px 18px rgba(27, 34, 31, 0.08); | |
| } | |
| * { | |
| box-sizing: border-box; | |
| } | |
| html { | |
| min-width: 320px; | |
| } | |
| body { | |
| margin: 0; | |
| background: var(--bg); | |
| color: var(--text); | |
| font-family: | |
| Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif; | |
| letter-spacing: 0; | |
| } | |
| button, | |
| input, | |
| select { | |
| font: inherit; | |
| } | |
| .app-shell { | |
| width: min(1440px, calc(100vw - 28px)); | |
| margin: 0 auto; | |
| padding: 18px 0 28px; | |
| } | |
| .topbar { | |
| position: sticky; | |
| top: 0; | |
| z-index: 10; | |
| display: flex; | |
| align-items: center; | |
| justify-content: space-between; | |
| gap: 18px; | |
| padding: 14px 0 18px; | |
| background: rgba(244, 246, 243, 0.96); | |
| backdrop-filter: blur(8px); | |
| border-bottom: 1px solid var(--line); | |
| } | |
| h1, | |
| h2, | |
| p { | |
| margin: 0; | |
| } | |
| h1 { | |
| color: var(--strong); | |
| font-size: clamp(24px, 2.4vw, 34px); | |
| font-weight: 760; | |
| line-height: 1.1; | |
| } | |
| h2 { | |
| color: var(--strong); | |
| font-size: 15px; | |
| font-weight: 720; | |
| line-height: 1.3; | |
| } | |
| #statusLine { | |
| margin-top: 6px; | |
| color: var(--muted); | |
| font-size: 14px; | |
| } | |
| .top-actions { | |
| display: flex; | |
| align-items: center; | |
| justify-content: flex-end; | |
| gap: 12px; | |
| min-width: 260px; | |
| } | |
| button { | |
| min-width: 96px; | |
| border: 1px solid #1f2523; | |
| border-radius: 7px; | |
| background: #1f2523; | |
| color: #fff; | |
| padding: 9px 14px; | |
| cursor: pointer; | |
| } | |
| button:disabled { | |
| cursor: wait; | |
| opacity: 0.68; | |
| } | |
| .muted { | |
| color: var(--muted); | |
| font-size: 12px; | |
| line-height: 1.4; | |
| } | |
| .metric-grid { | |
| display: grid; | |
| grid-template-columns: repeat(4, minmax(0, 1fr)); | |
| gap: 12px; | |
| margin-top: 16px; | |
| } | |
| .metric-panel, | |
| .panel { | |
| border: 1px solid var(--line); | |
| border-radius: 8px; | |
| background: var(--panel); | |
| box-shadow: var(--shadow); | |
| } | |
| .metric-panel { | |
| min-height: 132px; | |
| padding: 16px; | |
| } | |
| .metric-title { | |
| display: flex; | |
| align-items: center; | |
| justify-content: space-between; | |
| gap: 10px; | |
| color: var(--muted); | |
| font-size: 13px; | |
| } | |
| .metric-value { | |
| margin-top: 12px; | |
| color: var(--strong); | |
| font-size: 30px; | |
| font-weight: 780; | |
| line-height: 1; | |
| } | |
| .metric-meta { | |
| display: grid; | |
| grid-template-columns: repeat(3, minmax(0, 1fr)); | |
| gap: 8px; | |
| margin-top: 14px; | |
| } | |
| .metric-meta span { | |
| display: block; | |
| overflow: hidden; | |
| white-space: nowrap; | |
| text-overflow: ellipsis; | |
| } | |
| .metric-meta b { | |
| display: block; | |
| margin-top: 2px; | |
| color: var(--strong); | |
| font-size: 14px; | |
| } | |
| .change { | |
| font-variant-numeric: tabular-nums; | |
| } | |
| .pos { | |
| color: var(--green); | |
| } | |
| .neg { | |
| color: var(--red); | |
| } | |
| .flat { | |
| color: var(--muted); | |
| } | |
| .dashboard-grid { | |
| display: grid; | |
| grid-template-columns: repeat(12, minmax(0, 1fr)); | |
| gap: 12px; | |
| margin-top: 12px; | |
| } | |
| .panel { | |
| min-height: 260px; | |
| padding: 14px; | |
| overflow: hidden; | |
| } | |
| .panel-head { | |
| display: flex; | |
| align-items: baseline; | |
| justify-content: space-between; | |
| gap: 12px; | |
| min-height: 22px; | |
| margin-bottom: 10px; | |
| } | |
| .span-4 { | |
| grid-column: span 4; | |
| } | |
| .span-5 { | |
| grid-column: span 5; | |
| } | |
| .span-6 { | |
| grid-column: span 6; | |
| } | |
| .span-7 { | |
| grid-column: span 7; | |
| } | |
| .span-8 { | |
| grid-column: span 8; | |
| } | |
| .span-12 { | |
| grid-column: span 12; | |
| } | |
| .chart-canvas { | |
| width: 100%; | |
| height: 250px; | |
| display: block; | |
| } | |
| .chart-canvas.tall { | |
| height: 300px; | |
| } | |
| .chart-canvas.xlarge { | |
| height: 390px; | |
| } | |
| .mag7-main-panel { | |
| min-height: 460px; | |
| } | |
| .chart-stats { | |
| display: grid; | |
| grid-template-columns: repeat(4, minmax(0, 1fr)); | |
| gap: 8px; | |
| margin-bottom: 8px; | |
| } | |
| .chart-stat { | |
| min-height: 54px; | |
| border: 1px solid #e5e9e5; | |
| border-radius: 7px; | |
| padding: 8px 10px; | |
| background: #fbfcfb; | |
| } | |
| .chart-stat span { | |
| display: block; | |
| color: var(--muted); | |
| font-size: 11px; | |
| line-height: 1.2; | |
| } | |
| .chart-stat strong { | |
| display: block; | |
| margin-top: 4px; | |
| color: var(--strong); | |
| font-size: 16px; | |
| line-height: 1.2; | |
| font-variant-numeric: tabular-nums; | |
| } | |
| .chart-stats.compact { | |
| grid-template-columns: repeat(3, minmax(0, 1fr)); | |
| } | |
| .heatmap-grid { | |
| display: grid; | |
| grid-template-columns: repeat(3, minmax(0, 1fr)); | |
| gap: 8px; | |
| } | |
| .heatmap-cell { | |
| min-height: 76px; | |
| border: 1px solid rgba(31, 37, 35, 0.08); | |
| border-radius: 7px; | |
| padding: 10px; | |
| color: #101613; | |
| overflow: hidden; | |
| } | |
| .heatmap-cell strong, | |
| .heatmap-cell span { | |
| display: block; | |
| } | |
| .heatmap-cell strong { | |
| font-size: 14px; | |
| line-height: 1.2; | |
| } | |
| .heatmap-cell .heat-change { | |
| margin-top: 8px; | |
| font-size: 18px; | |
| font-weight: 780; | |
| font-variant-numeric: tabular-nums; | |
| } | |
| .heatmap-cell .heat-meta { | |
| margin-top: 4px; | |
| color: rgba(16, 22, 19, 0.68); | |
| font-size: 11px; | |
| } | |
| .participation-meter { | |
| display: grid; | |
| gap: 14px; | |
| } | |
| .participation-card { | |
| border: 1px solid #e5e9e5; | |
| border-radius: 8px; | |
| padding: 12px; | |
| background: #fbfcfb; | |
| } | |
| .participation-head { | |
| display: flex; | |
| align-items: baseline; | |
| justify-content: space-between; | |
| gap: 12px; | |
| margin-bottom: 10px; | |
| } | |
| .participation-head strong { | |
| color: var(--strong); | |
| font-size: 16px; | |
| } | |
| .participation-score { | |
| color: var(--strong); | |
| font-size: 22px; | |
| font-weight: 780; | |
| font-variant-numeric: tabular-nums; | |
| } | |
| .participation-bar { | |
| display: flex; | |
| width: 100%; | |
| height: 18px; | |
| overflow: hidden; | |
| border-radius: 999px; | |
| background: #e7ebe7; | |
| } | |
| .participation-bar span { | |
| min-width: 0; | |
| } | |
| .participation-bar .advance { | |
| background: var(--green); | |
| } | |
| .participation-bar .decline { | |
| background: var(--red); | |
| } | |
| .participation-bar .unchanged { | |
| background: #9aa39e; | |
| } | |
| .participation-meta { | |
| display: grid; | |
| grid-template-columns: repeat(4, minmax(0, 1fr)); | |
| gap: 8px; | |
| margin-top: 10px; | |
| color: var(--muted); | |
| font-size: 12px; | |
| } | |
| .participation-meta b { | |
| display: block; | |
| margin-top: 2px; | |
| color: var(--strong); | |
| font-size: 13px; | |
| } | |
| .participation-state { | |
| display: inline-flex; | |
| align-items: center; | |
| min-height: 22px; | |
| border-radius: 999px; | |
| padding: 3px 9px; | |
| background: #edf4ef; | |
| color: var(--green); | |
| font-size: 12px; | |
| font-weight: 720; | |
| } | |
| .participation-state.mixed { | |
| background: #fff4df; | |
| color: var(--amber); | |
| } | |
| .participation-state.weak { | |
| background: #f8e8e6; | |
| color: var(--red); | |
| } | |
| .table-wrap { | |
| overflow: auto; | |
| max-height: 320px; | |
| } | |
| table { | |
| width: 100%; | |
| border-collapse: collapse; | |
| font-size: 13px; | |
| } | |
| th, | |
| td { | |
| padding: 7px 6px; | |
| border-bottom: 1px solid #ebeeeb; | |
| text-align: right; | |
| white-space: nowrap; | |
| } | |
| th:first-child, | |
| td:first-child { | |
| text-align: left; | |
| } | |
| th { | |
| position: sticky; | |
| top: 0; | |
| z-index: 1; | |
| background: var(--panel); | |
| color: var(--muted); | |
| font-size: 11px; | |
| font-weight: 720; | |
| } | |
| .range-list { | |
| display: grid; | |
| gap: 7px; | |
| max-height: 316px; | |
| overflow: auto; | |
| padding-right: 2px; | |
| } | |
| .range-row { | |
| display: grid; | |
| grid-template-columns: 58px minmax(100px, 1fr) 54px; | |
| align-items: center; | |
| gap: 10px; | |
| min-height: 20px; | |
| font-size: 12px; | |
| } | |
| .range-track { | |
| position: relative; | |
| height: 8px; | |
| border-radius: 999px; | |
| background: #e7ebe7; | |
| overflow: hidden; | |
| } | |
| .range-fill { | |
| position: absolute; | |
| inset: 0 auto 0 0; | |
| width: 0; | |
| border-radius: 999px; | |
| background: var(--blue); | |
| } | |
| .ticker { | |
| color: var(--strong); | |
| font-weight: 730; | |
| } | |
| .mover-grid { | |
| display: grid; | |
| grid-template-columns: repeat(2, minmax(0, 1fr)); | |
| gap: 12px; | |
| } | |
| .mover-list h3 { | |
| margin: 0 0 6px; | |
| color: var(--muted); | |
| font-size: 12px; | |
| } | |
| .mini-row { | |
| display: flex; | |
| align-items: center; | |
| justify-content: space-between; | |
| gap: 8px; | |
| min-height: 24px; | |
| border-bottom: 1px solid #ebeeeb; | |
| font-size: 12px; | |
| } | |
| .source-grid { | |
| display: grid; | |
| grid-template-columns: repeat(2, minmax(0, 1fr)); | |
| gap: 12px; | |
| } | |
| .source-grid > div { | |
| min-height: 74px; | |
| border: 1px solid #e1e5e1; | |
| border-radius: 8px; | |
| padding: 12px; | |
| background: #fbfcfb; | |
| } | |
| .source-grid strong { | |
| display: block; | |
| margin-top: 6px; | |
| color: var(--strong); | |
| font-size: 14px; | |
| line-height: 1.35; | |
| } | |
| .field-label { | |
| display: block; | |
| color: var(--muted); | |
| font-size: 12px; | |
| } | |
| .mode-pill { | |
| display: inline-flex; | |
| align-items: center; | |
| min-height: 22px; | |
| border-radius: 999px; | |
| padding: 3px 9px; | |
| background: #edf4ef; | |
| color: var(--green); | |
| font-size: 12px; | |
| font-weight: 720; | |
| } | |
| .mode-pill.seed { | |
| background: #fff4df; | |
| color: var(--amber); | |
| } | |
| .empty-state { | |
| display: grid; | |
| min-height: 120px; | |
| place-items: center; | |
| color: var(--muted); | |
| font-size: 13px; | |
| } | |
| @media (max-width: 1180px) { | |
| .metric-grid { | |
| grid-template-columns: repeat(2, minmax(0, 1fr)); | |
| } | |
| .span-4, | |
| .span-5, | |
| .span-6, | |
| .span-7, | |
| .span-8 { | |
| grid-column: span 6; | |
| } | |
| .span-12 { | |
| grid-column: span 12; | |
| } | |
| } | |
| @media (max-width: 760px) { | |
| .app-shell { | |
| width: min(100vw - 20px, 720px); | |
| padding-top: 8px; | |
| } | |
| .topbar { | |
| align-items: flex-start; | |
| flex-direction: column; | |
| } | |
| .top-actions { | |
| width: 100%; | |
| justify-content: space-between; | |
| min-width: 0; | |
| } | |
| .metric-grid, | |
| .dashboard-grid { | |
| grid-template-columns: 1fr; | |
| } | |
| .span-4, | |
| .span-5, | |
| .span-6, | |
| .span-7, | |
| .span-8, | |
| .span-12 { | |
| grid-column: span 1; | |
| } | |
| .metric-meta, | |
| .source-grid, | |
| .chart-stats, | |
| .chart-stats.compact, | |
| .heatmap-grid, | |
| .participation-meta { | |
| grid-template-columns: 1fr; | |
| } | |
| .mover-grid { | |
| grid-template-columns: 1fr; | |
| } | |
| .chart-canvas, | |
| .chart-canvas.tall, | |
| .chart-canvas.xlarge { | |
| height: 240px; | |
| } | |
| .mag7-main-panel { | |
| min-height: auto; | |
| } | |
| } | |