:root{--primary: #1565C0;--primary-light: #E3F2FD;--primary-dark: #0D47A1;--success: #2E7D32;--success-light: #E8F5E9;--warning: #F57F17;--warning-light: #FFFDE7;--danger: #C62828;--danger-light: #FFEBEE;--text: #212121;--text-secondary: #757575;--border: #E0E0E0;--bg: #F5F5F5;--card-bg: #FFFFFF;--shadow: 0 2px 8px rgba(0, 0, 0, .08);--shadow-lg: 0 4px 20px rgba(0, 0, 0, .12);--radius: 10px;--radius-sm: 6px}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html,body{height:100%;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,sans-serif;font-size:14px;color:var(--text);background:var(--bg);-webkit-font-smoothing:antialiased}a{color:var(--primary);text-decoration:none}button{font-family:inherit;cursor:pointer}input,select,textarea{font-family:inherit}.card{background:var(--card-bg);border-radius:var(--radius);box-shadow:var(--shadow);border:1px solid var(--border)}.page-header{padding:28px 32px 20px;background:var(--card-bg);border-bottom:1px solid var(--border);display:flex;align-items:center;justify-content:space-between}.page-header h1{font-size:22px;font-weight:700;color:var(--text)}.page-header p{font-size:13px;color:var(--text-secondary);margin-top:4px}.page-content{padding:24px 32px}.btn{display:inline-flex;align-items:center;gap:6px;padding:8px 16px;border-radius:var(--radius-sm);font-size:13px;font-weight:600;border:none;cursor:pointer;transition:all .2s ease;white-space:nowrap}.btn:disabled{opacity:.6;cursor:not-allowed}.btn-primary{background:var(--primary);color:#fff}.btn-primary:hover:not(:disabled){background:var(--primary-dark)}.btn-secondary{background:var(--bg);color:var(--text);border:1px solid var(--border)}.btn-secondary:hover:not(:disabled){background:var(--border)}.btn-success{background:var(--success);color:#fff}.btn-success:hover:not(:disabled){background:#1b5e20}.btn-danger{background:var(--danger);color:#fff}.btn-danger:hover:not(:disabled){background:#b71c1c}.btn-sm{padding:5px 11px;font-size:12px}.badge{display:inline-flex;align-items:center;padding:3px 10px;border-radius:20px;font-size:11px;font-weight:600;letter-spacing:.3px;text-transform:uppercase}.badge-success{background:var(--success-light);color:var(--success)}.badge-danger{background:var(--danger-light);color:var(--danger)}.badge-warning{background:var(--warning-light);color:var(--warning)}.badge-primary{background:var(--primary-light);color:var(--primary)}.badge-secondary{background:#eee;color:var(--text-secondary)}.table-container{background:var(--card-bg);border-radius:var(--radius);box-shadow:var(--shadow);border:1px solid var(--border);overflow:hidden}table{width:100%;border-collapse:collapse}table th{background:#fafafa;padding:12px 16px;text-align:left;font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.5px;color:var(--text-secondary);border-bottom:1px solid var(--border);white-space:nowrap}table td{padding:13px 16px;font-size:13px;color:var(--text);border-bottom:1px solid var(--border);vertical-align:middle}table tr:last-child td{border-bottom:none}table tbody tr:hover{background:#fafafa}.form-group{display:flex;flex-direction:column;gap:6px;margin-bottom:18px}.form-label{font-size:13px;font-weight:600;color:var(--text)}.form-control{padding:10px 14px;border:1px solid var(--border);border-radius:var(--radius-sm);font-size:14px;color:var(--text);background:var(--card-bg);transition:border-color .2s ease,box-shadow .2s ease;outline:none;width:100%}.form-control:focus{border-color:var(--primary);box-shadow:0 0 0 3px #1565c01a}.form-control.error{border-color:var(--danger)}.form-error{font-size:12px;color:var(--danger)}.pagination{display:flex;align-items:center;gap:8px;justify-content:flex-end;padding:16px;border-top:1px solid var(--border)}.pagination .pagination-info{font-size:13px;color:var(--text-secondary);margin-right:8px}.pagination button{min-width:34px;height:34px;padding:0 10px;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--card-bg);color:var(--text);font-size:13px;cursor:pointer;transition:all .2s ease}.pagination button:hover:not(:disabled){background:var(--primary-light);border-color:var(--primary);color:var(--primary)}.pagination button:disabled{opacity:.4;cursor:not-allowed}.pagination button.active{background:var(--primary);border-color:var(--primary);color:#fff}.loading-spinner{display:flex;align-items:center;justify-content:center;padding:60px;color:var(--text-secondary);font-size:14px}.loading-spinner:before{content:"";display:inline-block;width:24px;height:24px;border:2px solid var(--border);border-top-color:var(--primary);border-radius:50%;animation:spin .7s linear infinite;margin-right:12px}@keyframes spin{to{transform:rotate(360deg)}}.alert{padding:12px 16px;border-radius:var(--radius-sm);font-size:13px;font-weight:500;margin-bottom:16px}.alert-danger{background:var(--danger-light);color:var(--danger);border:1px solid rgba(198,40,40,.2)}.alert-success{background:var(--success-light);color:var(--success);border:1px solid rgba(46,125,50,.2)}.empty-state{text-align:center;padding:60px 20px;color:var(--text-secondary)}.empty-state p{font-size:15px}.modal-overlay{position:fixed;inset:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:1000;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}.modal{background:var(--card-bg);border-radius:var(--radius);box-shadow:var(--shadow-lg);width:100%;max-width:480px;max-height:90vh;overflow-y:auto}.modal-header{padding:20px 24px;border-bottom:1px solid var(--border);display:flex;align-items:center;justify-content:space-between}.modal-header h3{font-size:16px;font-weight:700;color:var(--text)}.modal-body{padding:24px}.modal-footer{padding:16px 24px;border-top:1px solid var(--border);display:flex;gap:10px;justify-content:flex-end}.modal-close{background:none;border:none;font-size:20px;color:var(--text-secondary);cursor:pointer;padding:2px 6px;line-height:1}.modal-close:hover{color:var(--text)}
