CoolFace
Apppublic

ani-sdhu/essp

sourceHugging Faceupdated 2mo agoView on Hugging Face
0likes
style.css628 linesDownload Raw Back to root
1@import url('https://fonts.googleapis.com/css2?family=Archivo:wght@500;600;700;800&family=Inter:wght@400;500;600;700&family=JetBrains+Mono:wght@400;500&display=swap');2 3/* =============================================================4   Energy and Economic Data Explorer — analyst workbench theme5   Paper-white workspace, dark branded header, UGA Bulldog Red.6   ============================================================= */7 8:root {9  --red: #BA0C2F;10  --red-deep: #93001F;11  --red-tint: #F9E9ED;12  --red-line: #E4B7C1;13  --ink: #191C1F;14  --slate: #5C6570;15  --slate-light: #8A929C;16  --paper: #F4F2EC;17  --surface: #FFFFFF;18  --surface-2: #FBFAF7;19  --surface-3: #F1EFE8;20  --line: #E3E0D8;21  --line-strong: #CFCBC0;22  --header-bg: #101214;23  --focus-ring: 0 0 0 3px rgba(186, 12, 47, 0.16);24  --shadow-card: 0 1px 2px rgba(20, 20, 20, 0.04), 0 8px 28px rgba(20, 20, 20, 0.06);25  --shadow-soft: 0 1px 2px rgba(20, 20, 20, 0.04), 0 2px 10px rgba(20, 20, 20, 0.05);26  --font-ui: 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;27  --font-display: 'Archivo', 'Inter', sans-serif;28  --font-mono: 'JetBrains Mono', ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;29}30 31* { box-sizing: border-box; }32html, body, #react-entry-point, #_dash-app-content {33  margin: 0;34  padding: 0;35  min-height: 100%;36  background: var(--paper);37  color: var(--ink);38  font-family: var(--font-ui);39  font-size: 14px;40}41a { color: var(--red); text-decoration: none; font-weight: 600; }42a:hover { text-decoration: underline; }43 44/* ---------- Header ---------- */45 46.topbar {47  min-height: 58px;48  padding: 10px 22px;49  display: flex;50  align-items: center;51  justify-content: space-between;52  gap: 16px;53  background: var(--header-bg);54  border-bottom: 3px solid var(--red);55  color: #fff;56}57.brand-block { display: flex; flex-direction: column; }58.brand-title {59  font-family: var(--font-display);60  font-size: 19px;61  font-weight: 800;62  letter-spacing: -0.015em;63  color: #FFFFFF;64}65.brand-subtitle { color: #A9AFB6; font-size: 12px; margin-top: 1px; font-weight: 500; }66.session-badge {67  font-size: 12px;68  font-weight: 600;69  color: #E8C7CF;70  background: rgba(186, 12, 47, 0.28);71  border: 1px solid rgba(186, 12, 47, 0.55);72  border-radius: 999px;73  padding: 5px 12px;74  white-space: nowrap;75}76.session-badge:empty { display: none; }77 78.page { padding: 16px; background: var(--paper); }79 80/* ---------- Launch card ---------- */81 82.launch-card {83  max-width: 520px;84  margin: 48px auto;85  padding: 28px 28px 22px;86  border: 1px solid var(--line);87  border-radius: 14px;88  background: var(--surface);89  box-shadow: var(--shadow-card);90}91.launch-card.hidden { display: none !important; }92.launch-title {93  font-family: var(--font-display);94  font-size: 22px;95  font-weight: 800;96  letter-spacing: -0.01em;97  margin-bottom: 6px;98}99.launch-rule { width: 44px; height: 3px; background: var(--red); border: none; margin: 0 0 14px; }100 101/* ---------- Workspace grid ---------- */102 103.workspace {104  display: grid;105  grid-template-columns: clamp(300px, 27vw, 410px) 8px minmax(0, 1fr);106  gap: 0;107  height: calc(100vh - 93px);108  height: calc(100dvh - 93px);109  min-height: 460px;110  border: 1px solid var(--line);111  border-radius: 14px;112  overflow: hidden;113  background: var(--surface);114  box-shadow: var(--shadow-card);115}116.workspace.hidden { display: none; }117 118.left-panel {119  overflow-y: auto;120  overflow-x: hidden;121  padding: 16px 16px 24px;122  background: var(--surface-2);123  border-right: 1px solid var(--line);124  min-width: 0;125}126.right-panel {127  overflow-y: auto;128  overflow-x: hidden;129  padding: 16px 18px 24px;130  min-width: 0;131  background: var(--surface);132}133.splitter {134  background: var(--line);135  cursor: col-resize;136  width: 8px;137  position: relative;138  transition: background 120ms ease;139}140.splitter:hover { background: var(--red-line); }141.splitter::after {142  content: "";143  position: absolute;144  left: 2.5px;145  top: 46%;146  width: 3px;147  height: 56px;148  border-radius: 10px;149  background: var(--line-strong);150}151.splitter:hover::after { background: var(--red); }152 153/* ---------- Pipeline steps (left rail) ---------- */154 155.step { margin-bottom: 6px; }156.step-head {157  display: flex;158  align-items: center;159  gap: 9px;160  margin: 6px 0 12px;161}162.step-num {163  font-family: var(--font-mono);164  font-size: 10px;165  font-weight: 500;166  color: var(--slate-light);167  letter-spacing: 0.02em;168  border: 1px solid var(--line);169  border-radius: 6px;170  padding: 2px 6px;171  line-height: 1;172  flex: none;173}174.step-name {175  font-family: var(--font-display);176  font-size: 13px;177  font-weight: 700;178  letter-spacing: 0.03em;179  color: var(--ink);180  text-transform: uppercase;181}182.step-hint { color: var(--slate-light); font-size: 11px; font-weight: 500; margin-left: auto; }183 184.panel-title {185  font-family: var(--font-display);186  color: var(--ink);187  text-transform: uppercase;188  letter-spacing: 0.05em;189  font-size: 12px;190  font-weight: 700;191  margin: 6px 0 8px;192}193.panel-title.mini { margin-top: 14px; }194.small-muted { color: var(--slate); font-size: 13px; line-height: 1.5; margin: 4px 0 10px; }195.hint { color: var(--slate-light); font-size: 11.5px; line-height: 1.45; margin: 4px 0 6px; }196.status-text { color: var(--slate); font-size: 12px; white-space: pre-wrap; margin: 7px 0; line-height: 1.4; }197.status-text:empty { display: none; }198.selected-state {199  color: var(--red-deep);200  background: var(--red-tint);201  border: 1px solid var(--red-line);202  border-radius: 9px;203  padding: 7px 10px;204  margin-bottom: 8px;205  font-size: 12.5px;206  font-weight: 600;207}208.rule { border: none; height: 1px; background: var(--line); margin: 16px 0 12px; }209 210/* ---------- Inputs (force light, beat Dash defaults) ---------- */211 212.control-label {213  display: block;214  color: var(--slate);215  font-size: 10.5px;216  text-transform: uppercase;217  letter-spacing: 0.07em;218  font-weight: 700;219  margin: 8px 0 4px;220}221 222input.text-input,223.text-input {224  width: 100%;225  height: 38px;226  margin: 3px 0 5px;227  padding: 8px 11px;228  color: var(--ink) !important;229  background: var(--surface) !important;230  border: 1px solid var(--line-strong) !important;231  border-radius: 9px !important;232  outline: none;233  font-family: var(--font-ui);234  font-size: 13.5px;235  transition: border-color 120ms ease, box-shadow 120ms ease;236  -webkit-appearance: none;237  appearance: none;238}239.text-input::placeholder { color: var(--slate-light) !important; opacity: 1; }240.text-input:focus { border-color: var(--red) !important; box-shadow: var(--focus-ring); }241.text-input.half { width: calc(50% - 4px); }242.inline-inputs { display: flex; gap: 8px; align-items: center; width: 100%; }243 244.primary-button, .secondary-button {245  width: 100%;246  height: 38px;247  border-radius: 9px;248  margin: 5px 0;249  font-family: var(--font-ui);250  font-weight: 600;251  font-size: 13.5px;252  cursor: pointer;253  transition: background 120ms ease, border-color 120ms ease, color 120ms ease, transform 60ms ease;254}255.primary-button { color: #fff; background: var(--red); border: 1px solid var(--red); }256.primary-button:hover { background: var(--red-deep); border-color: var(--red-deep); }257.primary-button:active { transform: translateY(1px); }258.secondary-button { color: var(--ink); background: var(--surface); border: 1px solid var(--line-strong); }259.secondary-button:hover { border-color: var(--red); color: var(--red-deep); }260.secondary-button:active { transform: translateY(1px); }261.primary-button:focus-visible, .secondary-button:focus-visible,262.text-input:focus-visible { outline: none; box-shadow: var(--focus-ring); }263.half-button { width: calc(50% - 4px); }264.compact-button { max-width: 280px; margin-right: 8px; }265 266.text-button {267  background: transparent;268  border: none;269  color: var(--slate);270  font-family: var(--font-ui);271  font-size: 12.5px;272  font-weight: 600;273  cursor: pointer;274  padding: 6px 2px;275  text-decoration: underline;276  text-underline-offset: 3px;277  white-space: nowrap;278}279.text-button:hover { color: var(--red-deep); }280 281/* ---------- Source pills / radio ---------- */282 283.checklist { margin: 2px 0 8px; }284.checklist label {285  display: inline-flex;286  align-items: center;287  gap: 6px;288  margin: 0 8px 6px 0;289  padding: 6px 13px;290  color: var(--slate);291  font-size: 12.5px;292  font-weight: 600;293  background: var(--surface);294  border: 1px solid var(--line-strong);295  border-radius: 999px;296  cursor: pointer;297  transition: all 120ms ease;298}299.checklist label:has(input:checked) { color: var(--red-deep); background: var(--red-tint); border-color: var(--red); }300.checklist input { accent-color: var(--red); margin: 0; }301 302/* Segmented radio (bulk quick filter) */303.seg-radio { display: inline-flex; flex-wrap: wrap; gap: 0; border: 1px solid var(--line-strong); border-radius: 9px; overflow: hidden; background: var(--surface); }304.seg-radio label {305  display: inline-flex;306  align-items: center;307  gap: 5px;308  padding: 7px 14px;309  color: var(--slate);310  font-size: 12.5px;311  font-weight: 600;312  cursor: pointer;313  border-right: 1px solid var(--line);314  transition: background 120ms ease, color 120ms ease;315  white-space: nowrap;316  margin: 0;317}318.seg-radio label:last-child { border-right: none; }319.seg-radio label:hover { background: var(--surface-3); color: var(--ink); }320.seg-radio label:has(input:checked) { background: var(--red-tint); color: var(--red-deep); }321.seg-radio input { position: absolute; opacity: 0; width: 0; height: 0; }322 323.radio-row label {324  display: inline-flex;325  align-items: center;326  gap: 5px;327  color: var(--slate);328  font-size: 12.5px;329  font-weight: 500;330  margin: 2px 14px 6px 0;331  white-space: nowrap;332  cursor: pointer;333}334.radio-row label:has(input:checked) { color: var(--red-deep); font-weight: 600; }335.radio-row input { accent-color: var(--red); margin: 0; }336 337/* ---------- Map ---------- */338 339.state-map {340  height: 235px;341  border: 1px solid var(--line);342  border-radius: 11px;343  background: var(--surface);344  overflow: hidden;345  margin: 6px 0;346}347 348/* ---------- Dropdowns (dash / react-select v1) ---------- */349 350.dash-dropdown { margin: 3px 0 5px; font-size: 13px; }351.dash-dropdown .Select-control {352  background: var(--surface) !important;353  color: var(--ink) !important;354  border: 1px solid var(--line-strong) !important;355  border-radius: 9px !important;356  min-height: 38px;357}358.dash-dropdown .Select-control:hover { border-color: var(--red) !important; box-shadow: none; }359.dash-dropdown.is-focused:not(.is-open) > .Select-control { border-color: var(--red) !important; box-shadow: var(--focus-ring) !important; }360.dash-dropdown .Select-menu-outer {361  background: var(--surface) !important;362  border: 1px solid var(--line-strong) !important;363  border-radius: 9px;364  overflow: hidden;365  box-shadow: var(--shadow-card);366  z-index: 20;367}368.dash-dropdown .Select-value-label,369.dash-dropdown .Select-placeholder,370.dash-dropdown .Select-input > input { color: var(--ink) !important; }371.dash-dropdown .Select-placeholder { color: var(--slate-light) !important; }372.dash-dropdown .Select-option { background: var(--surface); color: var(--ink); font-size: 13px; }373.dash-dropdown .Select-option.is-focused { background: var(--red-tint); color: var(--red-deep); }374.dash-dropdown .Select-option.is-selected { background: var(--surface-3); color: var(--ink); }375.dash-dropdown .VirtualizedSelectOption { background: var(--surface); color: var(--ink); font-size: 13px; }376.dash-dropdown .VirtualizedSelectFocusedOption { background: var(--red-tint); color: var(--red-deep); }377.dash-dropdown .Select--multi .Select-value {378  background: var(--red-tint) !important;379  border: 1px solid var(--red-line) !important;380  color: var(--red-deep) !important;381  border-radius: 6px;382}383.dash-dropdown .Select--multi .Select-value-label { color: var(--red-deep) !important; font-weight: 600; }384.dash-dropdown .Select--multi .Select-value-icon {385  border-right: 1px solid var(--red-line) !important;386  color: var(--red-deep);387}388.dash-dropdown .Select--multi .Select-value-icon:hover { background: var(--red-line) !important; color: var(--red-deep); }389.dash-dropdown .Select-arrow { border-color: var(--slate) transparent transparent; }390.dash-dropdown .Select-clear { color: var(--slate); }391 392/* ---------- Metric cards ---------- */393 394.metric-grid {395  display: grid;396  grid-template-columns: repeat(auto-fit, minmax(118px, 1fr));397  gap: 10px;398  margin-bottom: 12px;399}400.metric-card {401  padding: 10px 12px;402  border: 1px solid var(--line);403  border-radius: 11px;404  background: var(--surface-2);405}406.metric-label { color: var(--slate); font-size: 10px; text-transform: uppercase; letter-spacing: 0.08em; font-weight: 700; }407.metric-value {408  font-family: var(--font-display);409  color: var(--ink);410  margin-top: 3px;411  font-size: 19px;412  font-weight: 700;413  font-variant-numeric: tabular-nums;414}415 416/* ---------- Tabs ---------- */417 418.main-tabs { margin-top: 4px; }419.main-tabs .tab-container, .main-tabs .tab-parent { background: transparent !important; }420.main-tabs .tab {421  background: transparent !important;422  color: var(--slate) !important;423  border: none !important;424  border-bottom: 2px solid transparent !important;425  padding: 10px 14px !important;426  font-family: var(--font-ui);427  font-weight: 600 !important;428  font-size: 13.5px;429  letter-spacing: 0.01em;430}431.main-tabs .tab:hover { color: var(--ink) !important; }432.main-tabs .tab--selected,433.dash-tab-selected {434  background: transparent !important;435  color: var(--red-deep) !important;436  border-bottom: 2px solid var(--red) !important;437}438.main-tabs .tab-container { border-bottom: 1px solid var(--line) !important; }439.dash-tab { background: transparent !important; color: var(--slate) !important; }440.tab-body { padding-top: 14px; background: var(--surface); }441 442/* ---------- View toolbar ---------- */443 444.view-toolbar { display: flex; flex-wrap: wrap; gap: 8px 14px; align-items: flex-end; margin: 4px 0; }445.view-toolbar .view-mode-wrap { width: min(280px, 100%); }446.view-toolbar .status-text { margin: 0 0 9px; }447 448/* ---------- Code box ---------- */449 450.code-toolbar { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; margin: 4px 0 6px; }451.code-toolbar .compact-button { margin: 0; }452.copy-clip {453  display: inline-flex;454  align-items: center;455  color: var(--slate);456  font-size: 18px;457  cursor: pointer;458  padding: 6px 8px;459  border: 1px solid var(--line-strong);460  border-radius: 9px;461  background: var(--surface);462}463.copy-clip:hover { color: var(--red-deep); border-color: var(--red); }464.code-box {465  width: 100%;466  min-height: 520px;467  resize: vertical;468  padding: 14px;469  margin-top: 4px;470  color: var(--ink) !important;471  background: var(--surface-2) !important;472  border: 1px solid var(--line) !important;473  border-radius: 11px;474  font-family: var(--font-mono);475  font-size: 12px;476  line-height: 1.5;477  white-space: pre;478}479 480/* =============================================================481   Downloads tab — card-based, engineer-grade482   ============================================================= */483 484.dl-tab { display: flex; flex-direction: column; gap: 16px; }485 486.dl-card {487  background: var(--surface);488  border: 1px solid var(--line);489  border-radius: 14px;490  padding: 18px 18px 16px;491  box-shadow: var(--shadow-soft);492}493 494.dl-card-head {495  display: flex;496  align-items: flex-start;497  justify-content: space-between;498  gap: 12px;499  margin-bottom: 14px;500}501.dl-card-title {502  font-family: var(--font-display);503  font-size: 15px;504  font-weight: 700;505  letter-spacing: -0.005em;506  color: var(--ink);507}508.dl-card-sub { color: var(--slate); font-size: 12.5px; line-height: 1.45; margin: 3px 0 0; max-width: 60ch; }509 510.dl-count-pill {511  flex: none;512  font-family: var(--font-mono);513  font-size: 11.5px;514  font-weight: 500;515  color: var(--slate);516  background: var(--surface-3);517  border: 1px solid var(--line);518  border-radius: 999px;519  padding: 5px 12px;520  white-space: nowrap;521}522 523.dl-chip-row { display: flex; flex-wrap: wrap; gap: 10px; }524.dl-chip {525  width: auto !important;526  min-width: 120px;527  margin: 0 !important;528  display: inline-flex;529  align-items: center;530  justify-content: center;531  gap: 7px;532}533 534.dl-filter-row {535  display: grid;536  grid-template-columns: minmax(0, 1.7fr) minmax(0, 1fr);537  gap: 14px;538  margin-bottom: 12px;539}540.dl-field { min-width: 0; }541.dl-field .control-label { margin-top: 0; }542 543.dl-mode-row {544  display: flex;545  align-items: flex-end;546  justify-content: space-between;547  gap: 14px;548  flex-wrap: wrap;549  margin-bottom: 6px;550}551.dl-mode-row .control-label { margin-top: 0; }552 553.dl-status { margin: 2px 0 10px; font-family: var(--font-mono); font-size: 11.5px; }554 555.dl-action-row {556  display: flex;557  align-items: center;558  gap: 12px;559  flex-wrap: wrap;560  margin-top: 14px;561  padding-top: 14px;562  border-top: 1px solid var(--line);563}564.dl-action { width: auto !important; min-width: 190px; margin: 0 !important; }565.dl-action-status { margin: 0; flex: 1 1 220px; }566 567/* ---------- AG Grid (light quartz) ---------- */568 569.ag-theme-quartz {570  --ag-background-color: var(--surface);571  --ag-foreground-color: var(--ink);572  --ag-header-background-color: var(--surface-2);573  --ag-header-foreground-color: var(--slate);574  --ag-odd-row-background-color: #FCFBF8;575  --ag-border-color: var(--line);576  --ag-row-border-color: #EFEDE6;577  --ag-row-hover-color: rgba(186, 12, 47, 0.06);578  --ag-selected-row-background-color: rgba(186, 12, 47, 0.10);579  --ag-checkbox-checked-color: var(--red);580  --ag-checkbox-background-color: var(--surface);581  --ag-input-focus-border-color: var(--red);582  --ag-range-selection-border-color: var(--red);583  --ag-font-size: 12.5px;584  --ag-font-family: var(--font-ui);585  --ag-header-column-separator-display: none;586  --ag-wrapper-border-radius: 10px;587}588.ag-theme-quartz .ag-header-cell-label { font-weight: 700; font-size: 11px; text-transform: uppercase; letter-spacing: 0.05em; }589.ag-theme-quartz .ag-paging-panel { border-top: 1px solid var(--line); color: var(--slate); font-size: 12px; }590.results-grid, .series-grid, .data-grid, .downloader-grid {591  border-radius: 10px;592  overflow: hidden;593  border: 1px solid var(--line);594  margin: 4px 0;595}596.downloader-grid { margin: 2px 0 0; }597.mono-cell { font-family: var(--font-mono); font-size: 11.5px; }598 599/* ---------- Loading spinner tint ---------- */600 601.dash-spinner, ._dash-loading { color: var(--red) !important; }602 603/* ---------- Responsive ---------- */604 605@media (max-width: 1280px) {606  .workspace { grid-template-columns: clamp(290px, 30vw, 360px) 8px minmax(0, 1fr); }607}608@media (max-width: 1023px) {609  .workspace { grid-template-columns: 1fr !important; height: auto; min-height: 0; }610  .splitter { display: none; }611  .left-panel { border-right: none; border-bottom: 1px solid var(--line); max-height: none; }612  .topbar { flex-wrap: wrap; }613}614@media (max-width: 640px) {615  .page { padding: 10px; }616  .launch-card { margin: 18px auto; padding: 20px 18px 16px; }617  .brand-subtitle { display: none; }618  .text-input.half { width: 100%; }619  .inline-inputs { flex-wrap: wrap; }620  .half-button { width: 100%; }621  .dl-filter-row { grid-template-columns: 1fr; }622  .dl-action { width: 100% !important; min-width: 0; }623  .seg-radio { width: 100%; }624}625@media (prefers-reduced-motion: reduce) {626  * { transition: none !important; animation-duration: 0.01ms !important; }627}628