:root{--font-family:"Instrument Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;--font-mono:"JetBrains Mono", monospace;--bg-app:#f8fafc;--bg-sidebar:#090d16;--bg-surface:#fff;--bg-surface-elevated:#fff;--bg-surface-hover:#f1f5f9;--bg-card:#fff;--border-subtle:#e2e8f0;--border-medium:#cbd5e1;--border-focus:#6366f1;--text-primary:#0f172a;--text-secondary:#475569;--text-muted:#64748b;--text-inverse:#fff;--primary:#6366f1;--primary-hover:#4f46e5;--primary-glow:#6366f12e;--primary-gradient:linear-gradient(135deg, #6366f1 0%, #7c3aed 100%);--success:#059669;--warning:#d97706;--danger:#dc2626;--info:#0284c7;--purple:#9333ea;--pink:#db2777;--shadow-sm:0 1px 3px #0f172a0f, 0 1px 2px #0f172a0a;--shadow-md:0 4px 14px #0f172a14, 0 2px 4px #0f172a08;--shadow-lg:0 16px 36px #0f172a1f, 0 4px 8px #0f172a0a;--shadow-glow:0 0 20px var(--primary-glow);--sidebar-width:250px;--header-height:64px;--radius-sm:6px;--radius-md:10px;--radius-lg:16px;--radius-full:9999px;--transition-fast:.15s ease;--transition-normal:.25s cubic-bezier(.4, 0, .2, 1)}*{box-sizing:border-box;margin:0;padding:0}html,body{font-family:var(--font-family);background-color:var(--bg-app);color:var(--text-primary);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;min-height:100vh;line-height:1.5;overflow-x:hidden}::-webkit-scrollbar{width:7px;height:7px}::-webkit-scrollbar-track{background:0 0}::-webkit-scrollbar-thumb{border-radius:var(--radius-full);background:#0f172a26}::-webkit-scrollbar-thumb:hover{background:#0f172a4d}button,input,select,textarea{font-family:inherit;font-size:inherit;color:inherit}button{cursor:pointer;transition:all var(--transition-fast);background:0 0;border:none;outline:none}button:disabled{opacity:.5;cursor:not-allowed}a{color:inherit;text-decoration:none}.glass-panel{border:1px solid var(--border-subtle);box-shadow:var(--shadow-sm);background:#fff}.glow-primary{box-shadow:0 0 20px var(--primary-glow)}.app-container{background:radial-gradient(circle at 15% 10%, #6366f10a 0%, transparent 40%), radial-gradient(circle at 85% 70%, #8b5cf608 0%, transparent 45%), var(--bg-app);min-height:100vh;display:flex;position:relative}.main-wrapper{flex-direction:column;flex:1;min-width:0;padding-bottom:72px;display:flex}@media (width>=1024px){.main-wrapper{margin-left:var(--sidebar-width);padding-bottom:24px}}.main-content{flex:1;width:100%;max-width:1600px;margin:0 auto;padding:16px}@media (width>=768px){.main-content{padding:24px 32px}}.btn{border-radius:var(--radius-md);transition:all var(--transition-fast);white-space:nowrap;justify-content:center;align-items:center;gap:8px;padding:8px 16px;font-size:.875rem;font-weight:600;display:inline-flex}.btn-primary{background:var(--primary-gradient);color:#fff;box-shadow:0 2px 8px var(--primary-glow)}.btn-primary:hover:not(:disabled){transform:translateY(-1px);box-shadow:0 4px 14px #6366f159}.btn-secondary{color:var(--text-primary);border:1px solid var(--border-subtle);background:#fff;box-shadow:0 1px 2px #0f172a0d}.btn-secondary:hover:not(:disabled){background:var(--bg-surface-hover);border-color:var(--border-medium)}.btn-ghost{color:var(--text-secondary)}.btn-ghost:hover:not(:disabled){color:var(--text-primary);background:#0f172a0f}.btn-icon{border-radius:var(--radius-md);width:36px;height:36px;color:var(--text-secondary);justify-content:center;align-items:center;padding:0;display:inline-flex}.btn-icon:hover{color:var(--text-primary);background:#0f172a0f}.btn-danger{color:#dc2626;background:#dc262614;border:1px solid #dc262633}.btn-danger:hover{background:#dc262626}.badge{border-radius:var(--radius-full);letter-spacing:.02em;text-transform:uppercase;align-items:center;gap:5px;padding:3px 9px;font-size:.72rem;font-weight:600;display:inline-flex}.badge-dot{border-radius:50%;width:6px;height:6px}.form-group{flex-direction:column;gap:6px;margin-bottom:16px;display:flex}.form-label{color:var(--text-secondary);justify-content:space-between;align-items:center;font-size:.8rem;font-weight:600;display:flex}.form-input,.form-select,.form-textarea{border:1px solid var(--border-medium);border-radius:var(--radius-md);width:100%;color:var(--text-primary);transition:border-color var(--transition-fast), box-shadow var(--transition-fast);background:#fff;padding:10px 14px;font-size:.9rem}.form-input:focus,.form-select:focus,.form-textarea:focus{border-color:var(--primary);box-shadow:0 0 0 3px var(--primary-glow);outline:none}.form-input::placeholder,.form-textarea::placeholder{color:var(--text-muted)}.form-row{grid-template-columns:1fr;gap:12px;display:grid}@media (width>=640px){.form-row{grid-template-columns:repeat(2,1fr)}}.modal-backdrop{-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);z-index:100;background:#0f172a99;justify-content:center;align-items:center;padding:16px;animation:.2s ease-out fadeIn;display:flex;position:fixed;inset:0}.modal-content{border:1px solid var(--border-subtle);border-radius:var(--radius-lg);width:100%;max-width:640px;max-height:90vh;box-shadow:var(--shadow-lg);background:#fff;animation:.25s ease-out slideUp;overflow-y:auto}.modal-header{border-bottom:1px solid var(--border-subtle);z-index:10;background:#fff;justify-content:space-between;align-items:center;padding:20px 24px;display:flex;position:sticky;top:0}.modal-title{color:var(--text-primary);font-size:1.15rem;font-weight:700}.modal-body{padding:24px}.modal-footer{border-top:1px solid var(--border-subtle);background:#f8fafc;justify-content:flex-end;align-items:center;gap:12px;padding:16px 24px;display:flex}.drawer-backdrop{-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);z-index:90;background:#0f172a80;animation:.2s ease-out fadeIn;position:fixed;inset:0}.drawer-panel{border-left:1px solid var(--border-subtle);z-index:95;background:#fff;flex-direction:column;width:100%;max-width:680px;animation:.25s cubic-bezier(.16,1,.3,1) slideLeft;display:flex;position:fixed;top:0;bottom:0;right:0;box-shadow:-10px 0 35px #0f172a1f}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes slideUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}@keyframes slideLeft{0%{transform:translate(100%)}to{transform:translate(0)}}.shimmer{background:linear-gradient(90deg,#0f172a08 25%,#0f172a14 50%,#0f172a08 75%) 0 0/200% 100%;animation:1.5s infinite shimmer}@keyframes shimmer{0%{background-position:-200% 0}to{background-position:200% 0}}
