:root{--primary: #4CAF50;--primary-dark: #43a047;--danger: #e74c3c;--warning: #f39c12;--info: #3498db;--text: #333;--text-secondary: #666;--text-muted: #999;--border: #e8e8e8;--bg: #f5f7fa;--bg-card: #fff;--radius: 8px;--shadow: 0 2px 8px rgba(0,0,0,.06)}*,*:before,*:after{box-sizing:border-box}body{margin:0;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;font-size:14px;background:var(--bg);color:var(--text);-webkit-font-smoothing:antialiased}.page-container{max-width:1400px}.page-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:24px}.page-title{margin:0;font-size:22px;font-weight:700;color:#1a1a2e;line-height:1.3}.page-desc{margin:4px 0 0;font-size:13px;color:#999}.card{background:var(--bg-card);border-radius:var(--radius);box-shadow:var(--shadow);margin-bottom:16px;border:1px solid #eee}.card-body{padding:20px}.filter-card{padding:20px 24px}.filter-row{display:flex;align-items:flex-end;gap:16px;flex-wrap:wrap}.filter-item{display:flex;flex-direction:column;gap:6px}.filter-item label{font-size:12px;font-weight:600;color:#999;text-transform:uppercase;letter-spacing:.3px}.filter-search{flex:1;min-width:240px}.filter-check{display:flex;align-items:flex-end}.input-search-group{display:flex;gap:8px}.input-search-group .form-control{flex:1}.form-control{width:100%;padding:9px 12px;border:1px solid #d9d9d9;border-radius:6px;font-size:13px;color:#333;background:#fff;transition:border-color .2s,box-shadow .2s}.form-control:focus{outline:none;border-color:var(--primary);box-shadow:0 0 0 2px #4caf501f}select.form-control{padding-right:30px}textarea.form-control{resize:vertical;font-family:inherit}.btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;padding:9px 18px;border:1px solid #d9d9d9;border-radius:6px;font-size:13px;font-weight:500;cursor:pointer;transition:all .2s;white-space:nowrap;background:#fff;color:#333}.btn:hover:not(:disabled){border-color:#bbb}.btn:disabled{opacity:.5;cursor:not-allowed}.btn-primary{background:#1a1a2e;color:#fff;border-color:#1a1a2e}.btn-primary:hover:not(:disabled){background:#2c2c44}.btn-ghost{background:transparent;color:#666}.btn-ghost:hover:not(:disabled){background:#f5f5f5}.btn-outline{background:#fff;color:#333;border-color:#d9d9d9}.btn-outline:hover:not(:disabled){border-color:#1a1a2e;color:#1a1a2e}.btn-green{background:var(--primary);color:#fff;border-color:var(--primary)}.btn-green:hover:not(:disabled){background:var(--primary-dark)}.btn-warn{background:#fff3e0;color:#ff9800;border-color:#ffe0b2}.btn-warn:hover:not(:disabled){background:#ffe0b2}.btn-sm{padding:5px 12px;font-size:12px}.text-center{text-align:center}.mt-1{margin-top:8px}.mb-1{margin-bottom:8px}.flex{display:flex}.items-center{align-items:center}.justify-between{justify-content:space-between}.gap-1{gap:8px}.admin-layout{display:flex;min-height:100vh}.sidebar{width:220px;background:#2c3e50;color:#fff;position:fixed;height:100vh;overflow-y:auto}.sidebar-header{padding:20px;border-bottom:1px solid rgba(255,255,255,.1)}.sidebar-header h2{margin:0;font-size:20px}.sidebar-header p{margin:4px 0 0;font-size:12px;opacity:.7}.nav-menu{list-style:none;padding:0;margin:0}.nav-menu li a{display:flex;align-items:center;gap:10px;padding:14px 20px;color:#fffc;text-decoration:none;transition:all .2s}.nav-menu li a:hover,.nav-menu li a.router-link-active{background:#ffffff1a;color:#fff}.main-content{flex:1;margin-left:220px;padding:24px}.data-table{width:100%;border-collapse:collapse;font-size:14px}.data-table th,.data-table td{padding:12px 16px;text-align:left;border-bottom:1px solid var(--border)}.data-table th{background:#f8f9fa;font-weight:600;color:var(--text-secondary);font-size:13px;text-transform:uppercase}.data-table tbody tr:hover{background:#f8f9fa}.status-tag{display:inline-block;padding:4px 10px;border-radius:20px;font-size:12px;font-weight:500}.status-active{background:#e8f5e9;color:#2e7d32}.status-inactive{background:#ffebee;color:#c62828}.status-pending{background:#fff3e0;color:#ef6c00}.status-completed{background:#e3f2fd;color:#1565c0}.image-preview{width:80px;height:80px;object-fit:cover;border-radius:6px;border:1px solid var(--border)}
