html,
body {
  height: 100%;
  margin: 0;
}

#app>div {
  display: flex;
  flex-direction: column;
  min-height: calc(100vh - 1.5rem);
}

main {
  flex: 1;
}

footer {
  background: #f1f1f1;
  padding: 1rem;
  text-align: center;
}

/* Gradient cho section giới thiệu */
section.bg-light h2 {
  background: linear-gradient(90deg, #0d6efd, #6610f2);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
}

/* Card tính năng hover effect */
section .border.rounded {
  transition: transform 0.3s, box-shadow 0.3s;
}

section .border.rounded:hover {
  transform: translateY(-5px);
  box-shadow: 0 8px 20px rgba(0, 0, 0, 0.15);
}

/* Icon màu sắc nổi bật */
section i.fad {
  transition: color 0.3s;
}

section i.fad:hover {
  color: #0d6efd;
}

/* Section spacing */
section {
  padding-top: 60px;
  padding-bottom: 60px;
}



.bg-gradient-primary {
  background: linear-gradient(135deg, #0d6efd, #6610f2);
}

.bg-gradient-danger {
  background: linear-gradient(135deg, #dc3545, #bd2130);
}

.bg-gradient-info {
  background: linear-gradient(135deg, #0dcaf0, #0a9ec0);
}

.bg-gradient-warning {
  background: linear-gradient(135deg, #ffc107, #e0a800);
}

.bg-gradient-success {
  background: linear-gradient(135deg, #198754, #146c43);
}

.bg-gradient-secondary {
  background: linear-gradient(135deg, #6c757d, #495057);
}

.bg-gradient-light {
  background: linear-gradient(135deg, #f8f9fa, #e9ecef);
}

.bg-gradient-dark {
  background: linear-gradient(135deg, #212529, #000000);
}


.feature-card {
  transition: transform 0.3s, box-shadow 0.3s;
}

.feature-card:hover {
  transform: translateY(-8px);
  box-shadow: 0 10px 25px rgba(0, 0, 0, 0.15);
}

.hover-hide {
  opacity: 0;
  transition: opacity .5s ease;
}

.trigger-show:hover .hover-hide {
  opacity: 1;
}

.no-copy {
  user-select: none;
  -webkit-user-select: none;
  -moz-user-select: none;
  -ms-user-select: none;
}

.vue-watermark-overlay {
  background-size: 200px 150px;
  /* đảm bảo pattern lặp đúng */
}

.watermark {
  position: relative;
  overflow: hidden;
}

.watermark::after {
  color: rgba(0, 0, 0, 0.6);
  content: "Không Sao Chụp - Do Not Copy";
  position: absolute;
  font-weight: 900;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%) rotate(-30deg);
  pointer-events: none;
  z-index: 999;

  /* tạo nhiều watermark bằng text-shadow */
  text-shadow:
    120px 80px rgba(0, 0, 0, 0.6),
    -150px -60px rgba(0, 0, 0, 0.6),
    90px -100px rgba(0, 0, 0, 0.6),
    -200px 120px rgba(0, 0, 0, 0.6),
    50px 150px rgba(0, 0, 0, 0.6),
    -80px 200px rgba(0, 0, 0, 0.6),
    180px -50px rgba(0, 0, 0, 0.6),
    -220px 30px rgba(0, 0, 0, 0.6);
}

.rick-content img {
  max-width: 100%;
}

.navbar,
.btn:not(.btn-link),
.input-group>*,
.card,
.ql-toolbar,
.ql-container,
.form-control,
.form-select,
.alert,
.swal2-input,
.swal2-select,
button[type="button"],
.retro-shadow {
  box-shadow: 3px 3px 0 0 #524c4c;
}

.input-group>*:last-child {
  z-index: 1 !important;
}

.input-group>*:focus~* {
  z-index: 2 !important;
}

.btn:not(.btn-link):hover {
  box-shadow: 1px 1px 0 0 #524c4c;
}

.btn:not(.btn-link)[class*="primary"] {
  box-shadow: 3px 3px 0 0 #153668 !important;
}

.btn:not(.btn-link)[class*="warning"] {
  box-shadow: 3px 3px 0 0 #7a5f0e !important;
}

.btn:not(.btn-link)[class*="danger"] {
  box-shadow: 3px 3px 0 0 #6f0d17 !important;
}

.btn:not(.btn-link)[class*="success"] {
  box-shadow: 3px 3px 0 0 #104e31 !important;
}

.btn:not(.btn-link)[class*="info"] {
  box-shadow: 3px 3px 0 0 #0e515f !important;
}

input:not([type="range"]):focus,
.swal2-select:focus,
.btn:not(.btn-link):focus,
.form-select:focus,
.btn:not(.btn-link)[class*="primary"]:focus,
.retro-shadow:focus {
  outline: none;
  box-shadow: 3px 3px 0 0 #5498ff !important;
}

.btn:not(.btn-link)[class*="warning"]:focus {
  box-shadow: 3px 3px 0 0 #ffd34d !important;
}

.btn:not(.btn-link)[class*="danger"]:focus {
  box-shadow: 3px 3px 0 0 #ff5b6b !important;
}

.btn:not(.btn-link)[class*="success"]:focus {
  box-shadow: 3px 3px 0 0 #46da95 !important;
}

.btn:not(.btn-link)[class*="info"]:focus {
  box-shadow: 3px 3px 0 0 #41dfff !important;
}

.no-retro:not(.btn-link),
.no-retro:not(.btn-link):focus,
.no-retro:not(.btn-link):hover {
  box-shadow: none !important;
}

[class*="-outline-"]:not(:hover):not(:focus) {
  background-color: #FFF !important;
}

.bg-dotted:before {
  content: "";
  z-index: -1;
  pointer-events: none;
  background-image: radial-gradient(circle at center, #0d6efd 1px, transparent 1px);
  opacity: .28;
  will-change: transform;
  background-size: 16px 16px;
  position: fixed;
  inset: 0;
}

html {
  cursor: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAABFklEQVRYR9WXURLDIAhE6/0PbSdOtUpcd1Gnpv1KGpTHBpCE1/cXq+vrMph7dGvXZTtpfW10DCA5jrH1H0Jhs5E0hnZdCR+vb5S8Nn8mQCeS9BdSalYJqMBjAGzq59xAESN7VFVUgV8AZB/dZBR7QTFDCqGquvUBVVoEtgIwpQRzmANSFHgWQKExHdIrPeuMvQNDarXe6nC/AutgV3JW+6bgqQLeV8FekRtgV+ToDKEKnACYKsfZjjkam7a0ZpYTytwmgainpC3HvwBocgKOxqRjehoR9DFKNFYtOwCGYCszobeCbl26N6yyQ6g8X/Wex/rBPsNEV6qAMaJPMynIHQCoSqS9JSMmwef51LflTgCRszU7DvAGiV6mHWfsaVUAAAAASUVORK5CYII=), auto
}

/* Áp dụng cho tất cả phần tử thường có cursor pointer */
a,
button,
input[type="button"],
input[type="submit"],
input[type="checkbox"],
input[type="radio"],
input[type="datetime-local"],
input[type="range"],
select,
option,
label[for] {
  cursor: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAAzElEQVRYR+2X0Q6AIAhF5f8/2jYXZkwEjNSVvVUjDpcrGgT7FUkI2D9xRfQETwNIiWO85wfINfQUEyxBG2ArsLwC0jioGt5zFcwF4OYDPi/mBYKm4t0U8ATgRm3ThFoAqkhNgWkA0jJLvaOVSs7j3qMnSgXWBMiWPXe94QqMBMBc1VZIvaTu5u5pQewq0EqNZvIEMCmxAawK0DNkay9QmfFNAJUXfgGgUkLaE7j/h8fnASkxHTz0DGIBMCnBeeM7AArpUd3mz2x3C7wADglA8BcWMZhZAAAAAElFTkSuQmCC) 14 0, pointer !important;
}