@import"https://fonts.googleapis.com/css2?family=Plus+Jakarta+Sans:wght@300;400;500;600;700;800&family=DM+Mono:wght@400;500&display=swap";.toast-stack[data-v-7853592d]{position:fixed;bottom:20px;right:20px;z-index:9999;display:flex;flex-direction:column;gap:8px;pointer-events:none;max-width:calc(100vw - 32px)}.toast[data-v-7853592d]{display:flex;align-items:center;gap:10px;padding:11px 14px;border-radius:12px;max-width:340px;font-size:13px;font-weight:600;pointer-events:auto;box-shadow:var(--shadow-lg);background:var(--bg-white);border:1px solid var(--border)}.toast-icon[data-v-7853592d]{width:22px;height:22px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:11px;font-weight:800;flex-shrink:0}.toast-success[data-v-7853592d]{border-color:#a7f3d0}.toast-success .icon-success[data-v-7853592d]{background:var(--accent-light);color:var(--accent-dark)}.toast-error[data-v-7853592d]{border-color:#fca5a5}.toast-error .icon-error[data-v-7853592d]{background:var(--red-light);color:#dc2626}.toast-info[data-v-7853592d]{border-color:#c7d2fe}.toast-info .icon-info[data-v-7853592d]{background:var(--blue-light);color:var(--blue)}.toast-enter-active[data-v-7853592d]{transition:all .28s ease}.toast-leave-active[data-v-7853592d]{transition:all .2s ease}.toast-enter-from[data-v-7853592d],.toast-leave-to[data-v-7853592d]{opacity:0;transform:translate(16px)}@media (max-width: 540px){.toast-stack[data-v-7853592d]{bottom:12px;right:12px;left:12px}.toast[data-v-7853592d]{max-width:100%}}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}:root{--bg-app: #f0f2f5;--bg-page: #f4f6f9;--bg-white: #ffffff;--bg-hover: #f8fafc;--bg-active: #e8f5f0;--accent: #10b981;--accent-light: #d1fae5;--accent-mid: #6ee7b7;--accent-dark: #059669;--accent-glow: rgba(16,185,129,.12);--blue: #6366f1;--blue-light: #eef2ff;--orange: #f59e0b;--orange-light: #fef3c7;--red: #ef4444;--red-light: #fee2e2;--purple: #8b5cf6;--purple-light: #ede9fe;--text-primary: #111827;--text-secondary: #6b7280;--text-tertiary: #9ca3af;--border: #e5e7eb;--border-light: #f3f4f6;--shadow-sm: 0 1px 3px rgba(0,0,0,.06), 0 1px 2px rgba(0,0,0,.04);--shadow: 0 4px 16px rgba(0,0,0,.07), 0 1px 4px rgba(0,0,0,.05);--shadow-lg: 0 10px 40px rgba(0,0,0,.1);--shadow-accent: 0 4px 20px rgba(16,185,129,.25);--radius: 10px;--radius-lg: 14px;--radius-xl: 20px;--radius-full: 9999px;--font: "Plus Jakarta Sans", sans-serif;--font-mono: "DM Mono", monospace}html,body{height:100%;background:var(--bg-app);color:var(--text-primary);font-family:var(--font);font-size:14px;-webkit-font-smoothing:antialiased}#app{height:100%}::-webkit-scrollbar{width:4px;height:4px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:#d1d5db;border-radius:4px}h1,h2,h3,h4{font-weight:700;color:var(--text-primary)}.btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;padding:8px 16px;border-radius:var(--radius);font-family:var(--font);font-size:13px;font-weight:600;cursor:pointer;border:none;transition:all .18s;white-space:nowrap;text-decoration:none}.btn-primary{background:var(--accent);color:#fff;box-shadow:0 2px 8px #10b9814d}.btn-primary:hover{background:var(--accent-dark);box-shadow:var(--shadow-accent);transform:translateY(-1px)}.btn-primary:disabled{opacity:.5;cursor:not-allowed;transform:none}.btn-ghost{background:transparent;color:var(--text-secondary);border:1.5px solid var(--border)}.btn-ghost:hover{background:var(--bg-hover);color:var(--text-primary)}.btn-danger{background:var(--red-light);color:#dc2626;border:1.5px solid #fca5a5}.btn-danger:hover{background:#fee2e2}.btn-success{background:var(--accent-light);color:var(--accent-dark);border:1.5px solid var(--accent-mid)}.btn-warning{background:var(--orange-light);color:#d97706;border:1.5px solid #fcd34d}.btn-sm{padding:5px 11px;font-size:12px;border-radius:8px}.btn-lg{padding:12px 28px;font-size:15px;border-radius:12px}.btn-icon{padding:8px;border-radius:8px;aspect-ratio:1}.btn-full{width:100%}.badge{display:inline-flex;align-items:center;gap:4px;padding:3px 9px;border-radius:var(--radius-full);font-size:11px;font-weight:600}.badge-dot{width:5px;height:5px;border-radius:50%;flex-shrink:0}.badge-green{background:var(--accent-light);color:var(--accent-dark)}.badge-green .badge-dot{background:var(--accent)}.badge-red{background:var(--red-light);color:#dc2626}.badge-red .badge-dot{background:var(--red)}.badge-orange{background:var(--orange-light);color:#d97706}.badge-orange .badge-dot{background:var(--orange)}.badge-blue{background:var(--blue-light);color:var(--blue)}.badge-blue .badge-dot{background:var(--blue)}.badge-gray{background:#f3f4f6;color:var(--text-secondary)}.badge-purple{background:var(--purple-light);color:var(--purple)}.badge-purple .badge-dot{background:var(--purple)}.card{background:var(--bg-white);border:1px solid var(--border);border-radius:var(--radius-lg);overflow:hidden;box-shadow:var(--shadow-sm);transition:box-shadow .2s}.card-header{padding:16px 20px;border-bottom:1px solid var(--border-light);display:flex;align-items:center;justify-content:space-between}.card-title{font-size:15px;font-weight:700;color:var(--text-primary)}.card-body{padding:20px}.stats-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin-bottom:20px}.table-wrap{overflow-x:auto}table{width:100%;border-collapse:collapse}thead tr{border-bottom:1.5px solid var(--border-light);background:#fafbfc}th{padding:10px 16px;text-align:left;font-size:11px;font-weight:700;color:var(--text-tertiary);letter-spacing:.06em;text-transform:uppercase;white-space:nowrap}td{padding:13px 16px;font-size:13px;color:var(--text-secondary);border-bottom:1px solid var(--border-light);white-space:nowrap}tr:last-child td{border-bottom:none}tbody tr{transition:background .12s}tbody tr:hover{background:var(--bg-hover)}td.primary{color:var(--text-primary);font-weight:600}.row-actions{display:flex;gap:5px;opacity:0;transition:opacity .15s}tr:hover .row-actions{opacity:1}.field{margin-bottom:16px}.field label{display:block;font-size:12px;font-weight:600;color:var(--text-secondary);margin-bottom:6px}.field input,.field select,.field textarea{width:100%;padding:9px 13px;background:var(--bg-white);border:1.5px solid var(--border);border-radius:var(--radius);color:var(--text-primary);font-family:var(--font);font-size:13.5px;outline:none;transition:border-color .18s,box-shadow .18s}.field input:focus,.field select:focus,.field textarea:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-glow)}.field input::placeholder{color:var(--text-tertiary)}.field textarea{resize:vertical;min-height:80px}.field select{cursor:pointer}.field input[readonly]{background:var(--bg-page);color:var(--text-tertiary);cursor:not-allowed}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px}.form-grid.cols-1{grid-template-columns:1fr}.form-full{grid-column:1 / -1}.chip{display:inline-flex;align-items:center;gap:4px;padding:3px 9px;background:var(--bg-page);border:1px solid var(--border);border-radius:var(--radius-full);font-size:11px;font-weight:600;color:var(--text-secondary);font-family:var(--font-mono)}.empty-state{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:52px 20px;text-align:center}.empty-icon{font-size:36px;margin-bottom:12px;opacity:.35}.empty-title{font-size:14px;font-weight:700;color:var(--text-secondary);margin-bottom:5px}.empty-desc{font-size:12.5px;color:var(--text-tertiary)}.loading{display:flex;align-items:center;justify-content:center;padding:40px;color:var(--text-tertiary);font-size:13px;gap:10px}.spinner{width:15px;height:15px;border:2px solid var(--border);border-top-color:var(--accent);border-radius:50%;animation:spin .65s linear infinite;flex-shrink:0}@keyframes spin{to{transform:rotate(360deg)}}.divider{height:1px;background:var(--border-light);margin:16px 0}.info-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px}.info-item label{font-size:11px;color:var(--text-tertiary);display:block;margin-bottom:4px;text-transform:uppercase;letter-spacing:.05em;font-weight:600}.info-item span{font-size:13.5px;color:var(--text-primary);font-weight:600}.header-row{display:flex;align-items:flex-start;justify-content:space-between}.page-header{padding:28px 28px 0;margin-bottom:22px}.page-title{font-size:24px;font-weight:800;color:var(--text-primary);letter-spacing:-.5px}.page-subtitle{color:var(--text-secondary);font-size:13.5px;margin-top:4px;font-weight:400}.page-content{padding:0 28px 32px}.filter-tabs{display:flex;gap:2px;background:var(--bg-white);border:1.5px solid var(--border);border-radius:10px;padding:3px;margin-bottom:16px;width:fit-content;box-shadow:var(--shadow-sm)}.tab{padding:6px 16px;border-radius:7px;font-size:12.5px;font-weight:600;cursor:pointer;color:var(--text-secondary);background:none;border:none;transition:all .15s}.tab.active{background:var(--accent);color:#fff;box-shadow:0 2px 8px #10b98140}.tab:hover:not(.active){color:var(--text-primary);background:var(--bg-hover)}.search-wrap{position:relative}.search-wrap svg{position:absolute;left:10px;top:50%;transform:translateY(-50%);color:var(--text-tertiary);pointer-events:none}.search-input{background:var(--bg-page);border:1.5px solid var(--border);border-radius:8px;padding:7px 12px 7px 34px;color:var(--text-primary);font-size:13px;outline:none;width:220px;transition:border-color .18s;font-family:var(--font)}.search-input:focus{border-color:var(--accent);background:var(--bg-white)}.fade-enter-active,.fade-leave-active{transition:opacity .2s}.fade-enter-from,.fade-leave-to{opacity:0}.slide-up-enter-active{transition:all .25s ease}.slide-up-enter-from{opacity:0;transform:translateY(10px)}.trend{display:inline-flex;align-items:center;gap:3px;font-size:11px;font-weight:700;padding:2px 7px;border-radius:var(--radius-full)}.trend-up{color:var(--accent-dark);background:var(--accent-light)}.trend-down{color:#dc2626;background:var(--red-light)}@media (max-width: 1024px){.stats-grid{grid-template-columns:repeat(2,1fr)}}@media (max-width: 640px){.stats-grid{grid-template-columns:1fr;gap:10px}.page-header{padding:18px 16px 0;margin-bottom:14px}.page-title{font-size:20px}.page-content{padding:0 16px 24px}}@media (max-width: 600px){.form-grid{grid-template-columns:1fr}.form-full{grid-column:1}.info-grid{grid-template-columns:1fr}}@media (max-width: 768px){.table-wrap{-webkit-overflow-scrolling:touch}td,th{padding:10px 12px}.row-actions{opacity:1}}@media (max-width: 540px){.filter-tabs{width:100%;overflow-x:auto}.tab{padding:6px 12px;font-size:12px}}@media (max-width: 1024px){.charts-row,.bottom-row{grid-template-columns:1fr}}@media (max-width: 640px){.charts-row,.bottom-row{gap:10px}}
