@import"https://fonts.googleapis.com/css2?family=Outfit:wght@300;400;500;600;700;800&family=DM+Sans:wght@400;500;600&display=swap";:root{--bg-primary: #f5f7fa;--bg-secondary: #ffffff;--bg-card: #ffffff;--bg-hover: rgba(0, 120, 220, .04);--accent: #1890ff;--accent-dim: rgba(24, 144, 255, .08);--accent-glow: rgba(24, 144, 255, .15);--text-primary: #1a1a2e;--text-secondary: #5a6270;--text-muted: #8c95a4;--border-color: #e8ecf1;--border-hover: #b8c4d6;--success: #52c41a;--danger: #ff4d4f;--warning: #faad14;--radius-sm: 8px;--radius-md: 12px;--radius-lg: 16px;--radius-xl: 20px;--shadow-sm: 0 1px 3px rgba(0, 0, 0, .06);--shadow-md: 0 4px 16px rgba(0, 0, 0, .06);--shadow-lg: 0 8px 32px rgba(0, 0, 0, .08);--shadow-glow: 0 0 20px var(--accent-glow);--font-display: "Outfit", sans-serif;--font-body: "DM Sans", sans-serif;--transition-fast: .15s ease;--transition-normal: .25s ease;--transition-slow: .35s ease}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:smooth;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}body{font-family:var(--font-body);color:var(--text-primary);background:var(--bg-primary);line-height:1.6;min-height:100vh;overflow-x:hidden}a{color:var(--accent);text-decoration:none;transition:color var(--transition-fast)}a:hover{color:#40a9ff}img{max-width:100%;height:auto;display:block}button{cursor:pointer;font-family:inherit}input,textarea,select{font-family:inherit;font-size:inherit}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:#c8ccd3;border-radius:3px}::-webkit-scrollbar-thumb:hover{background:#a0a8b4}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:10px 22px;border-radius:var(--radius-md);font-size:14px;font-weight:600;border:1px solid transparent;transition:all var(--transition-normal);position:relative;overflow:hidden;white-space:nowrap;-webkit-user-select:none;-moz-user-select:none;user-select:none}.btn:active{transform:scale(.97)}.btn-primary{background:linear-gradient(135deg,#1890ff,#096dd9);color:#fff;border-color:transparent;box-shadow:0 2px 8px #1890ff40}.btn-primary:hover{box-shadow:0 4px 16px #1890ff59;transform:translateY(-1px)}.btn-secondary{background:var(--bg-card);color:var(--text-primary);border-color:var(--border-color)}.btn-secondary:hover{border-color:var(--accent);color:var(--accent);background:var(--accent-dim)}.btn-danger{background:linear-gradient(135deg,#ff4d4f,#cf1322);color:#fff;box-shadow:0 2px 8px #ff4d4f40}.btn-danger:hover{box-shadow:0 4px 16px #ff4d4f59;transform:translateY(-1px)}.btn-success{background:linear-gradient(135deg,#52c41a,#389e0d);color:#fff;box-shadow:0 2px 8px #52c41a40}.btn-success:hover{box-shadow:0 4px 16px #52c41a59;transform:translateY(-1px)}.btn-sm{padding:6px 14px;font-size:13px;border-radius:var(--radius-sm)}.btn-icon{width:36px;height:36px;padding:0;border-radius:var(--radius-sm);border:1px solid transparent;background:transparent;color:var(--text-muted);display:inline-flex;align-items:center;justify-content:center;transition:all var(--transition-fast)}.btn-icon:hover{background:var(--bg-hover);color:var(--accent);border-color:var(--border-color)}.btn-icon.danger:hover{background:#ff4d4f0f;color:var(--danger);border-color:#ff4d4f33}.btn:disabled{opacity:.5;cursor:not-allowed;transform:none!important;box-shadow:none!important}.card{background:var(--bg-card);border:1px solid var(--border-color);border-radius:var(--radius-md);padding:16px;box-shadow:var(--shadow-sm);transition:all var(--transition-normal)}.card:hover{border-color:var(--border-hover);box-shadow:var(--shadow-md)}.card-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px;padding-bottom:10px;border-bottom:1px solid var(--border-color)}.card-title{font-family:var(--font-display);font-size:17px;font-weight:600;color:var(--text-primary);display:flex;align-items:center;gap:8px}.card-subtitle{font-size:13px;color:var(--text-muted);margin-top:4px}.form-group{margin-bottom:18px}.form-label{display:block;font-size:13px;font-weight:600;color:var(--text-secondary);margin-bottom:7px}.form-input,.form-textarea,.form-select{width:100%;padding:11px 14px;background:#fff;border:1px solid var(--border-color);border-radius:var(--radius-sm);color:var(--text-primary);font-size:14px;transition:all var(--transition-fast);outline:none}.form-input:focus,.form-textarea:focus,.form-select:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-dim)}.form-input::-moz-placeholder,.form-textarea::-moz-placeholder{color:var(--text-muted)}.form-input::placeholder,.form-textarea::placeholder{color:var(--text-muted)}.form-textarea{min-height:110px;resize:vertical}.form-select{-webkit-appearance:none;-moz-appearance:none;appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' fill='%238c95a4' viewBox='0 0 16 16'%3E%3Cpath d='M8 11L3 6h10z'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 12px center;padding-right:32px}.form-hint{font-size:12px;color:var(--text-muted);margin-top:5px}.form-error{font-size:12px;color:var(--danger);margin-top:5px}.toast-container{position:fixed;top:80px;right:24px;z-index:9999;display:flex;flex-direction:column;gap:8px;pointer-events:none}.toast{min-width:280px;max-width:400px;padding:12px 18px;border-radius:var(--radius-md);font-size:14px;font-weight:500;display:flex;align-items:center;gap:10px;animation:slideInRight .3s ease forwards;pointer-events:auto;box-shadow:var(--shadow-lg);border:1px solid transparent}.toast-success{background:#f6ffed;color:var(--success);border-color:#b7eb8f}.toast-error{background:#fff2f0;color:var(--danger);border-color:#ffccc7}.toast-info{background:#e6f7ff;color:var(--accent);border-color:#91d5ff}.toast-exit{animation:fadeOut .3s ease forwards}@keyframes slideInRight{0%{opacity:0;transform:translate(60px)}to{opacity:1;transform:translate(0)}}@keyframes fadeOut{0%{opacity:1}to{opacity:0}}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@keyframes pulse{0%,to{opacity:1}50%{opacity:.5}}@keyframes fadeInUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.animate-spin{animation:spin 1s linear infinite}.animate-pulse{animation:pulse 2s ease-in-out infinite}.text-accent{color:var(--accent)}.text-danger{color:var(--danger)}.text-success{color:var(--success)}.text-muted{color:var(--text-muted)}.text-secondary{color:var(--text-secondary)}.bg-card{background:var(--bg-card)}.mt-1{margin-top:8px}.mt-2{margin-top:16px}.mt-3{margin-top:24px}.mb-1{margin-bottom:8px}.mb-2{margin-bottom:16px}.mb-3{margin-bottom:24px}.flex-center{display:flex;align-items:center;justify-content:center}.text-center{text-align:center}.truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}@media (max-width: 1024px){.card{padding:20px}}@media (max-width: 768px){.card{padding:16px;border-radius:var(--radius-md)}.btn{padding:9px 18px;font-size:13px}.toast-container{right:12px;left:12px}.toast{min-width:auto;max-width:none}}@media (max-width: 480px){.card{padding:14px}.btn{padding:8px 16px;font-size:13px}}::-moz-selection{background:#1890ff33;color:inherit}::selection{background:#1890ff33;color:inherit}.page-container{max-width:1200px;margin:0 auto;padding:20px 24px}.page-header{margin-bottom:28px}.page-title{font-family:var(--font-display);font-size:26px;font-weight:700;color:var(--text-primary);letter-spacing:-.5px}.page-description{font-size:14px;color:var(--text-secondary);margin-top:6px}.data-table{width:100%;border-collapse:collapse}.data-table th,.data-table td{padding:11px 14px;text-align:left;border-bottom:1px solid var(--border-color);font-size:14px}.data-table th{font-family:var(--font-display);font-size:12px;font-weight:600;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.5px;background:#fafbfc}.data-table tbody tr{transition:background var(--transition-fast)}.data-table tbody tr:hover{background:var(--bg-hover)}.pagination{display:flex;align-items:center;justify-content:center;gap:6px;margin-top:24px}.page-btn{min-width:34px;height:34px;padding:0 11px;border-radius:var(--radius-sm);border:1px solid var(--border-color);background:#fff;color:var(--text-secondary);font-size:13px;font-weight:500;display:flex;align-items:center;justify-content:center;transition:all var(--transition-fast)}.page-btn:hover:not(:disabled){border-color:var(--accent);color:var(--accent);background:var(--accent-dim)}.page-btn.active{background:var(--accent);color:#fff;border-color:var(--accent);font-weight:700}.page-btn:disabled{opacity:.35;cursor:not-allowed}.empty-state{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:56px 20px;color:var(--text-muted)}.empty-state i{width:56px;height:56px;margin-bottom:14px;opacity:.25}.empty-state h3{font-family:var(--font-display);font-size:17px;font-weight:600;color:var(--text-secondary);margin-bottom:6px}.empty-state p{font-size:14px;max-width:300px;text-align:center}.loading-spinner{width:30px;height:30px;border:3px solid var(--border-color);border-top-color:var(--accent);border-radius:50%;animation:spin .8s linear infinite}.loading-overlay{position:absolute;top:0;right:0;bottom:0;left:0;background:#ffffffbf;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);display:flex;align-items:center;justify-content:center;z-index:10;border-radius:inherit}.badge{display:inline-flex;align-items:center;padding:2px 10px;border-radius:50px;font-size:12px;font-weight:600;letter-spacing:.3px}.badge-accent{background:var(--accent-dim);color:var(--accent)}.badge-success{background:#f6ffed;color:var(--success)}.badge-danger{background:#fff2f0;color:var(--danger)}.badge-warning{background:#fffbe6;color:var(--warning)}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#0006;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);z-index:2000;display:flex;align-items:center;justify-content:center;animation:fadeInUp .2s ease}.modal-overlay>div{max-height:90vh;overflow-y:auto}.upload-zone{border:2px dashed var(--border-color);border-radius:var(--radius-lg);padding:44px 24px;text-align:center;cursor:pointer;transition:all var(--transition-normal);background:#fff}.upload-zone:hover,.upload-zone.dragover{border-color:var(--accent);background:var(--accent-dim)}.upload-zone i{width:48px;height:48px;margin:0 auto 14px;color:var(--accent);opacity:.45}.upload-zone p{font-size:15px;color:var(--text-secondary);margin-bottom:6px}.upload-zone span{font-size:13px;color:var(--text-muted)}.navbar[data-v-e1b14c85]{position:fixed;top:0;left:0;right:0;z-index:1000;height:52px;padding:0 24px;display:flex;align-items:center;justify-content:space-between;background:#ffffffeb;-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);border-bottom:1px solid var(--border-color)}.nav-brand[data-v-e1b14c85]{font-family:Outfit,sans-serif;font-size:22px;font-weight:700;color:var(--accent);display:flex;align-items:center;gap:10px;text-decoration:none}.nav-links[data-v-e1b14c85]{display:flex;align-items:center;gap:6px}.nav-link[data-v-e1b14c85]{padding:8px 18px;border-radius:50px;font-size:14px;font-weight:500;color:var(--text-muted);text-decoration:none;transition:all .3s;display:flex;align-items:center;gap:6px}.nav-link[data-v-e1b14c85]:hover,.nav-link.active[data-v-e1b14c85]{color:var(--accent);background:var(--accent-dim)}.nav-user[data-v-e1b14c85]{display:flex;align-items:center;gap:12px;margin-left:16px;padding:6px 14px 6px 6px;background:var(--bg-primary);border-radius:50px;border:1px solid var(--border-color)}.nav-avatar[data-v-e1b14c85]{width:28px;height:28px;border-radius:50%;background:linear-gradient(135deg,#1890ff,#096dd9);display:flex;align-items:center;justify-content:center;font-family:Outfit,sans-serif;font-weight:600;font-size:14px;color:#fff}.nav-username[data-v-e1b14c85]{font-size:14px;font-weight:500;color:var(--text-primary)}.btn-icon[data-v-e1b14c85]{width:36px;height:36px;border-radius:10px;border:none;background:transparent;color:var(--text-muted);cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .2s}.btn-icon[data-v-e1b14c85]:hover{background:#ff52521a;color:#ff5252}.main-content[data-v-e1b14c85]{padding-top:52px;min-height:100vh}@media (max-width: 768px){.navbar[data-v-e1b14c85]{padding:0 16px}.nav-link[data-v-e1b14c85]{padding:6px 12px;font-size:13px}.nav-username[data-v-e1b14c85]{display:none}}
