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; } }