*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}body{font-family:Inter,sans-serif;background:#f0f4f8;color:#1a202c;min-height:100vh}::-webkit-scrollbar{width:6px}::-webkit-scrollbar-track{background:#f1f1f1}::-webkit-scrollbar-thumb{background:#a0aec0;border-radius:3px}.btn-primary{background:linear-gradient(135deg,#2196f3,#1976d2);color:#fff;border:none;padding:10px 24px;border-radius:8px;font-size:14px;font-weight:600;cursor:pointer;transition:all .2s;letter-spacing:.3px}.btn-primary:hover{transform:translateY(-1px);box-shadow:0 4px 15px #2196f366}.btn-primary:active{transform:translateY(0)}.btn-danger{background:linear-gradient(135deg,#f44336,#d32f2f);color:#fff;border:none;padding:7px 16px;border-radius:6px;font-size:13px;font-weight:600;cursor:pointer;transition:all .2s}.btn-danger:hover{box-shadow:0 3px 10px #f4433666}.btn-edit{background:linear-gradient(135deg,#2196f3,#1976d2);color:#fff;border:none;padding:7px 16px;border-radius:6px;font-size:13px;font-weight:600;cursor:pointer;transition:all .2s;margin-right:6px}.btn-edit:hover{box-shadow:0 3px 10px #2196f366}.btn-outline{background:transparent;color:#2196f3;border:2px solid #2196f3;padding:10px 24px;border-radius:8px;font-size:14px;font-weight:600;cursor:pointer;transition:all .2s}.btn-outline:hover{background:#2196f3;color:#fff}.form-group{margin-bottom:20px}.form-label{display:block;font-size:13px;font-weight:600;color:#4a5568;margin-bottom:6px;text-transform:uppercase;letter-spacing:.5px}.form-input,.form-textarea{width:100%;padding:11px 14px;border:2px solid #e2e8f0;border-radius:8px;font-size:14px;font-family:Inter,sans-serif;color:#2d3748;background:#fff;transition:border-color .2s,box-shadow .2s;outline:none}.form-input:focus,.form-textarea:focus{border-color:#2196f3;box-shadow:0 0 0 3px #2196f31f}.form-input:disabled{background:#f7fafc;color:#718096;cursor:not-allowed}.form-textarea{resize:vertical;min-height:110px}.card{background:#fff;border-radius:12px;padding:28px 32px;box-shadow:0 2px 12px #00000012;border:1px solid #e8ecf0}.card-title{font-size:18px;font-weight:700;color:#1a202c;margin-bottom:24px;padding-bottom:14px;border-bottom:2px solid #ebf4ff}.data-table{width:100%;border-collapse:collapse;font-size:14px}.data-table thead tr{background:linear-gradient(135deg,#ebf4ff,#dbeafe)}.data-table thead th{padding:13px 16px;text-align:left;font-weight:700;color:#1e40af;font-size:13px;text-transform:uppercase;letter-spacing:.5px}.data-table tbody tr{transition:background .15s;border-bottom:1px solid #f0f4f8}.data-table tbody tr:hover{background:#f8fbff}.data-table tbody td{padding:13px 16px;color:#2d3748}.alert{padding:12px 16px;border-radius:8px;font-size:14px;font-weight:500;margin-bottom:16px}.alert-error{background:#fff5f5;color:#c53030;border:1px solid #feb2b2}.alert-success{background:#f0fff4;color:#276749;border:1px solid #9ae6b4}.file-input-wrap{border:2px dashed #cbd5e0;border-radius:8px;padding:12px 14px;display:flex;align-items:center;gap:10px;transition:border-color .2s;cursor:pointer}.file-input-wrap:hover{border-color:#2196f3}.file-input-wrap input[type=file]{font-size:13px;color:#4a5568;flex:1;border:none;outline:none;background:transparent;cursor:pointer}.link{color:#2196f3;text-decoration:none;font-weight:500}.link:hover{text-decoration:underline}.link-danger{color:#e53e3e;text-decoration:none;font-weight:500}.link-danger:hover{text-decoration:underline}.badge{display:inline-block;padding:3px 10px;border-radius:999px;font-size:12px;font-weight:600}.badge-blue{background:#ebf4ff;color:#1e40af}.scroll-top{position:fixed;bottom:28px;right:28px;width:44px;height:44px;border-radius:50%;background:linear-gradient(135deg,#2196f3,#1976d2);color:#fff;border:none;cursor:pointer;display:flex;align-items:center;justify-content:center;font-size:18px;box-shadow:0 4px 14px #2196f373;transition:transform .2s;z-index:999}.scroll-top:hover{transform:translateY(-2px)}.spinner{width:38px;height:38px;border:4px solid #e2e8f0;border-top-color:#2196f3;border-radius:50%;animation:spin .7s linear infinite;margin:60px auto}@keyframes spin{to{transform:rotate(360deg)}}.no-data{text-align:center;padding:48px 0;color:#a0aec0;font-size:15px}.no-data-icon{font-size:40px;margin-bottom:10px}.dashboard-footer{margin-top:48px;padding:18px 0;text-align:center;font-size:13px;color:#a0aec0;border-top:1px solid #e8ecf0}.dashboard-footer a{color:#2196f3;text-decoration:none}
