@import "https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700&family=Outfit:wght@400;500;600;700;800&display=swap";:root{--font-sans:"Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;--font-display:"Outfit", sans-serif;--bg-main:#0b0f19;--bg-card:#151c2c;--bg-card-hover:#1e293e;--border-color:#27354f;--text-primary:#f8fafc;--text-secondary:#94a3b8;--text-muted:#64748b;--accent-blue:#3b82f6;--accent-blue-glow:#3b82f626;--accent-crimson:#ef4444;--accent-crimson-glow:#ef444426;--accent-emerald:#10b981;--accent-emerald-glow:#10b98126;--accent-amber:#f59e0b;--accent-amber-glow:#f59e0b26;--shadow-sm:0 2px 8px #0003;--shadow-md:0 8px 24px #0006;--shadow-lg:0 16px 40px #0009;--shadow-blue:0 8px 30px #3b82f640;--radius-sm:6px;--radius-md:12px;--radius-lg:18px;--radius-full:9999px;--transition-fast:.15s ease;--transition-normal:.3s cubic-bezier(.4, 0, .2, 1)}*{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:smooth}body{font-family:var(--font-sans);background-color:var(--bg-main);color:var(--text-primary);-webkit-font-smoothing:antialiased;line-height:1.6;overflow-x:hidden}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-track{background:var(--bg-main)}::-webkit-scrollbar-thumb{background:var(--border-color);border-radius:var(--radius-full)}::-webkit-scrollbar-thumb:hover{background:var(--text-muted)}h1,h2,h3,h4,h5,h6{font-family:var(--font-display);font-weight:700;line-height:1.25}a{color:inherit;text-decoration:none}@keyframes fadeIn{0%{opacity:0;transform:translateY(15px)}to{opacity:1;transform:translateY(0)}}@keyframes pulseGlow{0%,to{opacity:.8;box-shadow:0 0 15px #3b82f61a}50%{opacity:1;box-shadow:0 0 25px #3b82f64d}}@keyframes drawLine{to{stroke-dashoffset:0}}.container{width:100%;max-width:1280px;margin:0 auto;padding:0 24px}.grid-2{grid-template-columns:1fr;gap:32px;display:grid}@media (width>=768px){.grid-2{grid-template-columns:1fr 1fr}}.grid-3{grid-template-columns:1fr;gap:24px;display:grid}@media (width>=768px){.grid-3{grid-template-columns:repeat(3,1fr)}}.panel{background-color:var(--bg-card);border:1px solid var(--border-color);border-radius:var(--radius-md);box-shadow:var(--shadow-md);transition:transform var(--transition-normal), border-color var(--transition-fast), box-shadow var(--transition-normal);padding:24px}.panel:hover{border-color:#3b82f666}.btn{font-family:var(--font-display);border-radius:var(--radius-sm);cursor:pointer;transition:all var(--transition-fast);border:1px solid #0000;justify-content:center;align-items:center;gap:8px;padding:12px 24px;font-size:15px;font-weight:600;display:inline-flex}.btn-primary{background-color:var(--accent-blue);color:#fff;box-shadow:0 4px 14px #3b82f666}.btn-primary:hover{background-color:#2563eb;transform:translateY(-1px);box-shadow:0 6px 20px #3b82f680}.btn-secondary{color:var(--text-primary);border-color:var(--border-color);background-color:#0000}.btn-secondary:hover{background-color:var(--bg-card-hover);border-color:var(--text-secondary)}.btn-sm{padding:8px 16px;font-size:14px}.badge{border-radius:var(--radius-full);text-transform:uppercase;letter-spacing:.05em;align-items:center;gap:6px;padding:4px 10px;font-size:12px;font-weight:600;display:inline-flex}.badge-blue{background-color:var(--accent-blue-glow);color:#60a5fa;border:1px solid #3b82f64d}.badge-emerald{background-color:var(--accent-emerald-glow);color:#34d399;border:1px solid #10b9814d}.badge-crimson{background-color:var(--accent-crimson-glow);color:#f87171;border:1px solid #ef44444d}.badge-amber{background-color:var(--accent-amber-glow);color:#fbbf24;border:1px solid #f59e0b4d}.gradient-text{background:linear-gradient(135deg,#60a5fa 0%,#3b82f6 50%,#1d4ed8 100%);-webkit-text-fill-color:transparent;-webkit-background-clip:text}.gradient-title{background:linear-gradient(135deg,#fff 0%,#cbd5e1 50%,#94a3b8 100%);-webkit-text-fill-color:transparent;-webkit-background-clip:text}.svg-swimlane text{fill:var(--text-primary);font-family:var(--font-sans)}.svg-swimlane .tick-text{fill:var(--text-secondary);font-size:11px}.svg-swimlane .timeline-node{cursor:pointer;transition:r .2s,filter .2s}.svg-swimlane .timeline-node:hover{r:10px;filter:drop-shadow(0 0 8px)}.svg-swimlane .grid-line{stroke:var(--border-color);stroke-dasharray:4 4;opacity:.5}.swimlane-container{border-radius:var(--radius-md);border:1px solid var(--border-color);background-color:#151c2c33;width:100%;margin-top:16px;padding:20px 0;position:relative;overflow-x:auto}.swimlane-wrapper{min-width:900px;padding:0 20px 20px;position:relative}.swimlane-row{height:80px;transition:background-color var(--transition-fast);border-bottom:1px solid #27354f80;align-items:center;display:flex;position:relative}.swimlane-row:hover{background-color:#ffffff04}.swimlane-label{width:200px;color:var(--text-secondary);border-right:1px solid var(--border-color);flex-shrink:0;align-items:center;height:100%;padding-right:20px;font-size:13px;font-weight:600;display:flex}.swimlane-track{flex-grow:1;height:100%;position:relative}.swimlane-grid-line{background-color:var(--border-color);opacity:.2;pointer-events:none;width:1px;position:absolute;top:0;bottom:0}.swimlane-node{cursor:pointer;z-index:10;border-radius:50%;transition:transform .25s cubic-bezier(.175,.885,.32,1.275),box-shadow .2s;position:absolute;top:50%;transform:translate(-50%,-50%)}.swimlane-node:hover{z-index:100;transform:translate(-50%,-50%)scale(1.3)}.swimlane-tooltip{border:1px solid var(--border-color);border-radius:var(--radius-sm);width:280px;box-shadow:var(--shadow-lg);color:var(--text-primary);pointer-events:none;opacity:0;visibility:hidden;z-index:1000;text-align:left;background-color:#151c2c;padding:12px;font-size:12px;line-height:1.4;transition:opacity .2s,visibility .2s,transform .2s;position:absolute;bottom:140%;left:50%;transform:translate(-50%)}.swimlane-tooltip:after{content:"";border-style:solid;border-width:6px;border-color:var(--border-color) transparent transparent transparent;position:absolute;top:100%;left:50%;transform:translate(-50%)}.swimlane-node:hover .swimlane-tooltip{opacity:1;visibility:visible;border-color:var(--accent-blue);transform:translate(-50%)translateY(-5px)}.swimlane-time-axis{height:50px;margin-left:200px;display:flex;position:relative}.swimlane-axis-tick{color:var(--text-muted);flex-direction:column;align-items:center;gap:6px;font-size:11px;font-weight:600;display:flex;position:absolute;bottom:0;transform:translate(-50%)}.swimlane-axis-tick:before{content:"";background-color:var(--border-color);width:1px;height:10px}
