:root{--bg-base: #0f1117;--bg-surface: #1a1d27;--bg-elevated: #242736;--bg-hover: #2d3044;--bg-active: #353858;--border: #2e3248;--border-subtle: #252838;--text-primary: #e8eaf0;--text-secondary: #9499b3;--text-muted: #5c6080;--text-inverse: #0f1117;--accent-blue: #4f7cff;--accent-blue-hover: #6b92ff;--accent-blue-dim: rgba(79, 124, 255, .15);--accent-green: #34d399;--accent-green-dim: rgba(52, 211, 153, .15);--accent-yellow: #fbbf24;--accent-yellow-dim: rgba(251, 191, 36, .15);--accent-red: #f87171;--accent-red-dim: rgba(248, 113, 113, .15);--accent-purple: #a78bfa;--accent-purple-dim: rgba(167, 139, 250, .15);--accent-orange: #fb923c;--accent-orange-dim: rgba(251, 146, 60, .15);--sidebar-width: 240px;--topbar-height: 60px;--radius-sm: 6px;--radius-md: 10px;--radius-lg: 14px;--shadow-sm: 0 1px 3px rgba(0,0,0,.4);--shadow-md: 0 4px 12px rgba(0,0,0,.5);--shadow-lg: 0 8px 24px rgba(0,0,0,.6);--font-sans: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;--font-mono: "Fira Code", "Cascadia Code", Consolas, monospace;color-scheme:dark}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html,body,#root{height:100%;width:100%}body{font-family:var(--font-sans);background:var(--bg-base);color:var(--text-primary);font-size:14px;line-height:1.6;-webkit-font-smoothing:antialiased}a{color:var(--accent-blue);text-decoration:none}a:hover{text-decoration:underline}button{font-family:inherit;cursor:pointer}input,textarea,select{font-family:inherit;font-size:inherit}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-track{background:var(--bg-base)}::-webkit-scrollbar-thumb{background:var(--border);border-radius:3px}::-webkit-scrollbar-thumb:hover{background:var(--text-muted)}.flex{display:flex}.flex-col{flex-direction:column}.items-center{align-items:center}.justify-between{justify-content:space-between}.justify-center{justify-content:center}.gap-2{gap:8px}.gap-3{gap:12px}.gap-4{gap:16px}.flex-1{flex:1}.min-w-0{min-width:0}.truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.form-group{display:flex;flex-direction:column;gap:6px}.form-label{font-size:13px;font-weight:500;color:var(--text-secondary)}.form-input,.form-textarea,.form-select{width:100%;padding:9px 12px;background:var(--bg-base);border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--text-primary);font-size:14px;transition:border-color .15s;outline:none}.form-input:focus,.form-textarea:focus,.form-select:focus{border-color:var(--accent-blue);box-shadow:0 0 0 3px var(--accent-blue-dim)}.form-input::placeholder,.form-textarea::placeholder{color:var(--text-muted)}.form-textarea{resize:vertical;min-height:80px}.form-select{appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12'%3E%3Cpath fill='%239499b3' d='M6 8L1 3h10z'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 10px center;padding-right:32px;cursor:pointer}@keyframes spin{to{transform:rotate(360deg)}}@keyframes fadeIn{0%{opacity:0;transform:translateY(4px)}to{opacity:1;transform:translateY(0)}}@keyframes pulse{0%,to{opacity:1}50%{opacity:.5}}.animate-spin{animation:spin .8s linear infinite}.animate-fade-in{animation:fadeIn .2s ease-out}.animate-pulse{animation:pulse 2s ease-in-out infinite}.page-container{padding:24px;max-width:1200px}.page-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:24px}.page-title{font-size:22px;font-weight:600;color:var(--text-primary)}@media(max-width:768px){.sidebar-overlay{display:block!important}.sidebar{transform:translate(-100%);transition:transform .25s ease}.sidebar.open{transform:translate(0)}.page-container{padding:16px}}
