/* =========================================================
   V106 — GLOBAL NEUTRAL CARDS
   Hilangkan seluruh accent strip/garis warna dekoratif pada kartu
   Admin, PIC/Pelatih, Siswa, dan halaman publik.
   Warna status tetap digunakan pada ikon, badge, dan progress bar.
   ========================================================= */

:root{
  --neutral-card-border:#e4ebf5;
  --neutral-card-shadow:0 9px 25px rgba(15,39,71,.045);
  --neutral-card-shadow-hover:0 11px 28px rgba(15,39,71,.06);
}

/* Common information cards */
.app-content :is(
  .form-card,
  .panel,
  .stat-card,
  .quick-card,
  .pay-card,
  .absensi-card,
  .success-card,
  .access-box,
  .summary-item,
  .help-card,
  .dashboard-kpi-v63,
  .dashboard-progress-card-v63,
  .dashboard-chart-card-v63,
  .dashboard-validation-card-v63,
  .notification-dashboard-item-v62,
  .notification-item-v62,
  .announcement-item-v62,
  .op-report-card-v54,
  .op-stat-card-v54,
  .v7627-classification-card,
  .v7627-member-card,
  .v7627-warning-card
),
.app-content .dashboard-report-summary-v63 > article,
.app-content .dashboard-bottom-grid-v63 > article,
.app-content .dashboard-kpi-grid-v63 > article,
.app-content .dashboard-progress-grid-v63 > article,
.app-content :is(article,a,section,div)[class*="priority-card"],
.app-content :is(article,a,section,div)[class*="attention-card"],
.app-content :is(article,a,section,div)[class*="action-card"],
.app-content :is(article,a,section,div)[class*="summary-card"],
.app-content :is(article,a,section,div)[class*="metric-card"],
.app-content :is(article,a,section,div)[class*="overview-card"],
.app-content :is(article,a,section,div)[class*="report-card"],
.app-content :is(article,a,section,div)[class*="kpi-card"]{
  border-top-width:1px !important;
  border-right-width:1px !important;
  border-bottom-width:1px !important;
  border-left-width:1px !important;
  border-style:solid !important;
  border-color:var(--neutral-card-border) !important;
  box-shadow:var(--neutral-card-shadow) !important;
  outline:none !important;
}

/* Generic versioned cards used by newer patches */
.app-content :is(article,a,section,div)[class*="-card-v"]{
  border-top-color:var(--neutral-card-border) !important;
  border-right-color:var(--neutral-card-border) !important;
  border-bottom-color:var(--neutral-card-border) !important;
  border-left-color:var(--neutral-card-border) !important;
}

/* Reduce thick accent borders on article-based dashboard cards */
.app-content article{
  border-left-color:var(--neutral-card-border) !important;
  border-right-color:var(--neutral-card-border) !important;
  border-top-color:var(--neutral-card-border) !important;
  border-bottom-color:var(--neutral-card-border) !important;
}

.app-content article[class*="card"],
.app-content article[class*="priority"],
.app-content article[class*="attention"],
.app-content article[class*="action"],
.app-content article[class*="metric"],
.app-content article[class*="summary"]{
  border-left-width:1px !important;
  border-right-width:1px !important;
  border-top-width:1px !important;
  border-bottom-width:1px !important;
  border-style:solid !important;
  border-color:var(--neutral-card-border) !important;
  box-shadow:var(--neutral-card-shadow) !important;
}

/* Known colored variants: neutralize only the card edge */
.app-content :is(article,div,a)[class*="card"].money,
.app-content :is(article,div,a)[class*="card"].success,
.app-content :is(article,div,a)[class*="card"].warning,
.app-content :is(article,div,a)[class*="card"].danger,
.app-content :is(article,div,a)[class*="card"].green,
.app-content :is(article,div,a)[class*="card"].orange,
.app-content :is(article,div,a)[class*="card"].purple,
.app-content :is(article,div,a)[class*="card"].red,
.app-content :is(article,div,a)[class*="card"].blue{
  border-color:var(--neutral-card-border) !important;
  border-width:1px !important;
  box-shadow:var(--neutral-card-shadow) !important;
}

/* Remove decorative strips/blobs attached with pseudo elements */
.app-content :is(
  article[class*="card"],
  article[class*="priority"],
  article[class*="attention"],
  article[class*="action"],
  div[class*="priority-card"],
  div[class*="metric-card"],
  div[class*="summary-card"],
  a[class*="report-card"],
  a[class*="action-card"]
)::before,
.app-content :is(
  article[class*="card"],
  article[class*="priority"],
  article[class*="attention"],
  article[class*="action"],
  div[class*="priority-card"],
  div[class*="metric-card"],
  div[class*="summary-card"],
  a[class*="report-card"],
  a[class*="action-card"]
)::after{
  content:none !important;
  display:none !important;
}

/* Dashboard-specific fixes visible in current design */
.dashboard-kpi-v63,
.dashboard-kpi-v63.money,
.dashboard-kpi-v63.warning,
.dashboard-kpi-v63.success,
.dashboard-kpi-v63.danger{
  border:1px solid var(--neutral-card-border) !important;
  box-shadow:var(--neutral-card-shadow) !important;
}

.dashboard-report-summary-v63 > article,
.dashboard-progress-card-v63{
  border:1px solid var(--neutral-card-border) !important;
}

/* Notification/priority cards frequently use an inset left strip */
.notification-dashboard-grid-v62 > article,
.notification-dashboard-grid-v62 > a,
[class*="priority-grid"] > article,
[class*="attention-grid"] > article,
[class*="action-grid"] > article{
  border:1px solid var(--neutral-card-border) !important;
  box-shadow:var(--neutral-card-shadow) !important;
}

/* Keep hover restrained, without reintroducing colored edges */
.app-content :is(
  .quick-card,
  .dashboard-kpi-v63,
  .dashboard-progress-card-v63,
  .op-report-card-v54,
  article[class*="card"],
  a[class*="card"]
):hover{
  border-color:#dbe5f1 !important;
  box-shadow:var(--neutral-card-shadow-hover) !important;
}

/* Public-facing information cards */
body:not(.app-body) main :is(article,section,div,a)[class*="card"]{
  border-left-color:var(--neutral-card-border) !important;
  border-right-color:var(--neutral-card-border) !important;
  border-top-color:var(--neutral-card-border) !important;
  border-bottom-color:var(--neutral-card-border) !important;
}

body:not(.app-body) main :is(article,section,div,a)[class*="card"]::before,
body:not(.app-body) main :is(article,section,div,a)[class*="card"]::after{
  /* Only decorative background pseudo-elements are suppressed globally. */
  border-color:transparent !important;
}

/* Do not alter semantic color indicators */
.badge,
.status-pill,
.op-pill-v54,
[class*="badge"],
[class*="status-chip"],
[class*="progress-track"],
[class*="progress-bar"],
[class*="-icon-v"]{
  box-shadow:none;
}
