@import "https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&family=JetBrains+Mono:wght@400;500&display=swap";.toast-container[data-v-df9b74ed]{z-index:9999;flex-direction:column;gap:8px;max-width:400px;display:flex;position:fixed;top:20px;right:20px}.toast[data-v-df9b74ed]{border-radius:var(--radius-md);cursor:pointer;box-shadow:var(--shadow-lg);border:1px solid;align-items:center;gap:10px;padding:12px 18px;font-size:.875rem;font-weight:500;display:flex}.toast-success[data-v-df9b74ed]{color:var(--success);background:#34d39926;border-color:#34d3994d}.toast-error[data-v-df9b74ed]{color:var(--danger);background:#f8717126;border-color:#f871714d}.toast-warning[data-v-df9b74ed]{color:var(--warning);background:#fbbf2426;border-color:#fbbf244d}.toast-info[data-v-df9b74ed]{color:var(--info);background:#818cf826;border-color:#818cf84d}.toast-enter-active[data-v-df9b74ed]{transition:all .3s}.toast-leave-active[data-v-df9b74ed]{transition:all .2s}.toast-enter-from[data-v-df9b74ed],.toast-leave-to[data-v-df9b74ed]{opacity:0;transform:translate(40px)}@media (width<=768px){.toast-container[data-v-df9b74ed]{max-width:100%;inset:auto 12px 20px}}:root{--font-sans:"Inter", ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--font-mono:"JetBrains Mono", "SFMono-Regular", Consolas, monospace;--text-xs:.75rem;--text-sm:.875rem;--text-md:1rem;--text-lg:1.125rem;--text-xl:1.375rem;--text-2xl:1.75rem;--text-3xl:2.25rem;--space-1:4px;--space-2:8px;--space-3:12px;--space-4:16px;--space-5:20px;--space-6:24px;--space-8:32px;--space-10:40px;--space-12:48px;--radius-sm:8px;--radius-md:12px;--radius-lg:16px;--radius-xl:22px;--radius-pill:999px;--layout-sidebar-width:280px;--layout-right-panel-width:320px;--layout-content-max-width:1440px;--layout-mobile-breakpoint:768px;--breakpoint-sm:640px;--breakpoint-md:768px;--breakpoint-lg:1024px;--breakpoint-xl:1280px;--transition-fast:.12s ease;--transition-normal:.18s ease;--transition-slow:.26s ease;--transition:var(--transition-normal);--sidebar-width:var(--layout-sidebar-width);--header-height:60px}:root,:root[data-theme=dark]{--color-bg:#111217;--color-bg-elevated:#181a21;--color-bg-soft:#20232d;--color-bg-muted:#2a2d38;--color-surface:#181a21;--color-surface-2:#20232d;--color-surface-3:#2c3040;--color-border:#ffffff14;--color-border-strong:#ffffff29;--color-text:#f4f5f8;--color-text-muted:#a5a8b5;--color-text-soft:#737786;--color-primary:#7467ff;--color-primary-hover:#8a7fff;--color-primary-soft:#7467ff2e;--color-accent-pink:#ff69c8;--color-accent-yellow:#ffd96a;--color-accent-blue:#6da8ff;--color-accent-green:#4edc8d;--color-accent-orange:#ff9f5a;--color-success:#4edc8d;--color-warning:#ffd96a;--color-danger:#ff6b7a;--color-info:#6da8ff;--shadow-soft:0 12px 30px #00000052;--shadow-card:0 8px 20px #00000038;--shadow-focus:0 0 0 4px var(--color-primary-soft);--bg-root:var(--color-bg);--bg-surface:var(--color-surface);--bg-elevated:var(--color-surface-2);--bg-hover:var(--color-surface-3);--bg-active:var(--color-bg-muted);--border:var(--color-border);--border-light:var(--color-border);--text-primary:var(--color-text);--text-secondary:var(--color-text-muted);--text-muted:var(--color-text-soft);--accent:var(--color-primary);--accent-hover:var(--color-primary-hover);--accent-muted:var(--color-primary-soft);--accent-border:#7467ff52;--success:var(--color-success);--warning:var(--color-warning);--danger:var(--color-danger);--info:var(--color-info);--priority-low:var(--color-success);--priority-medium:var(--color-warning);--priority-high:var(--color-accent-orange);--priority-critical:var(--color-danger);--shadow-sm:0 1px 2px #0000004d;--shadow-md:var(--shadow-card);--shadow-lg:var(--shadow-soft)}:root[data-theme=light]{--color-bg:#f5f6fb;--color-bg-elevated:#fff;--color-bg-soft:#eef0f7;--color-bg-muted:#e1e4ef;--color-surface:#fff;--color-surface-2:#f8f9fc;--color-surface-3:#eef0f7;--color-border:#191c2814;--color-border-strong:#191c2829;--color-text:#191c28;--color-text-muted:#5f6474;--color-text-soft:#8a90a3;--color-primary:#6658f6;--color-primary-hover:#5747e8;--color-primary-soft:#6658f61f;--color-accent-pink:#ec4eb5;--color-accent-yellow:#e3ad28;--color-accent-blue:#3578e5;--color-accent-green:#23a96f;--color-accent-orange:#df7c2f;--color-success:#23a96f;--color-warning:#e3ad28;--color-danger:#d9495f;--color-info:#3578e5;--shadow-soft:0 12px 30px #191c2814;--shadow-card:0 6px 16px #191c280f;--shadow-focus:0 0 0 4px var(--color-primary-soft);--bg-root:var(--color-bg);--bg-surface:var(--color-surface);--bg-elevated:var(--color-bg-elevated);--bg-hover:var(--color-surface-3);--bg-active:var(--color-bg-muted);--border:var(--color-border);--border-light:var(--color-border);--text-primary:var(--color-text);--text-secondary:var(--color-text-muted);--text-muted:var(--color-text-soft);--accent:var(--color-primary);--accent-hover:var(--color-primary-hover);--accent-muted:var(--color-primary-soft);--accent-border:#6658f647;--success:var(--color-success);--warning:var(--color-warning);--danger:var(--color-danger);--info:var(--color-info);--priority-low:var(--color-success);--priority-medium:var(--color-warning);--priority-high:var(--color-accent-orange);--priority-critical:var(--color-danger);--shadow-sm:0 1px 2px #191c280d;--shadow-md:var(--shadow-card);--shadow-lg:var(--shadow-soft)}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html{font-size:14px;font-family:var(--font-sans);background:var(--color-bg);color:var(--color-text)}body{font-family:var(--font-sans);color:var(--color-text);background:radial-gradient(circle at top left, var(--color-primary-soft), transparent 28rem), var(--color-bg);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;min-height:100vh;line-height:1.6}#app{min-height:100vh}button,input,textarea,select{font:inherit}button{cursor:pointer}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-track{background:0 0}::-webkit-scrollbar-thumb{background:var(--color-border-strong);border-radius:999px}::-webkit-scrollbar-thumb:hover{background:var(--color-text-soft)}h1,h2,h3,h4{color:var(--color-text);letter-spacing:-.02em;font-weight:600;line-height:1.25}h1{font-size:var(--text-2xl);font-weight:700}h2{font-size:var(--text-xl)}h3{font-size:var(--text-lg)}h4{font-size:var(--text-md)}a{color:var(--color-primary);transition:color var(--transition-fast);text-decoration:none}a:hover{color:var(--color-primary-hover)}input,textarea,select{background:var(--color-surface-2);border:1px solid var(--color-border);border-radius:var(--radius-md);width:100%;color:var(--color-text);font-family:var(--font-sans);font-size:var(--text-sm);transition:border-color var(--transition-fast), box-shadow var(--transition-fast);padding:10px 14px}input:focus,textarea:focus,select:focus{border-color:var(--color-primary);box-shadow:var(--shadow-focus);outline:none}input::placeholder,textarea::placeholder{color:var(--color-text-soft)}textarea{resize:vertical;min-height:100px}select{cursor:pointer;appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' fill='%23a5a8b5' viewBox='0 0 16 16'%3E%3Cpath d='M8 11L3 6h10l-5 5z'/%3E%3C/svg%3E");background-position:right 12px center;background-repeat:no-repeat;padding-right:36px}label{font-size:var(--text-sm);color:var(--color-text-muted);margin-bottom:6px;font-weight:500;display:block}.form-group{margin-bottom:var(--space-5)}.btn{font-family:var(--font-sans);font-size:var(--text-sm);border-radius:var(--radius-md);cursor:pointer;transition:transform var(--transition-fast), background var(--transition-fast), border-color var(--transition-fast), box-shadow var(--transition-fast), color var(--transition-fast);white-space:nowrap;border:1px solid #0000;justify-content:center;align-items:center;gap:8px;padding:10px 18px;font-weight:600;display:inline-flex}.btn svg{flex-shrink:0;display:block}.btn:disabled{opacity:.5;cursor:not-allowed}.btn-primary{background:linear-gradient(135deg, var(--color-primary), var(--color-primary-hover));color:#fff;box-shadow:var(--shadow-card)}.btn-primary:hover:not(:disabled){box-shadow:var(--shadow-soft);transform:translateY(-1px)}.btn-secondary{background:var(--color-surface-2);color:var(--color-text);border-color:var(--color-border)}.btn-secondary:hover:not(:disabled){background:var(--color-surface-3);border-color:var(--color-border-strong)}.btn-ghost{color:var(--color-text-muted);background:0 0}.btn-ghost:hover:not(:disabled){background:var(--color-surface-2);color:var(--color-text)}.btn-danger{color:var(--color-danger);background:#ff6b7a24;border-color:#ff6b7a3d}.btn-danger:hover:not(:disabled){background:#ff6b7a38}.btn-sm{font-size:var(--text-xs);border-radius:var(--radius-sm);padding:6px 12px}.btn-icon{padding:8px;line-height:1}.card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);padding:var(--space-5);box-shadow:var(--shadow-card);transition:border-color var(--transition-fast), box-shadow var(--transition-fast), transform var(--transition-fast)}.card:hover{border-color:var(--color-border-strong)}.card-clickable{cursor:pointer}.card-clickable:hover{border-color:var(--accent-border);box-shadow:var(--shadow-soft);transform:translateY(-1px)}.surface{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-xl)}.badge{font-size:var(--text-xs);border-radius:var(--radius-pill);letter-spacing:.02em;align-items:center;padding:3px 10px;font-weight:600;display:inline-flex}.badge-accent{background:var(--color-primary-soft);color:var(--color-primary)}.badge-success{color:var(--color-success);background:#4edc8d24}.badge-warning{color:var(--color-warning);background:#ffd96a29}.badge-danger{color:var(--color-danger);background:#ff6b7a24}.badge-info{color:var(--color-info);background:#6da8ff29}.badge-muted{background:var(--color-surface-3);color:var(--color-text-muted)}.table-wrapper{border:1px solid var(--color-border);border-radius:var(--radius-lg);background:var(--color-surface);overflow-x:auto}table{border-collapse:collapse;width:100%}th{text-align:left;font-size:var(--text-xs);color:var(--color-text-soft);text-transform:uppercase;letter-spacing:.06em;border-bottom:1px solid var(--color-border);background:var(--color-surface-2);padding:12px 16px;font-weight:600}td{border-bottom:1px solid var(--color-border);font-size:var(--text-sm);padding:14px 16px}tr:last-child td{border-bottom:none}tr:hover td{background:var(--color-surface-2)}.modal-overlay{-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);z-index:100;animation:fadeIn var(--transition-normal);background:#0000008c;justify-content:center;align-items:center;padding:20px;display:flex;position:fixed;inset:0}.modal{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-xl);width:100%;max-width:560px;max-height:85vh;box-shadow:var(--shadow-soft);animation:scaleIn var(--transition-normal);overflow-y:auto}.modal-header{border-bottom:1px solid var(--color-border);justify-content:space-between;align-items:center;padding:20px 24px;display:flex}.modal-header h3{margin:0}.modal-body{padding:24px}.modal-footer{border-top:1px solid var(--color-border);justify-content:flex-end;gap:10px;padding:16px 24px;display:flex}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes scaleIn{0%{opacity:0;transform:scale(.97)}to{opacity:1;transform:scale(1)}}.empty-state{text-align:center;color:var(--color-text-soft);padding:60px 24px}.empty-state svg{opacity:.4;margin-bottom:16px}.empty-state h3{color:var(--color-text-muted);margin-bottom:8px}.empty-state p{font-size:var(--text-sm);margin-bottom:24px}.page-header{justify-content:space-between;align-items:flex-start;gap:var(--space-4);margin-bottom:var(--space-8);display:flex}.page-header h1{margin-bottom:4px}.page-subtitle{color:var(--color-text-muted);font-size:var(--text-sm)}@media (width<=768px){.page-header{flex-direction:column}}.priority-low{color:var(--priority-low)}.priority-medium{color:var(--priority-medium)}.priority-high{color:var(--priority-high)}.priority-critical{color:var(--priority-critical)}.spinner{border:2.5px solid var(--color-border-strong);border-top-color:var(--color-primary);border-radius:50%;width:24px;height:24px;animation:.6s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.loading-center{justify-content:center;align-items:center;padding:80px;display:flex}@media (width<=768px){:root{--layout-sidebar-width:0px;--sidebar-width:0px}html{font-size:13px}.hide-mobile{display:none!important}.modal{max-width:100%;margin:10px}}@media (prefers-reduced-motion:reduce){*,:before,:after{transition:none!important;animation:none!important}}
