@import"https://fonts.googleapis.com/css2?family=Inter:ital,wght@0,300;0,400;0,500;0,600;0,700;1,400&family=JetBrains+Mono:wght@400;500&display=swap";:root{--brand-50: #eef2ff;--brand-100: #e0e7ff;--brand-200: #c7d2fe;--brand-300: #a5b4fc;--brand-400: #818cf8;--brand-500: #6366f1;--brand-600: #4f46e5;--brand-700: #4338ca;--brand-800: #3730a3;--brand-900: #312e81;--emerald: #10b981;--amber: #f59e0b;--rose: #f43f5e;--sky: #0ea5e9;--violet: #8b5cf6;--gray-0: #ffffff;--gray-25: #fafafa;--gray-50: #f5f5f7;--gray-100: #ebebed;--gray-200: #d9d9de;--gray-300: #c2c2ca;--gray-400: #9898a6;--gray-500: #6e6e80;--gray-600: #50505f;--gray-700: #3a3a47;--gray-800: #26262f;--gray-900: #17171e;--gray-950: #0d0d12;--bg-base: var(--gray-50);--bg-surface: var(--gray-0);--bg-elevated: var(--gray-0);--bg-subtle: var(--gray-50);--bg-muted: var(--gray-100);--bg-overlay: rgba(255,255,255,.75);--border: var(--gray-200);--border-subtle: var(--gray-100);--border-strong: var(--gray-300);--text-1: var(--gray-900);--text-2: var(--gray-500);--text-3: var(--gray-400);--text-inverse: var(--gray-0);--text-brand: var(--brand-600);--shadow-xs: 0 1px 2px rgba(0,0,0,.04);--shadow-sm: 0 1px 3px rgba(0,0,0,.07), 0 1px 2px rgba(0,0,0,.04);--shadow-md: 0 4px 8px rgba(0,0,0,.06), 0 2px 4px rgba(0,0,0,.04);--shadow-lg: 0 10px 20px rgba(0,0,0,.06), 0 4px 8px rgba(0,0,0,.03);--shadow-xl: 0 24px 40px rgba(0,0,0,.07), 0 8px 16px rgba(0,0,0,.04);--ring-brand: 0 0 0 3px rgba(99,102,241,.18);--glass-bg: rgba(255,255,255,.68);--glass-border: rgba(255,255,255,.55);--glass-blur: blur(20px) saturate(180%);--r-xs: 4px;--r-sm: 6px;--r-md: 10px;--r-lg: 14px;--r-xl: 20px;--r-2xl: 28px;--r-full: 9999px;--sidebar-w: 240px;--sidebar-mini: 64px;--topbar-h: 60px;--font-sans: "Inter", system-ui, -apple-system, sans-serif;--font-mono: "JetBrains Mono", "Fira Code", monospace;--ease-fast: .12s cubic-bezier(.4,0,.2,1);--ease-base: .2s cubic-bezier(.4,0,.2,1);--ease-slow: .35s cubic-bezier(.4,0,.2,1);--ease-spring: .42s cubic-bezier(.34,1.56,.64,1)}[data-theme=dark]{--bg-base: #0d0d12;--bg-surface: #17171e;--bg-elevated: #26262f;--bg-subtle: #17171e;--bg-muted: #26262f;--bg-overlay: rgba(13,13,18,.82);--border: rgba(255,255,255,.08);--border-subtle: rgba(255,255,255,.04);--border-strong: rgba(255,255,255,.14);--text-1: #f5f5f7;--text-2: #9898a6;--text-3: #6e6e80;--text-inverse: #17171e;--text-brand: #818cf8;--shadow-xs: 0 1px 2px rgba(0,0,0,.4);--shadow-sm: 0 1px 3px rgba(0,0,0,.5), 0 1px 2px rgba(0,0,0,.3);--shadow-md: 0 4px 8px rgba(0,0,0,.4), 0 2px 4px rgba(0,0,0,.3);--shadow-lg: 0 10px 20px rgba(0,0,0,.5), 0 4px 8px rgba(0,0,0,.3);--shadow-xl: 0 24px 40px rgba(0,0,0,.6), 0 8px 16px rgba(0,0,0,.4);--glass-bg: rgba(22,22,30,.75);--glass-border: rgba(255,255,255,.07)}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html{font-size:16px;-webkit-text-size-adjust:100%;scroll-behavior:smooth}body{font-family:var(--font-sans);font-size:.9375rem;line-height:1.6;color:var(--text-1);background:var(--bg-base);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;transition:background var(--ease-base),color var(--ease-base);min-height:100dvh}a{color:inherit;text-decoration:none}button{cursor:pointer;border:none;background:none;font-family:inherit;line-height:1}img,svg{max-width:100%;display:block}::-webkit-scrollbar{width:5px;height:5px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:var(--gray-300);border-radius:var(--r-full)}[data-theme=dark] ::-webkit-scrollbar-thumb{background:var(--gray-700)}h1{font-size:1.75rem;font-weight:700;line-height:1.2;letter-spacing:-.025em}h2{font-size:1.375rem;font-weight:600;line-height:1.3;letter-spacing:-.02em}h3{font-size:1.125rem;font-weight:600;line-height:1.4}h4{font-size:.9375rem;font-weight:600;line-height:1.5}.btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;height:36px;padding:0 14px;font-size:.8125rem;font-weight:500;font-family:var(--font-sans);border-radius:var(--r-md);transition:all var(--ease-fast);white-space:nowrap;-webkit-user-select:none;user-select:none;outline:none;cursor:pointer}.btn:disabled{opacity:.45;cursor:not-allowed;pointer-events:none}.btn-primary{background:var(--brand-500);color:#fff;box-shadow:0 1px 3px #6366f14d}.btn-primary:hover{background:var(--brand-600);box-shadow:0 4px 12px #6366f159;transform:translateY(-1px)}.btn-primary:active{transform:translateY(0);box-shadow:none}.btn-secondary{background:var(--bg-surface);color:var(--text-1);border:1px solid var(--border);box-shadow:var(--shadow-xs)}.btn-secondary:hover{background:var(--bg-muted);border-color:var(--border-strong)}.btn-ghost{background:transparent;color:var(--text-2)}.btn-ghost:hover{background:var(--bg-muted);color:var(--text-1)}.btn-danger{background:var(--rose);color:#fff}.btn-danger:hover{filter:brightness(1.08);transform:translateY(-1px)}.btn-success{background:var(--emerald);color:#fff}.btn-success:hover{filter:brightness(1.08);transform:translateY(-1px)}.btn-warning{background:var(--amber);color:#fff}.btn-sm{height:30px;padding:0 10px;font-size:.75rem;border-radius:var(--r-sm)}.btn-lg{height:44px;padding:0 20px;font-size:1rem;border-radius:var(--r-lg)}.btn-xl{height:52px;padding:0 28px;font-size:1.0625rem;border-radius:var(--r-xl)}.btn-icon{width:36px;padding:0}.btn-icon.btn-sm{width:30px}.btn-icon.btn-lg{width:44px}.input{width:100%;height:38px;padding:0 12px;font-size:.875rem;font-family:var(--font-sans);color:var(--text-1);background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--r-md);transition:border-color var(--ease-fast),box-shadow var(--ease-fast);outline:none}.input::placeholder{color:var(--text-3)}.input:focus{border-color:var(--brand-400);box-shadow:var(--ring-brand)}.input:disabled{background:var(--bg-muted);color:var(--text-3);cursor:not-allowed}.input.error{border-color:var(--rose)}.input.error:focus{box-shadow:0 0 0 3px #f43f5e29}.input-sm{height:32px;padding:0 10px;font-size:.8125rem}.input-lg{height:44px;padding:0 16px;font-size:1rem}textarea.input{height:auto;padding:10px 12px;resize:vertical;min-height:80px}select.input{cursor:pointer}.label{display:block;font-size:.8125rem;font-weight:500;color:var(--text-2);margin-bottom:5px}.field{display:flex;flex-direction:column}.field-hint{font-size:.75rem;color:var(--text-3);margin-top:4px}.field-error{font-size:.75rem;color:var(--rose);margin-top:4px}.card{background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--r-lg);box-shadow:var(--shadow-sm)}.card-elevated{background:var(--bg-elevated);border:1px solid var(--border-subtle);border-radius:var(--r-lg);box-shadow:var(--shadow-md)}.glass{background:var(--glass-bg);backdrop-filter:var(--glass-blur);-webkit-backdrop-filter:var(--glass-blur);border:1px solid var(--glass-border);border-radius:var(--r-lg)}.badge{display:inline-flex;align-items:center;gap:4px;height:22px;padding:0 8px;font-size:.6875rem;font-weight:600;letter-spacing:.02em;border-radius:var(--r-full);white-space:nowrap}.badge-brand{background:var(--brand-50);color:var(--brand-700)}.badge-success{background:#ecfdf5;color:#065f46}.badge-warning{background:#fffbeb;color:#92400e}.badge-danger{background:#fff1f2;color:#9f1239}.badge-info{background:#f0f9ff;color:#075985}.badge-neutral{background:var(--bg-muted);color:var(--text-2)}[data-theme=dark] .badge-brand{background:#6366f126;color:#a5b4fc}[data-theme=dark] .badge-success{background:#10b9811f;color:#6ee7b7}[data-theme=dark] .badge-warning{background:#f59e0b1f;color:#fcd34d}[data-theme=dark] .badge-danger{background:#f43f5e1f;color:#fda4af}[data-theme=dark] .badge-info{background:#0ea5e91f;color:#7dd3fc}.dot{width:8px;height:8px;border-radius:var(--r-full);display:inline-block;flex-shrink:0}.dot-success{background:var(--emerald)}.dot-warning{background:var(--amber)}.dot-danger{background:var(--rose)}.dot-brand{background:var(--brand-500)}.dot-gray{background:var(--gray-400)}.dot-pulse{animation:dotPulse 2s ease infinite}@keyframes dotPulse{0%,to{opacity:1;transform:scale(1)}50%{opacity:.5;transform:scale(.85)}}.table-wrap{width:100%;overflow-x:auto;border-radius:var(--r-lg);border:1px solid var(--border);background:var(--bg-surface)}.table{width:100%;border-collapse:collapse;font-size:.875rem}.table th{padding:10px 16px;text-align:left;font-size:.6875rem;font-weight:600;letter-spacing:.05em;text-transform:uppercase;color:var(--text-3);background:var(--bg-subtle);border-bottom:1px solid var(--border);white-space:nowrap}.table td{padding:12px 16px;border-bottom:1px solid var(--border-subtle);color:var(--text-1);vertical-align:middle}.table tr:last-child td{border-bottom:none}.table tbody tr{transition:background var(--ease-fast)}.table tbody tr:hover td{background:var(--bg-subtle)}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#0006;backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);z-index:200;display:flex;align-items:center;justify-content:center;padding:16px;animation:backdropIn .2s ease}@keyframes backdropIn{0%{opacity:0}to{opacity:1}}.modal{background:var(--bg-elevated);border:1px solid var(--border);border-radius:var(--r-xl);box-shadow:var(--shadow-xl);width:100%;max-width:520px;max-height:90dvh;overflow:visible;display:flex;flex-direction:column;animation:modalIn .35s cubic-bezier(.34,1.56,.64,1)}@keyframes modalIn{0%{opacity:0;transform:scale(.96) translateY(8px)}to{opacity:1;transform:scale(1) translateY(0)}}.modal-sm{max-width:380px}.modal-lg{max-width:720px}.modal-xl{max-width:960px}.modal-header{display:flex;align-items:center;justify-content:space-between;padding:20px 24px 16px;border-bottom:1px solid var(--border)}.modal-body{padding:20px 24px;overflow-y:auto;flex:1 1 auto}.modal-footer{display:flex;align-items:center;justify-content:flex-end;gap:8px;padding:16px 24px 20px;border-top:1px solid var(--border)}.menu{position:absolute;background:var(--bg-elevated);border:1px solid var(--border);border-radius:var(--r-lg);box-shadow:var(--shadow-lg);padding:4px;min-width:180px;z-index:150;animation:menuIn .15s ease}@keyframes menuIn{0%{opacity:0;transform:scale(.97) translateY(-4px)}to{opacity:1;transform:scale(1) translateY(0)}}.menu-item{display:flex;align-items:center;gap:8px;padding:8px 10px;border-radius:var(--r-sm);font-size:.875rem;color:var(--text-1);cursor:pointer;transition:background var(--ease-fast);width:100%;text-align:left}.menu-item:hover{background:var(--bg-muted)}.menu-item.danger{color:var(--rose)}.menu-item.danger:hover{background:#f43f5e14}.menu-divider{height:1px;background:var(--border);margin:4px 0}.toast-stack{position:fixed;bottom:24px;right:24px;display:flex;flex-direction:column;gap:8px;z-index:9999;pointer-events:none}.toast{display:flex;align-items:center;gap:10px;min-width:280px;max-width:380px;padding:12px 16px;border-radius:var(--r-lg);background:var(--bg-elevated);border:1px solid var(--border);box-shadow:var(--shadow-xl);pointer-events:all;font-size:.875rem;animation:toastIn .28s cubic-bezier(.34,1.56,.64,1)}@keyframes toastIn{0%{opacity:0;transform:translate(16px)}to{opacity:1;transform:translate(0)}}.skel{background:linear-gradient(90deg,var(--bg-muted) 25%,var(--border) 50%,var(--bg-muted) 75%);background-size:400% 100%;animation:shimmer 1.6s ease infinite;border-radius:var(--r-sm)}@keyframes shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}.fade-in{animation:fadeIn .2s ease forwards}@keyframes fadeIn{0%{opacity:0;transform:translateY(5px)}to{opacity:1;transform:translateY(0)}}.fade-in-1{animation:fadeIn .2s ease both;animation-delay:50ms}.fade-in-2{animation:fadeIn .2s ease both;animation-delay:.1s}.fade-in-3{animation:fadeIn .2s ease both;animation-delay:.15s}.fade-in-4{animation:fadeIn .2s ease both;animation-delay:.2s}.divider{width:100%;height:1px;background:var(--border)}.divider-v{width:1px;height:100%;background:var(--border)}.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}.truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.mono{font-family:var(--font-mono)}.rounded-full{border-radius:var(--r-full)}@media (max-width: 640px){.toast-stack{bottom:16px;right:16px;left:16px}.toast{min-width:unset;width:100%}.modal{border-radius:var(--r-xl) var(--r-xl) 0 0;max-height:92dvh}.modal-backdrop{align-items:flex-end;padding:0}}
