Spaces:
Sleeping
Sleeping
| body { | |
| margin: 0; | |
| font-family: Inter, Arial, sans-serif; | |
| background: #0f172a; | |
| color: #e2e8f0; | |
| } | |
| main { | |
| max-width: 1240px; | |
| margin: 0 auto; | |
| padding: 24px; | |
| } | |
| button, | |
| input, | |
| select { | |
| border: 1px solid #475569; | |
| border-radius: 8px; | |
| padding: 8px 10px; | |
| background: #1e293b; | |
| color: #e2e8f0; | |
| } | |
| button { | |
| cursor: pointer; | |
| } | |
| button:disabled { | |
| cursor: not-allowed; | |
| opacity: 0.45; | |
| } | |
| label { | |
| display: grid; | |
| gap: 6px; | |
| color: #94a3b8; | |
| font-size: 12px; | |
| letter-spacing: 0.04em; | |
| text-transform: uppercase; | |
| } | |
| .grid { | |
| display: grid; | |
| grid-template-columns: repeat(2, minmax(0, 1fr)); | |
| gap: 16px; | |
| } | |
| .hero { | |
| display: grid; | |
| grid-template-columns: minmax(0, 1fr) 320px; | |
| gap: 20px; | |
| align-items: stretch; | |
| margin-bottom: 16px; | |
| } | |
| .hero h1 { | |
| max-width: 780px; | |
| margin: 4px 0 10px; | |
| font-size: clamp(32px, 5vw, 56px); | |
| line-height: 1; | |
| } | |
| .eyebrow, | |
| .hero-copy, | |
| .muted-text, | |
| .empty-state, | |
| .model-card small, | |
| .board-caption { | |
| color: #94a3b8; | |
| } | |
| .eyebrow { | |
| margin: 0; | |
| text-transform: uppercase; | |
| letter-spacing: 0.16em; | |
| font-size: 12px; | |
| } | |
| .hero-copy { | |
| max-width: 640px; | |
| margin: 0; | |
| font-size: 16px; | |
| } | |
| .demo-layout { | |
| display: grid; | |
| grid-template-columns: minmax(0, 1.4fr) minmax(320px, 0.8fr); | |
| gap: 16px; | |
| } | |
| .card { | |
| background: #111827; | |
| border: 1px solid #334155; | |
| border-radius: 12px; | |
| padding: 16px; | |
| } | |
| .card h2, | |
| .model-card h2 { | |
| margin: 0 0 12px; | |
| } | |
| .wide-card { | |
| grid-row: span 3; | |
| } | |
| .model-card { | |
| background: linear-gradient(135deg, #172554, #111827 68%); | |
| border: 1px solid #38bdf8; | |
| border-radius: 16px; | |
| padding: 18px; | |
| box-shadow: 0 18px 60px rgba(14, 165, 233, 0.18); | |
| } | |
| .status-pill, | |
| .badge { | |
| display: inline-flex; | |
| align-items: center; | |
| border-radius: 999px; | |
| padding: 4px 8px; | |
| background: #1e293b; | |
| color: #bae6fd; | |
| font-size: 12px; | |
| font-weight: 700; | |
| } | |
| .action-text { | |
| min-height: 44px; | |
| margin: 0 0 12px; | |
| color: #f8fafc; | |
| font-size: 22px; | |
| font-weight: 800; | |
| } | |
| .controls { | |
| display: flex; | |
| flex-wrap: wrap; | |
| gap: 8px; | |
| margin: 16px 0; | |
| align-items: center; | |
| } | |
| .button-row { | |
| display: flex; | |
| flex-wrap: wrap; | |
| gap: 8px; | |
| } | |
| .board-wrap { | |
| display: grid; | |
| gap: 12px; | |
| } | |
| .dispatch-board { | |
| width: 100%; | |
| min-height: 360px; | |
| border-radius: 16px; | |
| background: | |
| radial-gradient(circle at top left, rgba(14, 165, 233, 0.2), transparent 30%), | |
| #020617; | |
| } | |
| .dispatch-board line { | |
| stroke: #334155; | |
| stroke-width: 2; | |
| } | |
| .board-node circle { | |
| fill: #0f172a; | |
| stroke: #64748b; | |
| stroke-width: 2; | |
| } | |
| .board-node text, | |
| .courier-marker text, | |
| .order-marker text { | |
| fill: #e2e8f0; | |
| font-size: 12px; | |
| font-weight: 700; | |
| text-anchor: middle; | |
| } | |
| .muted-text { | |
| font-size: 10px; | |
| font-weight: 500; | |
| } | |
| .order-marker rect { | |
| fill: #475569; | |
| stroke: #cbd5e1; | |
| } | |
| .order-marker.ready rect { | |
| fill: #a16207; | |
| stroke: #fde68a; | |
| animation: pulse 1.2s ease-in-out infinite; | |
| } | |
| .order-marker.picked rect { | |
| fill: #0e7490; | |
| stroke: #67e8f9; | |
| } | |
| .order-marker.delivered rect { | |
| fill: #15803d; | |
| stroke: #86efac; | |
| } | |
| .order-marker.expired rect { | |
| fill: #991b1b; | |
| stroke: #fca5a5; | |
| } | |
| .courier-marker circle { | |
| fill: #2563eb; | |
| stroke: #bfdbfe; | |
| stroke-width: 2; | |
| filter: drop-shadow(0 0 8px rgba(59, 130, 246, 0.65)); | |
| transition: transform 0.25s ease; | |
| } | |
| .courier-marker.to_pickup circle, | |
| .courier-marker.to_dropoff circle, | |
| .courier-marker.repositioning circle { | |
| animation: pulse 1s ease-in-out infinite; | |
| } | |
| .board-caption { | |
| display: flex; | |
| justify-content: space-between; | |
| gap: 12px; | |
| font-size: 13px; | |
| } | |
| .nodes { | |
| display: flex; | |
| gap: 16px; | |
| align-items: center; | |
| } | |
| .node { | |
| border: 1px solid #64748b; | |
| border-radius: 999px; | |
| padding: 16px; | |
| min-width: 84px; | |
| text-align: center; | |
| } | |
| .event-feed { | |
| display: grid; | |
| gap: 10px; | |
| max-height: 392px; | |
| margin: 0; | |
| padding: 0; | |
| overflow: auto; | |
| list-style: none; | |
| } | |
| .event-feed li { | |
| display: grid; | |
| grid-template-columns: 42px minmax(0, 1fr); | |
| gap: 2px 10px; | |
| padding: 10px; | |
| border: 1px solid #334155; | |
| border-left: 4px solid #64748b; | |
| border-radius: 10px; | |
| background: #0f172a; | |
| } | |
| .event-feed li:first-child { | |
| animation: slide-in 0.28s ease-out; | |
| } | |
| .event-feed span { | |
| grid-row: span 2; | |
| color: #38bdf8; | |
| font-weight: 800; | |
| } | |
| .event-feed small { | |
| color: #94a3b8; | |
| } | |
| .event-feed .received, | |
| .event-feed .ready, | |
| .event-feed .model { | |
| border-left-color: #facc15; | |
| } | |
| .event-feed .delivered { | |
| border-left-color: #22c55e; | |
| } | |
| .event-feed .expired { | |
| border-left-color: #ef4444; | |
| } | |
| .metrics { | |
| display: grid; | |
| grid-template-columns: repeat(2, minmax(0, 1fr)); | |
| gap: 10px; | |
| } | |
| .metrics div { | |
| padding: 12px; | |
| border-radius: 10px; | |
| background: #020617; | |
| } | |
| .metrics span { | |
| display: block; | |
| color: #94a3b8; | |
| font-size: 12px; | |
| } | |
| .metrics strong { | |
| display: block; | |
| margin-top: 4px; | |
| font-size: 24px; | |
| } | |
| table { | |
| border-collapse: collapse; | |
| width: 100%; | |
| } | |
| td { | |
| border-bottom: 1px solid #334155; | |
| padding: 8px; | |
| } | |
| pre { | |
| white-space: pre-wrap; | |
| max-height: 260px; | |
| overflow: auto; | |
| background: #020617; | |
| padding: 12px; | |
| border-radius: 8px; | |
| } | |
| .badge.ready { | |
| background: #713f12; | |
| color: #fde68a; | |
| } | |
| .badge.picked { | |
| background: #164e63; | |
| color: #a5f3fc; | |
| } | |
| .badge.delivered { | |
| background: #14532d; | |
| color: #bbf7d0; | |
| } | |
| .badge.expired { | |
| background: #7f1d1d; | |
| color: #fecaca; | |
| } | |
| @keyframes pulse { | |
| 0%, | |
| 100% { | |
| opacity: 0.72; | |
| } | |
| 50% { | |
| opacity: 1; | |
| } | |
| } | |
| @keyframes slide-in { | |
| from { | |
| opacity: 0; | |
| transform: translateY(-6px); | |
| } | |
| to { | |
| opacity: 1; | |
| transform: translateY(0); | |
| } | |
| } | |
| @media (max-width: 860px) { | |
| .hero, | |
| .demo-layout { | |
| grid-template-columns: 1fr; | |
| } | |
| .wide-card { | |
| grid-row: auto; | |
| } | |
| } | |