/* =========================================================
   Admin & Affiliate Tailwind-ish Purple SaaS Theme
   - Override Bootstrap → nuansa ungu modern
   - Tambahan khusus Dashboard Affiliate
   - Tanpa Tailwind build (pure CSS)
========================================================= */

/* ===== CSS Variables ===== */
:root{
  --bg:#f8fafc;
  --bg-soft:#eef2ff;
  --text:#0f172a;
  --muted:#64748b;
  --border:#e5e7eb;

  --primary-50:#faf5ff;
  --primary-100:#f3e8ff;
  --primary-200:#e9d5ff;
  --primary-300:#d8b4fe;
  --primary-400:#c084fc;
  --primary-500:#a855f7;
  --primary-600:#9333ea;
  --primary-700:#7e22ce;
  --primary-800:#6b21a8;
  --primary-900:#581c87;

  --ring:rgba(147,51,234,.35);
  --shadow:0 10px 30px rgba(88,28,135,.12);
}

/* ===== Base ===== */
html,body{
  background:linear-gradient(135deg,var(--bg),var(--bg-soft));
  color:var(--text);
}
a{ color:var(--primary-600); text-decoration:none; }
a:hover{ color:var(--primary-700); }

/* ===== Navbar ===== */
.navbar{
  background:#fff !important;
  border-bottom:1px solid var(--border);
}
.navbar-brand{
  font-weight:700;
  color:var(--primary-700)!important;
}

/* ===== Cards ===== */
.card{
  background:#fff;
  border:1px solid var(--border);
  border-radius:1rem;
  box-shadow:var(--shadow);
}
.card-soft{
  border-style:dashed;
  border-color:rgba(168,85,247,.35)!important;
}

/* ===== Buttons ===== */
.btn{
  border-radius:.75rem;
  font-weight:600;
  transition:all .15s ease;
}
.btn:focus{ box-shadow:0 0 0 .25rem var(--ring); }

.btn-primary{
  background:linear-gradient(180deg,var(--primary-500),var(--primary-600));
  border:0;
}
.btn-primary:hover{
  background:linear-gradient(180deg,var(--primary-600),var(--primary-700));
}
.btn-outline-primary{
  color:var(--primary-700);
  border:2px solid var(--primary-300);
  background:#fff;
}
.btn-outline-primary:hover{
  background:var(--primary-50);
  border-color:var(--primary-500);
}

/* ===== Forms ===== */
.form-control,.form-select,.form-check-input{
  border-radius:.75rem;
  border:1px solid var(--border);
}
.form-control:focus,.form-select:focus{
  border-color:var(--primary-400);
  box-shadow:0 0 0 .25rem var(--ring);
}
.form-check-input:checked{
  background-color:var(--primary-600);
  border-color:var(--primary-600);
}

/* ===== Alerts ===== */
.alert{ border-radius:.75rem; border:0; }
.alert-success{
  background:var(--primary-50);
  border-left:6px solid var(--primary-400);
}
.alert-danger{
  background:#fef2f2;
  border-left:6px solid #f87171;
}

/* ===== Tables ===== */
.table{
  background:#fff;
  border-color:var(--border);
}
.table thead th{
  font-weight:700;
  color:var(--primary-800);
}
.table tbody tr:hover{
  background:var(--primary-50);
}

/* ===== Badges ===== */
.badge{
  border-radius:999px;
  padding:.35rem .65rem;
  font-weight:600;
}
.badge.bg-success{
  background:var(--primary-600)!important;
}

/* =========================================================
   AFFILIATE DASHBOARD (KHUSUS)
========================================================= */

/* Statistik cards */
.aff-stat{
  display:flex;
  flex-direction:column;
  justify-content:center;
  align-items:center;
  padding:1.5rem;
  border-radius:1rem;
  background:#fff;
  box-shadow:var(--shadow);
  border:1px solid var(--border);
}
.aff-stat .value{
  font-size:1.8rem;
  font-weight:800;
  color:var(--primary-700);
}
.aff-stat .label{
  color:var(--muted);
  font-size:.9rem;
}

/* Affiliate link box */
.aff-link-box{
  background:linear-gradient(135deg,var(--primary-50),#fff);
  border:1px dashed var(--primary-300);
  border-radius:1rem;
  padding:1rem;
}
.aff-link-box input{
  font-family:monospace;
  font-size:.9rem;
  background:#fff;
}

/* Komisi amount */
.aff-amount{
  font-size:1.4rem;
  font-weight:700;
  color:var(--primary-800);
}

/* ===== Utilities ala Tailwind ===== */
.rounded-2xl{ border-radius:1rem; }
.shadow-soft{ box-shadow:var(--shadow); }
.bg-card{ background:#fff; }
.text-muted{ color:var(--muted)!important; }
.text-primary{ color:var(--primary-700)!important; }
.border-dashed{ border-style:dashed; }

/* ===== Summernote polish ===== */
.note-editor.note-frame{
  border-radius:1rem;
  border:1px solid var(--border);
  box-shadow:var(--shadow);
}
.note-toolbar{
  background:var(--primary-50)!important;
  border-bottom:1px solid var(--border)!important;
}

/* ===== Expired overlay ===== */
.expired-overlay{
  position:fixed;
  inset:0;
  background:rgba(24,24,27,.75);
  display:flex;
  align-items:center;
  justify-content:center;
  z-index:9999;
}
.expired-card{
  background:#fff;
  padding:2rem;
  border-radius:1rem;
  text-align:center;
  box-shadow:0 20px 60px rgba(88,28,135,.25);
}
