/* ==========================================================
   Simple GD Certificate — Design System v3 (User + Admin)
   Primary #21225F | Accent #22B6EC | BG #FFFFFF
   Border #E2E8F0 | Text #2D3748 | Light #718096
   Success #38A169 | Error #E53E3E
   ========================================================== */

:root{
  --gc-primary:#21225F;
  --gc-primary-dark:#171847;
  --gc-accent:#22B6EC;
  --gc-accent-soft:rgba(34,182,236,.12);
  --gc-bg:#FFFFFF;
  --gc-border:#E2E8F0;
  --gc-text:#2D3748;
  --gc-text-light:#718096;
  --gc-success:#38A169;
  --gc-success-soft:#F0FFF4;
  --gc-error:#E53E3E;
  --gc-error-soft:#FFF5F5;
  --gc-tint:#EEF1FF;
  --gc-radius:14px;
  --gc-radius-sm:10px;
  --gc-shadow:0 6px 24px rgba(33,34,95,.08);
  --gc-font:'Vazirmatn','IRANSansX','Segoe UI',Tahoma,sans-serif;
}

.gc-page, .gc-page *, .gc-page *::before, .gc-page *::after,
.gca-wrapper, .gca-wrapper *, .gca-wrapper *::before, .gca-wrapper *::after { box-sizing:border-box; }

.gc-page{
  direction:rtl;
  font-family:var(--gc-font);
  color:var(--gc-text);
  max-width:760px;
  margin:32px auto;
  padding:0 16px;
  width:100%;
}
.gc-page-wide{ max-width:960px; }

/* ==========================================================
   کارت اصلی (کاربر)
   ========================================================== */
.gc-card{
  background:var(--gc-bg);
  border:1px solid var(--gc-border);
  border-radius:var(--gc-radius);
  box-shadow:var(--gc-shadow);
  overflow:hidden;
}
.gc-card-header{
  padding:24px 28px 20px;
  border-bottom:1px solid var(--gc-border);
  background:linear-gradient(180deg,#FAFBFF 0%,#FFFFFF 100%);
}
.gc-card-header h2{
  margin:0 0 6px;
  color:var(--gc-primary);
  font-size:20px;
  font-weight:800;
  position:relative;
  padding-bottom:10px;
}
.gc-card-header h2::after{
  content:'';
  position:absolute; right:0; bottom:0;
  width:46px; height:4px; border-radius:4px;
  background:var(--gc-accent);
}
.gc-card-header p{ margin:0; color:var(--gc-text-light); font-size:13.5px; line-height:1.9; }
.gc-card-body{ padding:24px 28px 28px; }

/* ==========================================================
   نشان‌های اطلاعاتی
   ========================================================== */
.gc-meta{ display:flex; flex-wrap:wrap; gap:10px; margin-bottom:18px; }
.gc-meta-item{
  background:var(--gc-tint);
  border:1px solid var(--gc-border);
  color:var(--gc-text);
  border-radius:999px;
  padding:7px 14px;
  font-size:12.5px; font-weight:600;
}
.gc-meta-item strong{ color:var(--gc-primary); }

/* ==========================================================
   هشدارها
   ========================================================== */
.gc-alert{ border-radius:var(--gc-radius-sm); padding:12px 16px; font-size:13.5px; font-weight:600; margin-bottom:18px; border:1px solid; line-height:1.9; }
.gc-alert-warning{ background:var(--gc-tint); border-color:#C7CBF5; color:var(--gc-primary); }
.gc-alert-error{ background:var(--gc-error-soft); border-color:#FEB2B2; color:var(--gc-error); }
.gc-alert-success{ background:var(--gc-success-soft); border-color:#9AE6B4; color:var(--gc-success); }

/* ==========================================================
   فیلدها (هر دو صفحه کاربر و ادمین)
   ========================================================== */
.gc-grid-2{ display:grid; grid-template-columns:1fr 1fr; gap:14px; }
.gc-grid-id{ display:grid; grid-template-columns:170px 1fr; gap:14px; }
.gc-grid-3{ display:grid; grid-template-columns:2fr 1fr 1.2fr; gap:12px; }
.gc-field{ margin-bottom:14px; }
.gc-field label{ display:block; margin-bottom:6px; font-size:13.5px; font-weight:700; color:var(--gc-text); }
.gc-input, .gc-select,
.gca-form input, .gca-form select{
  width:100%;
  padding:11px 14px;
  border:1.5px solid var(--gc-border);
  border-radius:var(--gc-radius-sm);
  background:#fff;
  font-family:inherit;
  font-size:14px;
  color:var(--gc-text);
  transition:border-color .2s, box-shadow .2s;
}
.gc-input:focus, .gc-select:focus,
.gca-form input:focus, .gca-form select:focus{
  outline:none;
  border-color:var(--gc-accent);
  box-shadow:0 0 0 4px var(--gc-accent-soft);
}
.gc-select[multiple],
.gca-form select[multiple]{ height:150px; padding:8px; }
.gc-select[multiple] option,
.gca-form select[multiple] option{ padding:8px 10px; border-radius:6px; margin-bottom:2px; }
.gc-select[multiple] option:checked,
.gca-form select[multiple] option:checked{
  background:var(--gc-accent-soft) linear-gradient(0deg,var(--gc-accent-soft),var(--gc-accent-soft));
  color:var(--gc-primary); font-weight:700;
}
.gc-hint{ display:block; margin-top:6px; font-size:12px; color:var(--gc-text-light); }
.gc-option-disabled{ color:var(--gc-error) !important; }

/* ==========================================================
   باکس مبلغ (کاربر)
   ========================================================== */
.gc-price-box{
  margin:20px 0;
  border:1.5px dashed var(--gc-accent);
  background:var(--gc-accent-soft);
  border-radius:var(--gc-radius);
  padding:16px 18px;
  text-align:center;
}
.gc-price-label{ display:block; font-size:12.5px; color:var(--gc-text-light); margin-bottom:4px; }
.gc-price-value{ display:block; font-size:26px; font-weight:800; color:var(--gc-primary); }
.gc-price-detail{ display:block; margin-top:4px; font-size:12.5px; color:var(--gc-text-light); }

/* ==========================================================
   دکمه‌ها
   ========================================================== */
.gc-btn,
.gca-back-btn{
  display:inline-flex; align-items:center; justify-content:center; gap:8px;
  background:var(--gc-primary);
  color:#fff !important; border:none; cursor:pointer;
  padding:13px 22px;
  border-radius:var(--gc-radius-sm);
  font-family:inherit; font-size:15px; font-weight:700;
  text-decoration:none;
  transition:background .2s, transform .1s, box-shadow .2s;
  box-shadow:0 4px 14px rgba(33,34,95,.25);
}
.gc-btn:hover, .gca-back-btn:hover{ background:var(--gc-primary-dark); color:#fff !important; }
.gc-btn:active{ transform:scale(.98); }
.gc-btn:disabled{ background:#A0AEC0 !important; cursor:not-allowed; box-shadow:none; }
.gc-btn-block{ width:100%; }
.gc-btn-accent{ background:var(--gc-accent); box-shadow:0 4px 14px rgba(34,182,236,.3); }
.gc-btn-accent:hover{ background:#189fcc; }
.gc-btn-download,
.gca-cert-item a{
  display:inline-flex !important; align-items:center; justify-content:center;
  background:var(--gc-success) !important;
  box-shadow:0 4px 14px rgba(56,161,105,.25);
  white-space:nowrap;
  padding:10px 20px !important;
  border-radius:var(--gc-radius-sm) !important;
  color:#fff !important;
  font-weight:700 !important;
  text-decoration:none !important;
}
.gc-btn-download:hover,
.gca-cert-item a:hover{ background:#2F855A !important; }

/* ==========================================================
   لیست گواهینامه‌ها (نتایج — کاربر و ادمین)
   ========================================================== */
.gc-cert-list, .gca-certs{ display:flex; flex-direction:column; gap:12px; }
.gc-cert-item,
.gca-cert-item{
  display:flex; align-items:center; justify-content:space-between; gap:14px;
  border:1px solid var(--gc-border);
  border-radius:var(--gc-radius);
  padding:16px 18px;
  background:#FBFCFF;
  flex-wrap:wrap;
}
.gc-cert-info h3,
.gca-cert-info h3{ margin:0 0 6px; font-size:15px; color:var(--gc-primary); font-weight:800; }
.gc-cert-code,
.gca-cert-code{
  display:inline-block; direction:ltr;
  font-family:'Courier New',monospace; font-size:12.5px; font-weight:700;
  color:var(--gc-text-light);
  background:#EDF2F7; border-radius:6px; padding:3px 8px;
}
.gc-back-link{
  display:inline-block; margin-top:20px;
  color:var(--gc-accent); font-weight:700; font-size:13.5px; text-decoration:none;
}
.gc-back-link:hover{ text-decoration:underline; }

/* ==========================================================
   کارت ورود
   ========================================================== */
.gc-login-card{ text-align:center; padding:48px 28px; }
.gc-login-icon{ font-size:52px; margin-bottom:14px; }
.gc-login-card h2{ margin:0 0 8px; color:var(--gc-primary); font-size:20px; font-weight:800; }
.gc-login-card p{ margin:0 0 22px; color:var(--gc-text-light); font-size:14px; line-height:1.9; }

/* ==========================================================
   اورلی پردازش (ثابت در مرکز صفحه)
   ========================================================== */
.gc-processing-overlay{
  position:fixed; inset:0; z-index:999999;
  display:flex; align-items:center; justify-content:center;
  background:rgba(33,34,95,.55);
  backdrop-filter:blur(4px);
  -webkit-backdrop-filter:blur(4px);
  opacity:0; visibility:hidden;
  transition:opacity .25s ease, visibility .25s ease;
}
.gc-processing-overlay.is-visible{ opacity:1; visibility:visible; }
.gc-processing-card{
  background:#fff; border-radius:18px;
  padding:34px 44px; text-align:center;
  box-shadow:0 24px 70px rgba(0,0,0,.3);
  max-width:88%;
}
.gc-processing-spinner,
.gc-spinner{
  display:inline-block;
  width:48px; height:48px; margin:0 auto 16px;
  border:4px solid var(--gc-accent-soft);
  border-top-color:var(--gc-accent);
  border-radius:50%;
  animation:gc-spin .9s linear infinite;
}
.gc-spinner{ width:18px; height:18px; margin:0; border-width:3px; vertical-align:middle; margin-right:8px; }
.gc-processing-text{ margin:0 0 6px; color:var(--gc-primary); font-size:15.5px; font-weight:800; }
.gc-processing-sub{ margin:0; color:var(--gc-text-light); font-size:12.5px; }
@keyframes gc-spin{ to{ transform:rotate(360deg); } }

/* ==========================================================
   پنل ادمین (استایل‌های مخصوص)
   ========================================================== */
.gca-wrapper{
  direction:rtl;
  font-family:var(--gc-font);
  color:var(--gc-text);
  max-width:1000px;
  margin:32px auto;
  padding:0 16px;
  width:100%;
}
.gca-admin-badge{
  display:inline-flex; align-items:center; gap:8px;
  background:var(--gc-primary); color:#fff;
  padding:8px 16px; border-radius:999px;
  font-size:13px; font-weight:700; margin-bottom:18px;
}
.gca-form{
  background:var(--gc-bg);
  border:1px solid var(--gc-border);
  border-radius:var(--gc-radius);
  box-shadow:var(--gc-shadow);
  padding:28px 28px;
}
.gca-form > div{ margin-bottom:14px; }
.gca-form label{
  display:block; margin-bottom:6px;
  font-size:13.5px; font-weight:700; color:var(--gc-text);
}
.gca-info-box{
  background:var(--gc-tint);
  border:1px solid var(--gc-border);
  border-radius:var(--gc-radius-sm);
  padding:12px 16px;
  margin-bottom:18px;
  font-size:13.5px;
}
.gca-info-box strong{ color:var(--gc-primary); }
.gca-section-title{ margin:26px 0 6px; color:var(--gc-primary); font-size:16px; font-weight:800; }
.gca-section-desc{ margin:0 0 14px; color:var(--gc-text-light); font-size:12.5px; }
.gca-custom-box{
  border:1.5px dashed var(--gc-accent);
  background:#F8FDFF;
  border-radius:var(--gc-radius);
  padding:16px 18px;
  margin-bottom:14px;
}
.gca-custom-box h4{ margin:0 0 12px; color:var(--gc-primary); font-size:14px; font-weight:800; }
.gca-custom-row{
  display:grid;
  grid-template-columns:2fr 1fr 1.2fr;
  gap:12px;
  margin-bottom:10px;
}
.gca-id-row{
  display:grid;
  grid-template-columns:170px 1fr;
  gap:14px;
}
.gca-success-title{
  text-align:center; color:var(--gc-success);
  margin:0 0 20px; font-size:22px; font-weight:800;
}
.gca-back-btn{ margin-top:20px; }

/* دکمه اصلی ادمین (صدور فوری) */
.gca-form button[type="submit"]{
  width:100%;
  padding:14px 22px;
  background:var(--gc-primary);
  color:#fff;
  border:none;
  border-radius:var(--gc-radius-sm);
  font-family:inherit;
  font-size:15px;
  font-weight:700;
  cursor:pointer;
  margin-top:16px;
  box-shadow:0 4px 14px rgba(33,34,95,.25);
  transition:background .2s, transform .1s;
}
.gca-form button[type="submit"]:hover{ background:var(--gc-primary-dark); }
.gca-form button[type="submit"]:active{ transform:scale(.98); }
.gca-form button[type="submit"]:disabled{ background:#A0AEC0 !important; cursor:not-allowed; }

/* خطای بالا فرم ادمین */
.gca-form .gc-alert-error{
  background:var(--gc-error-soft);
  border:1px solid #FEB2B2;
  color:var(--gc-error);
  padding:12px 16px;
  border-radius:var(--gc-radius-sm);
  margin-bottom:18px;
  font-weight:600;
  text-align:center;
}

/* حالت در حال پردازش (فرم ادمین) */
.gca-form.is-submitting{
  position:relative;
  pointer-events:none;
  opacity:.75;
}
.gca-form.is-submitting::after{
  content:'⏳ در حال صدور گواهینامه‌ها، لطفاً صبر کنید...';
  position:absolute; inset:0;
  background:rgba(255,255,255,.85);
  display:flex; align-items:center; justify-content:center;
  font-size:16px; font-weight:700; color:var(--gc-primary);
  border-radius:var(--gc-radius);
  z-index:10;
  backdrop-filter:blur(2px);
}

/* ==========================================================
   سازگاری Select2
   ========================================================== */
.gc-page .select2-container,
.gca-wrapper .select2-container{ width:100% !important; }
.gc-page .select2-selection,
.gca-wrapper .select2-selection{ border:1.5px solid var(--gc-border) !important; border-radius:var(--gc-radius-sm) !important; }

/* ==========================================================
   ریسپانسیو
   ========================================================== */
@media (max-width:640px){
  .gc-page, .gca-wrapper{ margin:16px auto; padding:0 12px; }
  .gc-card-header{ padding:18px 18px 16px; }
  .gc-card-body, .gca-form{ padding:18px 16px 22px; }
  .gc-grid-2, .gc-grid-id, .gc-grid-3,
  .gca-custom-row, .gca-id-row{ grid-template-columns:1fr; }
  .gc-cert-item, .gca-cert-item{ flex-direction:column; align-items:stretch; text-align:center; }
  .gc-btn-download, .gca-cert-item a{ width:100%; }
  .gc-price-value{ font-size:22px; }
  .gc-meta{ justify-content:center; }
}

html, body{ overflow-x:hidden; }