Spaces:
Running
Running
Download index.css from ishraddhapawar/openenv: direct link, hf CLI and curl.
- Browser
- Download file 16.6 kB
-
https://huggingface.co/spaces/ishraddhapawar/openenv/resolve/main/index.css
- Command line
-
hf download hf://spaces/ishraddhapawar/openenv/index.css
-
curl -L -o index.css https://huggingface.co/spaces/ishraddhapawar/openenv/resolve/main/index.css
16.6 kB
| /* =================================================== | |
| TradeStorm — Editorial Tech Design System | |
| Playfair Display · Space Grotesk · Space Mono | |
| =================================================== */ | |
| :root { | |
| --bg: #f7f6f2; | |
| --fg: #1a1a1a; | |
| --primary: #3d7068; | |
| --primary-hover: #2f5a53; | |
| --border: #e5e4de; | |
| --muted: #505050; | |
| --card-bg: #ffffff; | |
| --card-hover: #fafaf8; | |
| --success: #3d7068; | |
| --warning: #b08d3a; | |
| --danger: #a04040; | |
| --info: #3b82f6; | |
| --font-serif: 'Playfair Display', 'Georgia', serif; | |
| --font-sans: 'Space Grotesk', system-ui, -apple-system, sans-serif; | |
| --font-mono: 'Space Mono', 'Courier New', monospace; | |
| --ease-editorial: cubic-bezier(0.16, 1, 0.3, 1); | |
| --duration: 700ms; | |
| --radius: 2px; | |
| } | |
| /* ===== RESET ===== */ | |
| *, *::before, *::after { | |
| margin: 0; padding: 0; box-sizing: border-box; | |
| } | |
| html { font-size: 16px; -webkit-font-smoothing: antialiased; } | |
| body { | |
| font-family: var(--font-sans); | |
| background: var(--bg); | |
| color: var(--fg); | |
| line-height: 1.6; | |
| min-height: 100vh; | |
| } | |
| #root { min-height: 100vh; display: flex; flex-direction: column; } | |
| /* ===== FIXED BACKGROUND GRID ===== */ | |
| .bg-grid { | |
| position: fixed; | |
| inset: 0; | |
| pointer-events: none; | |
| z-index: 0; | |
| } | |
| .bg-grid::before { | |
| content: ''; | |
| position: absolute; | |
| inset: 0; | |
| background-image: | |
| linear-gradient(to right, var(--border) 1px, transparent 1px), | |
| linear-gradient(to bottom, var(--border) 1px, transparent 1px); | |
| background-size: 40px 40px; | |
| mask-image: radial-gradient(ellipse 60% 60% at 50% 50%, rgba(0,0,0,0.40) 0%, transparent 100%); | |
| -webkit-mask-image: radial-gradient(ellipse 60% 60% at 50% 50%, rgba(0,0,0,0.40) 0%, transparent 100%); | |
| } | |
| .bg-grid::after { | |
| content: ''; | |
| position: absolute; | |
| top: 0; bottom: 0; | |
| left: 25%; right: 25%; | |
| border-left: 1px solid var(--border); | |
| border-right: 1px solid var(--border); | |
| background: linear-gradient(to right, transparent calc(50% - 0.5px), var(--border) calc(50% - 0.5px), var(--border) calc(50% + 0.5px), transparent calc(50% + 0.5px)); | |
| opacity: 0.5; | |
| } | |
| /* ===== SCROLLBAR ===== */ | |
| ::-webkit-scrollbar { width: 4px; } | |
| ::-webkit-scrollbar-track { background: var(--bg); } | |
| ::-webkit-scrollbar-thumb { background: var(--border); } | |
| ::-webkit-scrollbar-thumb:hover { background: var(--muted); } | |
| /* ===== LOADING ===== */ | |
| .loading-screen { | |
| display: flex; | |
| flex-direction: column; | |
| align-items: center; | |
| justify-content: center; | |
| min-height: 100vh; | |
| gap: 2rem; | |
| position: relative; | |
| z-index: 1; | |
| } | |
| .loading-logo { | |
| width: 140px; | |
| object-fit: contain; | |
| border-radius: var(--radius); | |
| mix-blend-mode: multiply; | |
| filter: contrast(1.05); | |
| animation: editorialPulse 2.5s var(--ease-editorial) infinite; | |
| } | |
| @keyframes editorialPulse { | |
| 0%, 100% { opacity: 1; transform: scale(1); } | |
| 50% { opacity: 0.6; transform: scale(1.02); } | |
| } | |
| .loading-spinner { | |
| width: 40px; height: 2px; | |
| background: var(--border); | |
| position: relative; | |
| overflow: hidden; | |
| border-radius: 0; | |
| } | |
| .loading-spinner::after { | |
| content: ''; | |
| position: absolute; | |
| left: 0; top: 0; | |
| width: 60%; height: 100%; | |
| background: var(--primary); | |
| animation: scanSlide 1.5s cubic-bezier(0.8, 0, 0.2, 1) infinite; | |
| } | |
| @keyframes scanSlide { | |
| 0% { transform: translateX(-100%); } | |
| 100% { transform: translateX(250%); } | |
| } | |
| .loading-text { | |
| font-family: var(--font-mono); | |
| font-size: 12px; | |
| text-transform: uppercase; | |
| letter-spacing: 0.3em; | |
| color: var(--muted); | |
| } | |
| /* ===== TOP BAR ===== */ | |
| .top-bar { | |
| display: flex; | |
| align-items: center; | |
| justify-content: space-between; | |
| padding: 14px 32px; | |
| background: rgba(247, 246, 242, 0.8); | |
| border-bottom: 1px solid var(--border); | |
| backdrop-filter: blur(12px); | |
| -webkit-backdrop-filter: blur(12px); | |
| position: sticky; | |
| top: 0; | |
| z-index: 100; | |
| transition: all var(--duration) var(--ease-editorial); | |
| } | |
| .brand { | |
| display: flex; | |
| align-items: center; | |
| gap: 14px; | |
| } | |
| .brand-icon { | |
| width: 42px; | |
| height: 42px; | |
| border: none; | |
| border-radius: var(--radius); | |
| display: flex; | |
| align-items: center; | |
| justify-content: center; | |
| overflow: hidden; | |
| } | |
| .brand-icon img { | |
| mix-blend-mode: multiply; | |
| filter: contrast(1.05); | |
| } | |
| .brand h1 { | |
| font-family: var(--font-serif); | |
| font-size: 1.65rem; | |
| font-weight: 300; | |
| letter-spacing: -0.01em; | |
| } | |
| .brand h1 span { color: var(--fg); } | |
| .brand-sub { | |
| font-family: var(--font-mono); | |
| font-size: 11px; | |
| text-transform: uppercase; | |
| letter-spacing: 0.3em; | |
| color: var(--muted); | |
| } | |
| .top-bar-right { | |
| display: flex; | |
| align-items: center; | |
| gap: 16px; | |
| } | |
| .scenario-pill { | |
| display: inline-flex; | |
| align-items: center; | |
| gap: 6px; | |
| padding: 5px 14px; | |
| background: transparent; | |
| border: 1px solid var(--border); | |
| border-radius: var(--radius); | |
| font-family: var(--font-mono); | |
| font-size: 11px; | |
| text-transform: uppercase; | |
| letter-spacing: 0.25em; | |
| color: var(--primary); | |
| transition: all var(--duration) var(--ease-editorial); | |
| } | |
| .scenario-pill:hover { border-color: var(--primary); } | |
| .month-badge { | |
| padding: 5px 14px; | |
| background: var(--fg); | |
| border: none; | |
| border-radius: var(--radius); | |
| font-family: var(--font-mono); | |
| font-size: 12px; | |
| font-weight: 700; | |
| letter-spacing: 0.2em; | |
| color: var(--bg); | |
| } | |
| /* ===== MAIN LAYOUT ===== */ | |
| .main-content { | |
| display: grid; | |
| grid-template-columns: 280px 1px 1fr; | |
| flex: 1; | |
| min-height: 0; | |
| height: calc(100vh - 68px); | |
| overflow: hidden; | |
| position: relative; | |
| z-index: 1; | |
| } | |
| .layout-divider { | |
| background: var(--border); | |
| width: 1px; | |
| } | |
| /* ===== SIDEBAR ===== */ | |
| .sidebar { | |
| display: flex; | |
| flex-direction: column; | |
| gap: 0; | |
| height: 100%; | |
| overflow-y: auto; | |
| padding: 0; | |
| } | |
| /* ===== PANELS ===== */ | |
| .panel { | |
| background: transparent; | |
| border-bottom: 1px solid var(--border); | |
| padding: 20px 24px; | |
| transition: background var(--duration) var(--ease-editorial); | |
| } | |
| .panel:hover { | |
| background: rgba(255,255,255,0.5); | |
| } | |
| .panel-header { | |
| display: flex; | |
| align-items: center; | |
| justify-content: space-between; | |
| margin-bottom: 14px; | |
| } | |
| .panel-title { | |
| display: flex; | |
| align-items: center; | |
| gap: 8px; | |
| font-family: var(--font-mono); | |
| font-size: 11px; | |
| font-weight: 700; | |
| text-transform: uppercase; | |
| letter-spacing: 0.25em; | |
| color: var(--muted); | |
| } | |
| .panel-title svg { width: 14px; height: 14px; color: var(--primary); } | |
| /* ===== FORMS ===== */ | |
| .form-group { margin-bottom: 14px; } | |
| .form-label { | |
| display: block; | |
| font-family: var(--font-mono); | |
| font-size: 11px; | |
| font-weight: 400; | |
| text-transform: uppercase; | |
| letter-spacing: 0.2em; | |
| color: var(--muted); | |
| margin-bottom: 6px; | |
| } | |
| .form-select, .form-input { | |
| width: 100%; | |
| padding: 10px 0; | |
| background: transparent; | |
| border: none; | |
| border-bottom: 1px solid var(--border); | |
| color: var(--fg); | |
| font-family: var(--font-sans); | |
| font-size: 1rem; | |
| outline: none; | |
| border-radius: 0; | |
| transition: border-color var(--duration) var(--ease-editorial); | |
| appearance: none; | |
| } | |
| .form-select:focus, .form-input:focus { | |
| border-bottom-color: var(--primary); | |
| } | |
| .form-select option { background: var(--bg); color: var(--fg); } | |
| /* ===== BUTTONS ===== */ | |
| .btn { | |
| display: inline-flex; | |
| align-items: center; | |
| justify-content: center; | |
| gap: 8px; | |
| padding: 12px 20px; | |
| border: 1px solid var(--border); | |
| border-radius: var(--radius); | |
| font-family: var(--font-mono); | |
| font-size: 10px; | |
| font-weight: 700; | |
| text-transform: uppercase; | |
| letter-spacing: 0.25em; | |
| cursor: pointer; | |
| position: relative; | |
| overflow: hidden; | |
| transition: all var(--duration) var(--ease-editorial); | |
| } | |
| .btn::after { | |
| content: ''; | |
| position: absolute; | |
| inset: 0; | |
| background: rgba(255,255,255,0.20); | |
| transform: translateY(100%); | |
| transition: transform var(--duration) var(--ease-editorial); | |
| } | |
| .btn:hover::after { transform: translateY(0); } | |
| .btn:hover { letter-spacing: 0.4em; } | |
| .btn:active { transform: scale(0.98); } | |
| .btn svg { width: 14px; height: 14px; } | |
| .btn-primary { | |
| background: var(--primary); | |
| color: #fff; | |
| border-color: var(--primary); | |
| } | |
| .btn-primary:hover { | |
| background: var(--primary-hover); | |
| border-color: var(--primary-hover); | |
| } | |
| .btn-success { | |
| background: var(--primary); | |
| color: #fff; | |
| border-color: var(--primary); | |
| } | |
| .btn-warning { | |
| background: transparent; | |
| color: var(--warning); | |
| border-color: var(--warning); | |
| } | |
| .btn-warning:hover { background: var(--warning); color: #fff; } | |
| .btn-danger { | |
| background: transparent; | |
| color: var(--danger); | |
| border-color: var(--danger); | |
| } | |
| .btn-outline { | |
| background: transparent; | |
| color: var(--fg); | |
| border-color: var(--border); | |
| } | |
| .btn-outline:hover { | |
| border-color: var(--fg); | |
| } | |
| .btn-sm { padding: 8px 14px; font-size: 11px; } | |
| .btn-block { width: 100%; } | |
| /* ===== KPI CARDS ===== */ | |
| .kpi-grid { | |
| display: grid; | |
| grid-template-columns: repeat(4, 1fr); | |
| border-bottom: 1px solid var(--border); | |
| } | |
| .kpi-card { | |
| padding: 24px; | |
| border-right: 1px solid var(--border); | |
| transition: background var(--duration) var(--ease-editorial); | |
| } | |
| .kpi-card:last-child { border-right: none; } | |
| .kpi-card:hover { background: var(--card-bg); } | |
| .kpi-header { | |
| display: flex; | |
| align-items: center; | |
| justify-content: space-between; | |
| margin-bottom: 8px; | |
| } | |
| .kpi-label { | |
| font-family: var(--font-mono); | |
| font-size: 11px; | |
| font-weight: 400; | |
| text-transform: uppercase; | |
| letter-spacing: 0.25em; | |
| color: var(--muted); | |
| } | |
| .kpi-icon { | |
| width: 48px; height: 48px; | |
| border: 1px solid var(--border); | |
| border-radius: var(--radius); | |
| display: flex; | |
| align-items: center; | |
| justify-content: center; | |
| } | |
| .kpi-icon svg { width: 14px; height: 14px; } | |
| .kpi-value { | |
| font-family: var(--font-serif); | |
| font-size: 3rem; | |
| font-weight: 300; | |
| letter-spacing: -0.02em; | |
| line-height: 1.1; | |
| color: var(--fg); | |
| } | |
| .kpi-change { | |
| font-family: var(--font-mono); | |
| font-size: 11px; | |
| font-weight: 400; | |
| letter-spacing: 0.1em; | |
| margin-top: 6px; | |
| } | |
| .kpi-change.positive { color: var(--primary); } | |
| .kpi-change.negative { color: var(--danger); } | |
| /* ===== EVENTS ===== */ | |
| .event-list { | |
| display: flex; | |
| flex-direction: column; | |
| gap: 0; | |
| max-height: 180px; | |
| overflow-y: auto; | |
| } | |
| .event-item { | |
| display: flex; | |
| align-items: flex-start; | |
| gap: 10px; | |
| padding: 10px 0; | |
| border-bottom: 1px solid var(--border); | |
| font-family: var(--font-sans); | |
| font-size: 0.92rem; | |
| line-height: 1.5; | |
| animation: editorialSlide 700ms var(--ease-editorial); | |
| } | |
| .event-item:last-child { border-bottom: none; } | |
| .event-item.warning { color: var(--warning); } | |
| .event-item.danger { color: var(--danger); } | |
| .event-item.success { color: var(--primary); } | |
| .event-item.info { color: var(--fg); } | |
| @keyframes editorialSlide { | |
| from { opacity: 0; transform: translateY(8px); } | |
| to { opacity: 1; transform: translateY(0); } | |
| } | |
| /* ===== CHARTS ===== */ | |
| .charts-grid { | |
| display: grid; | |
| grid-template-columns: repeat(2, 1fr); | |
| } | |
| .chart-container { height: 200px; } | |
| /* ===== SHIPMENTS ===== */ | |
| .shipment-list { | |
| display: flex; | |
| flex-direction: column; | |
| gap: 0; | |
| max-height: 200px; | |
| overflow-y: auto; | |
| } | |
| .shipment-item { | |
| display: flex; | |
| align-items: center; | |
| justify-content: space-between; | |
| padding: 10px 0; | |
| border-bottom: 1px solid var(--border); | |
| font-size: 0.92rem; | |
| transition: background var(--duration) var(--ease-editorial); | |
| } | |
| .shipment-item:last-child { border-bottom: none; } | |
| .shipment-badge { | |
| padding: 3px 10px; | |
| border: 1px solid var(--border); | |
| border-radius: var(--radius); | |
| font-family: var(--font-mono); | |
| font-size: 10px; | |
| font-weight: 700; | |
| text-transform: uppercase; | |
| letter-spacing: 0.15em; | |
| } | |
| .shipment-badge.transit { color: var(--info); border-color: var(--info); } | |
| .shipment-badge.arriving { color: var(--primary); border-color: var(--primary); } | |
| .shipment-badge.delivered { color: var(--muted); } | |
| /* ===== DECISION PREVIEW ===== */ | |
| .preview-grid { | |
| display: grid; | |
| grid-template-columns: 1fr 1fr; | |
| border: 1px solid var(--border); | |
| border-radius: var(--radius); | |
| } | |
| .preview-item { | |
| padding: 10px 14px; | |
| border-bottom: 1px solid var(--border); | |
| border-right: 1px solid var(--border); | |
| } | |
| .preview-item:nth-child(2n) { border-right: none; } | |
| .preview-item:nth-last-child(-n+2) { border-bottom: none; } | |
| .preview-item .label { | |
| font-family: var(--font-mono); | |
| font-size: 10px; | |
| text-transform: uppercase; | |
| letter-spacing: 0.2em; | |
| color: var(--muted); | |
| } | |
| .preview-item .value { | |
| font-family: var(--font-mono); | |
| font-size: 1rem; | |
| font-weight: 700; | |
| color: var(--fg); | |
| margin-top: 2px; | |
| } | |
| .preview-item .value.affordable { color: var(--primary); } | |
| .preview-item .value.expensive { color: var(--danger); } | |
| /* ===== ORACLE BANNER ===== */ | |
| .oracle-banner { | |
| border-bottom: 1px solid var(--border); | |
| padding: 20px 28px; | |
| animation: editorialSlide 1s var(--ease-editorial); | |
| } | |
| .oracle-banner .oracle-title { | |
| font-family: var(--font-mono); | |
| font-size: 11px; | |
| font-weight: 700; | |
| text-transform: uppercase; | |
| letter-spacing: 0.25em; | |
| color: var(--primary); | |
| margin-bottom: 6px; | |
| display: flex; | |
| align-items: center; | |
| gap: 8px; | |
| } | |
| .oracle-banner .oracle-text { | |
| font-family: var(--font-serif); | |
| font-size: 1.2rem; | |
| font-weight: 300; | |
| font-style: italic; | |
| color: var(--fg); | |
| line-height: 1.6; | |
| } | |
| /* ===== MAP ===== */ | |
| .map-container { | |
| border-bottom: 1px solid var(--border); | |
| overflow: hidden; | |
| height: 600px; | |
| min-height: 500px; | |
| } | |
| /* ===== INVENTORY BARS ===== */ | |
| .inventory-bar-track { | |
| height: 2px; | |
| background: var(--border); | |
| margin-top: 6px; | |
| position: relative; | |
| overflow: hidden; | |
| } | |
| .inventory-bar-fill { | |
| height: 100%; | |
| transition: width 800ms var(--ease-editorial); | |
| } | |
| /* ===== SCAN LINE ===== */ | |
| .scan-line { | |
| width: 100%; | |
| height: 2px; | |
| background: var(--border); | |
| position: relative; | |
| overflow: hidden; | |
| } | |
| .scan-line::after { | |
| content: ''; | |
| position: absolute; | |
| left: 0; top: 0; | |
| width: 40%; | |
| height: 100%; | |
| background: var(--info); | |
| animation: scanSlide 2s cubic-bezier(0.8, 0, 0.2, 1) infinite; | |
| } | |
| /* ===== UTILITY ===== */ | |
| .text-mono { font-family: var(--font-mono); } | |
| .text-serif { font-family: var(--font-serif); } | |
| .text-muted { color: var(--muted); } | |
| .flex { display: flex; } | |
| .flex-col { flex-direction: column; } | |
| .items-center { align-items: center; } | |
| .justify-between { justify-content: space-between; } | |
| .gap-sm { gap: 8px; } | |
| .gap-md { gap: 14px; } | |
| .gap-lg { gap: 20px; } | |
| /* ===== LEAFLET OVERRIDES ===== */ | |
| .leaflet-container { | |
| font-family: var(--font-sans); | |
| background: #eae9e4 ; | |
| } | |
| .leaflet-control-zoom { | |
| border: none ; | |
| box-shadow: none ; | |
| } | |
| .leaflet-control-zoom a { | |
| background: var(--bg) ; | |
| color: var(--fg) ; | |
| border: 1px solid var(--border) ; | |
| border-radius: var(--radius) ; | |
| width: 28px ; | |
| height: 28px ; | |
| line-height: 28px ; | |
| font-size: 14px ; | |
| } | |
| .leaflet-control-zoom a:hover { | |
| background: var(--card-bg) ; | |
| border-color: var(--primary) ; | |
| } | |
| .leaflet-popup-content-wrapper { | |
| background: var(--bg) ; | |
| color: var(--fg) ; | |
| border: 1px solid var(--border) ; | |
| border-radius: var(--radius) ; | |
| box-shadow: none ; | |
| font-family: var(--font-sans) ; | |
| } | |
| .leaflet-popup-tip { | |
| background: var(--bg) ; | |
| box-shadow: none ; | |
| } | |
| .leaflet-popup-close-button { color: var(--muted) ; } | |
| .map-marker-label { | |
| font-family: var(--font-mono); | |
| font-size: 11px; | |
| font-weight: 700; | |
| letter-spacing: 0.05em; | |
| padding: 3px 8px; | |
| border-radius: var(--radius); | |
| white-space: nowrap; | |
| border: 1px solid; | |
| } | |
| .map-marker-label.factory { | |
| background: rgba(247, 246, 242, 0.95); | |
| color: var(--warning); | |
| border-color: var(--warning); | |
| } | |
| .map-marker-label.port { | |
| background: rgba(247, 246, 242, 0.95); | |
| color: var(--info); | |
| border-color: var(--info); | |
| } | |
| .map-marker-label.warehouse { | |
| background: rgba(247, 246, 242, 0.95); | |
| color: var(--primary); | |
| border-color: var(--primary); | |
| } | |
| .leaflet-control-attribution { | |
| background: rgba(247, 246, 242, 0.7) ; | |
| color: var(--muted) ; | |
| font-size: 9px ; | |
| font-family: var(--font-mono) ; | |
| } | |
| .leaflet-control-attribution a { color: var(--primary) ; } | |
| /* ===== RESPONSIVE ===== */ | |
| @media (max-width: 1024px) { | |
| .main-content { | |
| grid-template-columns: 1fr; | |
| height: auto; | |
| overflow: visible; | |
| } | |
| .layout-divider { display: none; } | |
| .sidebar { height: auto; overflow: visible; } | |
| .kpi-grid { grid-template-columns: repeat(2, 1fr); } | |
| } | |
| @media (max-width: 640px) { | |
| .top-bar { padding: 10px 16px; flex-wrap: wrap; gap: 8px; } | |
| .kpi-grid { grid-template-columns: 1fr; } | |
| .charts-grid { grid-template-columns: 1fr; } | |
| } | |