:root{color-scheme:dark}*{box-sizing:border-box}html,body,#root{margin:0;width:100%;min-height:100%}body{font-family:Avenir Next,Trebuchet MS,Segoe UI,sans-serif;background:radial-gradient(1200px 600px at 15% 10%,rgba(58,91,255,.25),transparent 60%),radial-gradient(1000px 500px at 90% 30%,rgba(24,180,124,.22),transparent 60%),#050b18;color:#e2e8f0}a{color:inherit;text-decoration:none}.app-shell{min-height:100vh}.app-header{position:sticky;top:0;z-index:20;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#040c1bd9;border-bottom:1px solid rgba(255,255,255,.08)}.app-header-inner{width:min(1880px,98vw);margin:0 auto;display:flex;align-items:center;justify-content:space-between;min-height:64px;gap:16px}.app-logo{font-weight:700;letter-spacing:.01em;color:#8fa9ff}.app-nav{display:flex;gap:10px}.app-nav-link{padding:8px 12px;border-radius:8px;color:#cbd5e1}.app-nav-link:hover,.app-nav-link.active{background:#6366f140;color:#f8fafc}.app-main{width:min(1880px,98vw);margin:0 auto;padding:14px 0 20px}.page{display:flex;flex-direction:column;gap:14px}.page-home{gap:16px}.hero-card{background:#0a142be6;border:1px solid rgba(255,255,255,.12);border-radius:16px;padding:28px}.hero-card h1{margin:10px 0;font-size:clamp(1.8rem,3.2vw,2.8rem)}.hero-card p{margin:0;color:#94a3b8}.hero-badge{display:inline-block;border-radius:999px;padding:6px 12px;font-size:.85rem;border:1px solid rgba(99,102,241,.5);background:#6366f126}.hero-actions{display:flex;gap:10px;margin-top:18px}.btn-primary,.btn-secondary,.toolbar button,.toolbar a{border:1px solid rgba(255,255,255,.16);border-radius:11px;background:#0f172acc;color:#e2e8f0;font-size:.96rem;padding:9px 14px;cursor:pointer;white-space:nowrap}.toolbar button:disabled,.btn-primary:disabled,.btn-secondary:disabled{opacity:.5;cursor:not-allowed}.btn-primary{background:linear-gradient(135deg,#4f46e5,#2563eb);border-color:#fff3}.btn-secondary{background:#1e293be6}.toolbar{display:flex;align-items:center;flex-wrap:wrap;gap:10px;padding:11px;border-radius:12px;background:#091834d6;border:1px solid rgba(255,255,255,.1)}.toolbar button.active{background:#235fd7c7}.toolbar-comfort{display:flex;align-items:center;gap:10px}.toolbar-group{display:flex;flex-wrap:wrap;align-items:center;gap:8px}.toolbar-group button,.toolbar-group a{display:inline-flex;align-items:center;justify-content:center}.toolbar-spacer{flex:1}.toolbar-zoom{background:#061026cc;border:1px solid rgba(255,255,255,.1);border-radius:10px;padding:4px}.toolbar-zoom button{min-width:38px;text-align:center}.zoom-pill{display:inline-flex;align-items:center;justify-content:center;min-width:66px;height:36px;border-radius:8px;border:1px solid rgba(255,255,255,.12);background:#08132ae6;font-size:.9rem;color:#dbe7ff}.workflow-grid{display:grid;gap:12px;grid-template-columns:repeat(3,minmax(0,1fr))}.workflow-card{background:#0a142be0;border:1px solid rgba(255,255,255,.1);border-radius:14px;padding:18px}.workflow-card p{margin:6px 0 0;color:#94a3b8}.workspace-grid{display:grid;gap:12px;grid-template-columns:290px minmax(0,1fr) 340px;min-height:calc(100vh - 210px)}.simulation-grid{display:grid;gap:12px;grid-template-columns:minmax(0,1.65fr) minmax(350px,430px);min-height:calc(100vh - 210px)}.analytics-grid{display:grid;gap:12px;grid-template-columns:minmax(0,1.45fr) minmax(370px,470px);min-height:calc(100vh - 210px)}.panel{border-radius:14px;background:#0a142be6;border:1px solid rgba(255,255,255,.1);display:flex;flex-direction:column;min-height:0}.panel h3{margin:0;padding:14px 14px 0;font-size:.95rem;text-transform:uppercase;letter-spacing:.05em;color:#94a3b8}.panel-body{flex:1;min-height:0;padding:10px;overflow:auto}.canvas-area{position:relative;border-radius:14px;overflow:hidden;border:1px solid rgba(255,255,255,.12);background:linear-gradient(180deg,#010e24d9,#020818e6);min-height:calc(100vh - 210px)}.editor-canvas{display:block;width:100%;height:100%;min-height:calc(100vh - 210px);background:#020817}.page-playground .workspace-grid{height:clamp(520px,calc(100vh - 280px),760px);min-height:520px;align-items:stretch}.page-playground .canvas-area,.page-playground .editor-canvas{min-height:0;height:100%}.canvas-meta{position:absolute;left:10px;bottom:10px;padding:6px 10px;border-radius:8px;background:#020617d9;border:1px solid rgba(255,255,255,.15);font-size:.82rem;color:#cbd5e1}.canvas-empty-state{position:absolute;top:0;right:0;bottom:0;left:0;display:grid;place-content:center;gap:14px;text-align:center;background:radial-gradient(900px 300px at 50% 50%,#1a2e5673,#010713e0);z-index:3;padding:22px}.canvas-empty-state h4{margin:0;font-size:1.25rem;color:#dbe7ff}.canvas-empty-state p{margin:0;color:#9fb3d9}.canvas-empty-actions{display:flex;flex-wrap:wrap;gap:10px;justify-content:center}.canvas-empty-actions button{border:1px solid rgba(255,255,255,.2);border-radius:10px;background:#101d37e6;color:#e2e8f0;font-size:.95rem;padding:9px 14px;cursor:pointer}.canvas-empty-actions button:hover{background:#2563eb73}.status-row{display:flex;gap:14px;align-items:center;flex-wrap:wrap;border-radius:10px;padding:10px 12px;background:#0a142bd9;border:1px solid rgba(255,255,255,.1);color:#cbd5e1}.status-row span:first-child{font-weight:600;color:#e2ecff}.status-pill{border-radius:999px;padding:4px 10px;font-size:.8rem;border:1px solid rgba(255,255,255,.18)}.status-pill.ok{background:#22c55e33;color:#bbf7d0}.status-pill.warn{background:#f59e0b33;color:#fde68a}.status-pill.info{background:#3b82f63d;color:#bfdbfe}.status-pill.neutral{background:#94a3b82e;color:#e2e8f0}.home-grid{display:grid;gap:12px;grid-template-columns:repeat(3,minmax(0,1fr))}.home-hero-layout{display:grid;gap:14px;grid-template-columns:minmax(0,1.65fr) minmax(320px,1fr)}.home-hero-main{position:relative;overflow:hidden}.home-hero-main:after{content:"";position:absolute;inset:auto -20% -45% 25%;height:320px;background:radial-gradient(closest-side,rgba(37,99,235,.35),transparent 72%);pointer-events:none}.home-hero-copy{max-width:66ch}.home-pill-row{margin-top:14px;display:flex;flex-wrap:wrap;gap:8px}.home-pill{display:inline-flex;align-items:center;border-radius:999px;padding:5px 11px;border:1px solid rgba(148,163,184,.3);background:#0f172acc;color:#c6d7ff;font-size:.78rem;letter-spacing:.01em}.home-hero-panel{border-radius:16px;padding:18px;border:1px solid rgba(255,255,255,.12);background:radial-gradient(500px 180px at 90% 0%,rgba(45,212,191,.2),transparent 70%),#081228f0;display:flex;flex-direction:column;gap:14px}.home-hero-panel h3{margin:0;font-size:1.02rem;color:#dbe7ff}.home-flow-list{margin:0;padding:0;list-style:none;display:grid;gap:10px}.home-flow-list li{display:grid;gap:4px;padding:10px 11px;border-radius:10px;background:#0f1a35b8;border:1px solid rgba(148,163,184,.2)}.home-flow-list strong{font-size:.94rem;color:#dbe7ff}.home-flow-list span{font-size:.87rem;color:#9eb2d9}.home-mini-kpis{display:grid;gap:8px;grid-template-columns:repeat(2,minmax(0,1fr))}.home-mini-kpis article{border-radius:10px;padding:9px 10px;background:#09142de6;border:1px solid rgba(148,163,184,.25);display:grid;gap:3px}.home-mini-kpis strong{font-size:1.05rem;color:#f1f5ff}.home-mini-kpis span{font-size:.78rem;color:#aab9d6}.home-panel-cta{width:fit-content}.home-section{display:grid;gap:12px}.home-section-header h2{margin:0;font-size:1.22rem}.home-section-header p{margin:4px 0 0;color:#9db0d5}.home-scenario-grid{display:grid;gap:12px;grid-template-columns:repeat(3,minmax(0,1fr))}.home-card{background:#0a142be0;border:1px solid rgba(255,255,255,.1);border-radius:14px;padding:16px;display:flex;flex-direction:column;gap:10px}.home-card h3{margin:0}.home-card p{margin:0;color:#9db0d5}.scenario-card{border-color:#4d75be6b;background:radial-gradient(600px 180px at 80% 0%,rgba(37,99,235,.15),transparent 70%),#0a142be6}.scenario-badge{width:fit-content;font-size:.72rem;letter-spacing:.03em;text-transform:uppercase;padding:4px 8px;border-radius:999px;border:1px solid rgba(96,165,250,.45);background:#1e40af40;color:#cfe2ff}.scenario-outcome{color:#d6e4ff;font-size:.88rem;min-height:40px}.scenario-launch{margin-top:auto;width:fit-content}.control-group{padding:10px 14px}.control-group label{display:block;margin-bottom:6px;color:#94a3b8;font-size:.85rem}.control-group select{width:100%;background:#0f172ad9;color:#e2e8f0;border:1px solid rgba(255,255,255,.14);border-radius:8px;padding:8px}.speed-row{display:flex;gap:8px;flex-wrap:wrap}.kv-list{padding:8px 14px 14px;display:grid;gap:8px}.kv-list div{display:flex;justify-content:space-between;gap:10px;border-bottom:1px dashed rgba(255,255,255,.1);padding-bottom:6px}.kv-list span{color:#94a3b8}.kv-list strong{color:#f8fafc;text-align:right}.panel-message{margin:0;padding:8px 14px;color:#cbd5e1}.talker-list{margin:0;padding:0 14px 14px;list-style:none;display:grid;gap:8px}.talker-list li{display:flex;justify-content:space-between;gap:8px}@media (max-width: 1480px){.workspace-grid{grid-template-columns:260px minmax(0,1fr) 320px}.simulation-grid{grid-template-columns:minmax(0,1fr) 340px}.analytics-grid{grid-template-columns:minmax(0,1fr) 390px}.home-hero-layout{grid-template-columns:minmax(0,1.4fr) minmax(300px,1fr)}}@media (max-width: 1180px){.workspace-grid{grid-template-columns:1fr}.page-playground .workspace-grid{height:auto;min-height:0}.page-playground .canvas-area,.page-playground .editor-canvas{height:460px;min-height:460px}.panel-left{max-height:360px}.simulation-grid,.analytics-grid,.home-hero-layout{grid-template-columns:1fr}.home-scenario-grid,.home-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.panel-right{max-height:520px}}@media (max-width: 900px){.workflow-grid,.home-grid,.home-scenario-grid,.workspace-grid,.simulation-grid,.analytics-grid{grid-template-columns:1fr}.editor-canvas,.canvas-area{min-height:430px}.page-playground .canvas-area,.page-playground .editor-canvas{height:430px;min-height:430px}.app-header-inner{flex-direction:column;align-items:flex-start;padding:10px 0}.app-nav{flex-wrap:wrap}.toolbar-group{width:100%}.toolbar-group button,.toolbar-group a,.toolbar-zoom .zoom-pill{flex:1;justify-content:center}.toolbar-spacer{display:none}}:root{--bg-primary: #0a0f1a;--bg-secondary: #0f172a;--bg-tertiary: #1e293b;--bg-elevated: #141b2d;--accent-primary: #6366f1;--accent-secondary: #8b5cf6;--accent-gradient: linear-gradient(135deg, #6366f1, #8b5cf6);--color-success: #22c55e;--color-warning: #f59e0b;--color-danger: #ef4444;--color-info: #0ea5e9;--text-primary: #f8fafc;--text-secondary: #e2e8f0;--text-muted: #94a3b8;--text-dim: #64748b;--border-default: rgba(255, 255, 255, .08);--border-hover: rgba(255, 255, 255, .15);--border-active: rgba(99, 102, 241, .5);--font-family: "Inter", system-ui, -apple-system, sans-serif;--font-mono: "JetBrains Mono", "Fira Code", monospace;--font-size-xs: .6875rem;--font-size-sm: .75rem;--font-size-base: .875rem;--font-size-md: 1rem;--font-size-lg: 1.125rem;--font-size-xl: 1.5rem;--font-size-2xl: 2rem;--font-weight-normal: 400;--font-weight-medium: 500;--font-weight-semibold: 600;--font-weight-bold: 700;--line-height-tight: 1.25;--line-height-normal: 1.5;--line-height-relaxed: 1.75;--space-1: .25rem;--space-2: .5rem;--space-3: .75rem;--space-4: 1rem;--space-5: 1.25rem;--space-6: 1.5rem;--space-8: 2rem;--space-10: 2.5rem;--space-12: 3rem;--radius-sm: 6px;--radius-md: 8px;--radius-lg: 12px;--radius-xl: 16px;--radius-full: 9999px;--shadow-sm: 0 1px 2px rgba(0, 0, 0, .3);--shadow-md: 0 4px 6px rgba(0, 0, 0, .3);--shadow-lg: 0 10px 25px rgba(0, 0, 0, .4);--shadow-xl: 0 20px 50px rgba(0, 0, 0, .5);--shadow-glow: 0 0 20px rgba(99, 102, 241, .3);--transition-fast: .15s ease;--transition-normal: .2s ease;--transition-slow: .3s ease;--transition-bounce: .3s cubic-bezier(.34, 1.56, .64, 1);--z-base: 1;--z-dropdown: 10;--z-sticky: 100;--z-modal: 1000;--z-toast: 10000;--breakpoint-sm: 640px;--breakpoint-md: 768px;--breakpoint-lg: 1024px;--breakpoint-xl: 1280px}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html{font-size:16px;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}body{font-family:var(--font-family);font-size:var(--font-size-base);line-height:var(--line-height-normal);color:var(--text-primary);background:var(--bg-primary)}.text-xs{font-size:var(--font-size-xs)}.text-sm{font-size:var(--font-size-sm)}.text-base{font-size:var(--font-size-base)}.text-md{font-size:var(--font-size-md)}.text-lg{font-size:var(--font-size-lg)}.text-xl{font-size:var(--font-size-xl)}.text-2xl{font-size:var(--font-size-2xl)}.font-normal{font-weight:var(--font-weight-normal)}.font-medium{font-weight:var(--font-weight-medium)}.font-semibold{font-weight:var(--font-weight-semibold)}.font-bold{font-weight:var(--font-weight-bold)}.text-primary{color:var(--text-primary)}.text-secondary{color:var(--text-secondary)}.text-muted{color:var(--text-muted)}.text-dim{color:var(--text-dim)}.text-gradient{background:var(--accent-gradient);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.flex{display:flex}.flex-col{flex-direction:column}.flex-wrap{flex-wrap:wrap}.items-center{align-items:center}.items-start{align-items:flex-start}.items-end{align-items:flex-end}.justify-center{justify-content:center}.justify-between{justify-content:space-between}.justify-end{justify-content:flex-end}.flex-1{flex:1}.gap-1{gap:var(--space-1)}.gap-2{gap:var(--space-2)}.gap-3{gap:var(--space-3)}.gap-4{gap:var(--space-4)}.gap-6{gap:var(--space-6)}.grid{display:grid}.grid-cols-2{grid-template-columns:repeat(2,1fr)}.grid-cols-3{grid-template-columns:repeat(3,1fr)}.grid-cols-4{grid-template-columns:repeat(4,1fr)}.p-1{padding:var(--space-1)}.p-2{padding:var(--space-2)}.p-3{padding:var(--space-3)}.p-4{padding:var(--space-4)}.p-6{padding:var(--space-6)}.m-1{margin:var(--space-1)}.m-2{margin:var(--space-2)}.m-3{margin:var(--space-3)}.m-4{margin:var(--space-4)}.mb-2{margin-bottom:var(--space-2)}.mb-3{margin-bottom:var(--space-3)}.mb-4{margin-bottom:var(--space-4)}.mb-6{margin-bottom:var(--space-6)}.btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--space-2);padding:var(--space-2) var(--space-4);font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);border-radius:var(--radius-md);border:none;cursor:pointer;transition:all var(--transition-normal);white-space:nowrap}.btn:hover{transform:translateY(-1px)}.btn:active{transform:translateY(0)}.btn-primary{background:var(--accent-gradient);color:#fff;box-shadow:var(--shadow-sm)}.btn-primary:hover{box-shadow:var(--shadow-glow)}.btn-secondary{background:#ffffff14;color:var(--text-secondary);border:1px solid var(--border-default)}.btn-secondary:hover{background:#ffffff1f;border-color:var(--border-hover)}.btn-success{background:linear-gradient(135deg,var(--color-success),#16a34a);color:#fff}.btn-danger{background:linear-gradient(135deg,var(--color-danger),#dc2626);color:#fff}.btn-warning{background:linear-gradient(135deg,var(--color-warning),#d97706);color:var(--bg-primary)}.btn-ghost{background:transparent;color:var(--text-muted)}.btn-ghost:hover{background:#ffffff0d;color:var(--text-primary)}.btn-icon{width:36px;height:36px;padding:0;border-radius:var(--radius-md)}.btn-sm{padding:var(--space-1) var(--space-3);font-size:var(--font-size-xs)}.btn-lg{padding:var(--space-3) var(--space-6);font-size:var(--font-size-base)}.card{background:var(--bg-elevated);border:1px solid var(--border-default);border-radius:var(--radius-lg);padding:var(--space-4)}.panel{background:#ffffff05;border:1px solid var(--border-default);border-radius:var(--radius-lg);padding:var(--space-4)}.glass{background:#0f172acc;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border:1px solid var(--border-default)}.input{width:100%;padding:var(--space-2) var(--space-3);font-size:var(--font-size-base);color:var(--text-primary);background:#ffffff0d;border:1px solid var(--border-default);border-radius:var(--radius-md);transition:all var(--transition-fast)}.input:focus{outline:none;border-color:var(--accent-primary);box-shadow:0 0 0 3px #6366f133}.input::placeholder{color:var(--text-dim)}.select{-webkit-appearance:none;-moz-appearance:none;appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' fill='%2394a3b8'%3E%3Cpath d='M6 8L1 3h10z'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 12px center;padding-right:36px}.label{display:block;font-size:var(--font-size-xs);font-weight:var(--font-weight-medium);color:var(--text-muted);text-transform:uppercase;letter-spacing:.05em;margin-bottom:var(--space-2)}.range{-webkit-appearance:none;width:100%;height:6px;background:#ffffff1a;border-radius:var(--radius-full);cursor:pointer}.range::-webkit-slider-thumb{-webkit-appearance:none;width:16px;height:16px;background:var(--accent-gradient);border-radius:var(--radius-full);cursor:pointer;transition:transform var(--transition-fast)}.range::-webkit-slider-thumb:hover{transform:scale(1.2)}.badge{display:inline-flex;align-items:center;gap:var(--space-1);padding:var(--space-1) var(--space-2);font-size:var(--font-size-xs);font-weight:var(--font-weight-medium);border-radius:var(--radius-full);background:#ffffff1a;color:var(--text-secondary)}.badge-success{background:#22c55e26;color:var(--color-success)}.badge-warning{background:#f59e0b26;color:var(--color-warning)}.badge-danger{background:#ef444426;color:var(--color-danger)}.tooltip{position:relative}.tooltip:after{content:attr(data-tooltip);position:absolute;bottom:calc(100% + 8px);left:50%;transform:translate(-50%) scale(.9);padding:var(--space-2) var(--space-3);font-size:var(--font-size-xs);color:var(--text-primary);background:var(--bg-tertiary);border-radius:var(--radius-md);white-space:nowrap;opacity:0;pointer-events:none;transition:all var(--transition-fast);z-index:var(--z-dropdown)}.tooltip:hover:after{opacity:1;transform:translate(-50%) scale(1)}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes slideUp{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}@keyframes slideIn{0%{opacity:0;transform:translate(20px)}to{opacity:1;transform:translate(0)}}@keyframes pulse{0%,to{opacity:1}50%{opacity:.5}}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@keyframes bounce{0%,to{transform:translateY(0)}50%{transform:translateY(-5px)}}@keyframes glow{0%,to{box-shadow:0 0 5px var(--accent-primary)}50%{box-shadow:0 0 20px var(--accent-primary)}}.animate-fade-in{animation:fadeIn var(--transition-normal) ease}.animate-slide-up{animation:slideUp var(--transition-slow) ease}.animate-slide-in{animation:slideIn var(--transition-slow) ease}.animate-pulse{animation:pulse 2s infinite}.animate-spin{animation:spin 1s linear infinite}.animate-bounce{animation:bounce 1s ease infinite}.animate-glow{animation:glow 2s ease infinite}@media (max-width: 1024px){.lg\:hide{display:none!important}}@media (max-width: 768px){.md\:hide{display:none!important}.md\:flex-col{flex-direction:column}.md\:grid-cols-1{grid-template-columns:1fr}}@media (max-width: 640px){.sm\:hide{display:none!important}.sm\:text-sm{font-size:var(--font-size-sm)}}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-track{background:var(--bg-secondary)}::-webkit-scrollbar-thumb{background:var(--bg-tertiary);border-radius:var(--radius-full)}::-webkit-scrollbar-thumb:hover{background:var(--text-dim)}::selection{background:#6366f14d;color:#fff}:focus-visible{outline:2px solid var(--accent-primary);outline-offset:2px}.btn-ripple{position:relative;overflow:hidden}.btn-ripple:after{content:"";position:absolute;width:100%;height:100%;top:0;left:0;pointer-events:none;background-image:radial-gradient(circle,rgba(255,255,255,.3) 10%,transparent 10%);background-repeat:no-repeat;background-position:50%;transform:scale(10);opacity:0;transition:transform .5s,opacity .5s}.btn-ripple:active:after{transform:scale(0);opacity:1;transition:0s}.btn-magnetic{transition:transform .3s cubic-bezier(.25,.46,.45,.94)}.btn-press:active{transform:scale(.96)!important}.btn-shine{position:relative;overflow:hidden}.btn-shine:before{content:"";position:absolute;top:0;left:-100%;width:100%;height:100%;background:linear-gradient(90deg,transparent,rgba(255,255,255,.2),transparent);transition:left .5s}.btn-shine:hover:before{left:100%}.card-lift{transition:transform var(--transition-normal),box-shadow var(--transition-normal)}.card-lift:hover{transform:translateY(-4px);box-shadow:var(--shadow-lg)}.card-tilt{transform-style:preserve-3d;transition:transform .2s}.card-glow{transition:box-shadow var(--transition-normal),border-color var(--transition-normal)}.card-glow:hover{border-color:var(--accent-primary);box-shadow:0 0 20px #6366f133}.input-float-label{position:relative}.input-float-label input{padding-top:20px}.input-float-label label{position:absolute;top:50%;left:12px;transform:translateY(-50%);font-size:var(--font-size-base);color:var(--text-dim);pointer-events:none;transition:all var(--transition-fast)}.input-float-label input:focus+label,.input-float-label input:not(:placeholder-shown)+label{top:8px;font-size:var(--font-size-xs);color:var(--accent-primary)}.input-underline{border:none;border-bottom:2px solid var(--border-default);border-radius:0;background:transparent;padding-left:0;padding-right:0}.input-underline:focus{box-shadow:none;border-color:var(--accent-primary)}.list-stagger>*{animation:slideUp .4s ease backwards}.list-stagger>*:nth-child(1){animation-delay:.05s}.list-stagger>*:nth-child(2){animation-delay:.1s}.list-stagger>*:nth-child(3){animation-delay:.15s}.list-stagger>*:nth-child(4){animation-delay:.2s}.list-stagger>*:nth-child(5){animation-delay:.25s}.list-stagger>*:nth-child(6){animation-delay:.3s}.list-stagger>*:nth-child(7){animation-delay:.35s}.list-stagger>*:nth-child(8){animation-delay:.4s}.list-stagger>*:nth-child(9){animation-delay:.45s}.list-stagger>*:nth-child(10){animation-delay:.5s}.list-slide-in>*{animation:slideIn .3s ease backwards}.list-slide-in>*:nth-child(n){animation-delay:calc(var(--index, 1) * .05s)}.skeleton{background:linear-gradient(90deg,var(--bg-tertiary) 25%,var(--bg-elevated) 50%,var(--bg-tertiary) 75%);background-size:200% 100%;animation:skeleton-loading 1.5s ease-in-out infinite;border-radius:var(--radius-md)}@keyframes skeleton-loading{0%{background-position:200% 0}to{background-position:-200% 0}}.loading-pulse{animation:pulse 1.5s ease-in-out infinite}.loading-spinner{width:24px;height:24px;border:3px solid var(--border-default);border-top-color:var(--accent-primary);border-radius:50%;animation:spin .8s linear infinite}.loading-dots{display:flex;gap:4px}.loading-dots span{width:8px;height:8px;background:var(--accent-primary);border-radius:50%;animation:bounce .6s ease infinite}.loading-dots span:nth-child(2){animation-delay:.1s}.loading-dots span:nth-child(3){animation-delay:.2s}.progress-animated{background:linear-gradient(90deg,var(--color-success) 0%,var(--accent-primary) 50%,var(--color-success) 100%);background-size:200% 100%;animation:progress-shimmer 2s linear infinite}@keyframes progress-shimmer{0%{background-position:100% 0}to{background-position:-100% 0}}.progress-circle{width:60px;height:60px;border-radius:50%;background:conic-gradient(var(--accent-primary) var(--progress, 0%),var(--bg-tertiary) var(--progress, 0%));display:flex;align-items:center;justify-content:center}.progress-circle:after{content:"";width:50px;height:50px;background:var(--bg-primary);border-radius:50%}.hover-scale{transition:transform var(--transition-fast)}.hover-scale:hover{transform:scale(1.05)}.hover-rotate{transition:transform var(--transition-normal)}.hover-rotate:hover{transform:rotate(5deg)}.hover-shift{transition:filter var(--transition-normal)}.hover-shift:hover{filter:hue-rotate(20deg) saturate(1.2)}.hover-underline{position:relative}.hover-underline:after{content:"";position:absolute;bottom:-2px;left:0;width:0;height:2px;background:var(--accent-gradient);transition:width var(--transition-normal)}.hover-underline:hover:after{width:100%}.focus-ring:focus{outline:none;box-shadow:0 0 0 3px #6366f166}.focus-glow:focus{outline:none;box-shadow:0 0 15px #6366f180}.scroll-fade{opacity:0;transform:translateY(20px);transition:opacity .6s ease,transform .6s ease}.scroll-fade.visible{opacity:1;transform:translateY(0)}.scroll-scale{opacity:0;transform:scale(.9);transition:opacity .5s ease,transform .5s ease}.scroll-scale.visible{opacity:1;transform:scale(1)}.toast-slide{animation:toastSlideIn .3s ease,toastSlideOut .3s ease 4.7s forwards}@keyframes toastSlideIn{0%{transform:translate(100%);opacity:0}to{transform:translate(0);opacity:1}}@keyframes toastSlideOut{0%{transform:translate(0);opacity:1}to{transform:translate(100%);opacity:0}}.shake{animation:shake .5s ease}@keyframes shake{0%,to{transform:translate(0)}20%{transform:translate(-10px)}40%{transform:translate(10px)}60%{transform:translate(-10px)}80%{transform:translate(10px)}}.icon-bounce:hover{animation:bounce .5s ease}.icon-spin:hover{animation:spin .5s ease}.icon-pulse:hover{animation:pulse .5s ease}.app-layout{display:flex;flex-direction:column;min-height:100vh;overflow:hidden}.app-header{flex-shrink:0;padding:var(--space-3) var(--space-4);background:var(--bg-secondary);border-bottom:1px solid var(--border-default);z-index:var(--z-sticky)}.app-main{flex:1;display:flex;overflow:hidden}.app-sidebar{flex-shrink:0;width:280px;background:var(--bg-secondary);border-right:1px solid var(--border-default);overflow-y:auto;transition:transform var(--transition-normal),width var(--transition-normal)}.app-sidebar-right{border-right:none;border-left:1px solid var(--border-default)}.app-content{flex:1;overflow:hidden;position:relative}.app-footer{flex-shrink:0;padding:var(--space-3) var(--space-4);background:var(--bg-secondary);border-top:1px solid var(--border-default)}.sidebar-collapsed{width:60px}.sidebar-collapsed .sidebar-label{display:none}.sidebar-collapsed .sidebar-icon{margin-right:0}.sidebar-overlay{display:none;position:fixed;top:0;right:0;bottom:0;left:0;background:#00000080;z-index:var(--z-modal)}.header-compact{padding:var(--space-2) var(--space-4)}.header-centered .header-content{max-width:1400px;margin:0 auto}.dashboard-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:var(--space-4);padding:var(--space-4)}.metrics-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:var(--space-3)}.cards-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--space-4)}.container{width:100%;max-width:1400px;margin:0 auto;padding:0 var(--space-4)}.container-sm{max-width:640px}.container-md{max-width:768px}.container-lg{max-width:1024px}.container-xl{max-width:1280px}@media (max-width: 1023px){.app-sidebar{width:240px}.metrics-grid,.cards-grid{grid-template-columns:repeat(2,1fr)}.lg-hide{display:none!important}}@media (max-width: 767px){.app-header{padding:var(--space-2) var(--space-3)}.app-main{flex-direction:column}.app-sidebar{position:fixed;top:0;left:0;height:100vh;width:280px;transform:translate(-100%);z-index:var(--z-modal)}.app-sidebar.open{transform:translate(0)}.app-sidebar-right{transform:translate(100%);left:auto;right:0}.app-sidebar-right.open{transform:translate(0)}.sidebar-overlay.active{display:block}.metrics-grid{grid-template-columns:repeat(2,1fr)}.cards-grid{grid-template-columns:1fr}.md-hide{display:none!important}.md-show{display:block!important}.md-flex{display:flex!important}}@media (max-width: 639px){:root{--font-size-xl: 1.25rem;--font-size-2xl: 1.5rem}.app-header{padding:var(--space-2)}.container{padding:0 var(--space-3)}.dashboard-grid{padding:var(--space-3);gap:var(--space-3)}.metrics-grid{grid-template-columns:1fr 1fr;gap:var(--space-2)}.btn-lg{padding:var(--space-2) var(--space-4);font-size:var(--font-size-sm)}.sm-hide{display:none!important}.sm-show{display:block!important}.sm-full-width{width:100%}.sm-text-center{text-align:center}.sm-flex-col{flex-direction:column}}.mobile-nav{display:none;position:fixed;bottom:0;left:0;right:0;background:var(--bg-secondary);border-top:1px solid var(--border-default);padding:var(--space-2);z-index:var(--z-sticky)}.mobile-nav-items{display:flex;justify-content:space-around;align-items:center}.mobile-nav-item{display:flex;flex-direction:column;align-items:center;gap:var(--space-1);padding:var(--space-2);color:var(--text-muted);text-decoration:none;font-size:var(--font-size-xs);transition:color var(--transition-fast)}.mobile-nav-item.active{color:var(--accent-primary)}.mobile-nav-icon{font-size:20px}@media (max-width: 767px){.mobile-nav{display:block}.app-layout{padding-bottom:60px}}.bottom-sheet{position:fixed;bottom:0;left:0;right:0;background:var(--bg-secondary);border-top-left-radius:var(--radius-xl);border-top-right-radius:var(--radius-xl);padding:var(--space-4);transform:translateY(100%);transition:transform var(--transition-normal);z-index:var(--z-modal);max-height:80vh;overflow-y:auto}.bottom-sheet.open{transform:translateY(0)}.bottom-sheet-handle{width:40px;height:4px;background:var(--bg-tertiary);border-radius:var(--radius-full);margin:0 auto var(--space-4)}.canvas-wrapper{position:relative;width:100%;height:100%;min-height:400px}.canvas-wrapper canvas{width:100%;height:100%;display:block}@media (max-width: 767px){.canvas-wrapper{min-height:300px}}.canvas-controls{position:absolute;bottom:var(--space-4);left:50%;transform:translate(-50%);display:flex;gap:var(--space-2);padding:var(--space-2);background:var(--bg-secondary);border:1px solid var(--border-default);border-radius:var(--radius-lg);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}@media (max-width: 639px){.canvas-controls{bottom:var(--space-2);left:var(--space-2);right:var(--space-2);transform:none;justify-content:center}}.modal{position:fixed;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;padding:var(--space-4);background:#0009;z-index:var(--z-modal);opacity:0;visibility:hidden;transition:opacity var(--transition-normal),visibility var(--transition-normal)}.modal.open{opacity:1;visibility:visible}.modal-content{width:100%;max-width:500px;max-height:90vh;overflow-y:auto;background:var(--bg-secondary);border:1px solid var(--border-default);border-radius:var(--radius-xl);animation:slideUp var(--transition-normal) ease}@media (max-width: 639px){.modal{padding:0;align-items:flex-end}.modal-content{max-width:none;max-height:85vh;border-bottom-left-radius:0;border-bottom-right-radius:0}}@media (pointer: coarse){.btn,.input,.mobile-nav-item{min-height:44px}.btn-icon{min-width:44px;min-height:44px}}@supports (padding: env(safe-area-inset-bottom)){.app-layout{padding-bottom:env(safe-area-inset-bottom)}.mobile-nav{padding-bottom:calc(var(--space-2) + env(safe-area-inset-bottom))}.bottom-sheet{padding-bottom:calc(var(--space-4) + env(safe-area-inset-bottom))}}@media print{.app-sidebar,.mobile-nav,.canvas-controls,.btn{display:none!important}.app-main{display:block}.app-content{width:100%}}
