/* ============================================================================
   widgets.css — KPI، بطاقات الإحصاء، شارات البحث، جداول السجل، المودالات الخاصة.
   ============================================================================ */

/* =============================== KPI =============================== */
.kpis{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:14px;margin-bottom:20px;}
.kpi{position:relative;overflow:hidden;border-radius:var(--r-lg);padding:16px;border:1px solid var(--border);background:var(--surface);box-shadow:var(--shadow);display:flex;align-items:center;gap:13px;animation:rise .5s both;}
.kpi::after{content:"";position:absolute;inset-inline-end:-24px;inset-block-start:-24px;width:90px;height:90px;border-radius:50%;background:var(--accent-soft);}
.kpi .kpi-ic{width:48px;height:48px;border-radius:14px;display:flex;align-items:center;justify-content:center;font-size:22px;flex:0 0 auto;background:var(--accent-soft);color:var(--accent);border:1px solid var(--accent-line);}
.kpi .v{font-family:'Reem Kufi';font-weight:700;font-size:27px;line-height:1;color:var(--text);font-variant-numeric:tabular-nums;}
.kpi .l{font-family:'Reem Kufi';font-size:12.5px;color:var(--muted);margin-top:6px;font-weight:600;}
.kpi.k-gold .kpi-ic{background:var(--gold-soft);color:var(--gold);border-color:var(--gold);}
.kpi.k-purple .kpi-ic{background:var(--purple-soft);color:var(--purple);border-color:var(--purple);}
.kpi.k-blue .kpi-ic{background:rgba(91,159,240,.15);color:var(--blue);border-color:var(--blue);}
.kpi.k-warn .kpi-ic{background:var(--warn-soft);color:var(--warn);border-color:var(--warn);}

/* =============================== بطاقات الإحصاء =============================== */
.subjgrid{display:grid;grid-template-columns:repeat(auto-fit,minmax(320px,1fr));gap:16px;}
.subjcard{border:1px solid var(--border);border-radius:var(--r-lg);padding:18px;background:var(--surface);box-shadow:var(--shadow);animation:rise .5s both;}
.subjcard h4{margin:0 0 14px;font-family:'Reem Kufi';font-weight:700;font-size:16px;color:var(--text);display:flex;justify-content:space-between;align-items:center;gap:8px;}
.sem-pill{font-family:'Reem Kufi';font-size:11.5px;font-weight:600;border-radius:30px;padding:3px 11px;background:var(--accent-soft);color:var(--accent);}
.statgrid{display:flex;gap:15px;align-items:center;flex-wrap:wrap;}
.donut{width:92px;height:92px;border-radius:50%;flex:0 0 auto;display:flex;align-items:center;justify-content:center;}
.donut .hole{width:66px;height:66px;border-radius:50%;background:var(--surface);display:flex;flex-direction:column;align-items:center;justify-content:center;border:1px solid var(--border);}
.donut .hole b{font-family:'Reem Kufi';font-weight:700;font-size:19px;color:var(--text);line-height:1;font-variant-numeric:tabular-nums;}
.donut .hole span{font-family:'Reem Kufi';font-size:10px;color:var(--muted);margin-top:2px;}
.avgbox{flex:1;min-width:120px;}
.avgbox .lbl{font-family:'Reem Kufi';font-size:12px;color:var(--muted);font-weight:600;}
.avgbox .big{font-family:'Lalezar';font-size:30px;color:var(--accent);line-height:1.1;font-variant-numeric:tabular-nums;}
.minmax{display:flex;gap:8px;margin-top:8px;}
.minmax span{font-family:'Reem Kufi';font-size:12px;background:var(--surface-2);border-radius:9px;padding:4px 10px;color:var(--text-2);font-weight:600;}
.barlbl{font-family:'Reem Kufi';font-size:12px;color:var(--muted);margin-top:15px;font-weight:600;}
.bar{height:15px;border-radius:9px;background:var(--ring-track);overflow:hidden;display:flex;margin:7px 0 5px;}
.bar span{display:block;height:100%;transform:scaleX(0);transform-origin:right;animation:grow .8s cubic-bezier(.2,.7,.3,1) forwards;}
.seg-g{background:linear-gradient(90deg,var(--accent),var(--accent-2));}
.seg-a{background:linear-gradient(90deg,var(--danger),#ff8a93);}
.seg-d{background:linear-gradient(90deg,var(--purple),#8b6df0);}
.seg-x{background:linear-gradient(90deg,var(--warn),#ffc878);}
.seg-e{background:var(--ring-track);box-shadow:inset 0 0 0 1px var(--border);}
.seg-ex{background:#0f9b6b;}.seg-vg{background:var(--accent);}.seg-gd{background:#7fd957;}.seg-pa{background:var(--gold);}.seg-wk{background:var(--warn);}.seg-vw{background:var(--danger);}
.legend{display:flex;flex-wrap:wrap;gap:7px;margin-top:10px;}
.chip{font-family:'Reem Kufi';font-size:12px;border-radius:30px;padding:4px 11px;display:inline-flex;align-items:center;gap:6px;background:var(--surface-2);color:var(--text-2);font-weight:600;}
.chip i{width:10px;height:10px;border-radius:50%;display:inline-block;}
.passline{display:flex;gap:9px;flex-wrap:wrap;margin-top:13px;align-items:center;}
.tag{font-family:'Reem Kufi';font-weight:600;border-radius:10px;padding:5px 12px;font-size:13px;display:inline-flex;gap:5px;}
.tag-ok{background:var(--accent-soft);color:var(--accent);}
.tag-no{background:var(--danger-soft);color:var(--danger);}
.succ{font-family:'Reem Kufi';font-weight:700;}

/* =============================== شارات القيم والبحث =============================== */
.gbadge{font-family:'Reem Kufi';font-weight:600;border-radius:9px;padding:3px 11px;font-size:13px;display:inline-block;font-variant-numeric:tabular-nums;}
.g-num{background:rgba(91,159,240,.18);color:var(--blue);}
.g-zero{background:var(--danger-soft);color:var(--danger);}
.g-abs{background:var(--warn-soft);color:var(--warn);}
.g-dep{background:var(--purple-soft);color:var(--purple);}
.g-exc{background:var(--accent-soft);color:var(--accent);}
.g-none{background:var(--surface-2);color:var(--faint);}
/* دائرة المراجعة الحمراء حول المجموع في نتائج البحث — دائرية حقيقية دائمًا */
.search-fail-ring{
  display:inline-flex;align-items:center;justify-content:center;
  width:46px;height:46px;min-width:46px;aspect-ratio:1 / 1;
  padding:0;box-sizing:border-box;border-radius:50%;
  border:2.5px solid var(--danger);
  box-shadow:0 0 0 3px var(--danger-soft);       /* حلقة خارجية خفيفة (Double Ring) */
  background:transparent;vertical-align:middle;
}
.search-fail-ring .gbadge{background:transparent;padding:0;font-size:13.5px;font-weight:700;}
/* نسخة الكلمات (صفر/غ/حرمان/غاش/عذر): دائرة أكبر بخط أصغر — تبقى width===height دائمًا */
.search-fail-ring--text{width:58px;height:58px;min-width:58px;}
.search-fail-ring--text .gbadge{font-size:11.5px;line-height:1.1;text-align:center;white-space:nowrap;}
.mk-outof{color:var(--muted);font-size:12px;font-weight:600;white-space:nowrap;}
@media (max-width:860px){
  .search-fail-ring{width:42px;height:42px;min-width:42px;border-width:2px;}
  .search-fail-ring--text{width:54px;height:54px;min-width:54px;}
  .search-fail-ring--text .gbadge{font-size:11px;}
}

.matchcard{border:1px solid var(--border);border-radius:var(--r-lg);padding:18px;margin-bottom:15px;background:var(--surface);box-shadow:var(--shadow);animation:rise .45s both;}
.matchhead{display:flex;align-items:center;gap:13px;flex-wrap:wrap;border-bottom:1px solid var(--border);padding-bottom:13px;margin-bottom:13px;}
.avatar{width:52px;height:52px;border-radius:16px;background:linear-gradient(135deg,var(--accent),var(--accent-2));color:var(--accent-ink);display:flex;align-items:center;justify-content:center;font-family:'Lalezar';font-size:22px;flex:0 0 auto;box-shadow:var(--shadow-accent);}
.matchhead .nm{font-family:'Reem Kufi';font-weight:700;font-size:21px;color:var(--text);}
.scrollx{overflow-x:auto;-webkit-overflow-scrolling:touch;border-radius:var(--r);border:1px solid var(--border);margin-top:8px;}
.mini{min-width:430px;margin:0;}
.mini th,.mini td{font-size:13px;padding:9px 7px;}
.mini thead th{background:var(--surface-3);}
.mini td.subj{text-align:right;font-family:'Reem Kufi';font-weight:600;white-space:nowrap;color:var(--text);}
.dtable{min-width:840px;}
.dtable td{color:var(--text-2);}
.mkbox{margin-top:15px;border:1px solid var(--gold-soft);border-radius:var(--r);background:var(--gold-soft);padding:14px;}
.mkhead{display:flex;align-items:center;gap:9px;font-family:'Reem Kufi';font-weight:700;color:var(--gold);font-size:15px;margin-bottom:10px;}
.mkhead .mkcount{margin-inline-start:auto;background:var(--gold);color:#241a02;border-radius:30px;padding:2px 12px;font-size:12px;font-weight:700;}
.mktbl{min-width:380px;}
.mktbl thead th{background:linear-gradient(135deg,var(--gold),#e0a93a)!important;color:#241a02!important;}
.mktbl td.mkgrade{font-weight:700;color:var(--gold);}
.qpart{display:inline-block;background:var(--surface);border:1px solid var(--border-2);border-radius:8px;padding:3px 8px;margin:1px 2px;font-size:12px;color:var(--text-2);}
.qtot{display:inline-block;background:var(--gold-soft);border-radius:8px;padding:3px 9px;margin:1px 2px;font-size:12px;font-weight:700;color:var(--gold);}
.qbadge{display:inline-block;background:var(--purple-soft);color:var(--purple);border-radius:7px;padding:1px 8px;font-size:11px;font-family:'Reem Kufi';font-weight:600;vertical-align:middle;}

/* =============================== سجل التعديلات =============================== */
.audit-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:12px;margin-bottom:14px;}
.audit-grid .wide{grid-column:span 2;}
.audit-actions{display:flex;gap:10px;flex-wrap:wrap;align-items:center;margin-top:10px;}
.audit-table{min-width:1080px;}
.audit-table td{vertical-align:top;}
.audit-table td.audit-student{text-align:right;font-family:'Amiri','IBM Plex Sans Arabic',serif;font-size:15px;font-weight:700;color:var(--text);}
.audit-op{font-family:'Reem Kufi';font-weight:700;border-radius:9px;padding:4px 10px;font-size:12px;display:inline-block;white-space:nowrap;}
.audit-first{background:var(--accent-soft);color:var(--accent);}
.audit-edit{background:var(--warn-soft);color:var(--warn);}
.audit-delete{background:var(--danger-soft);color:var(--danger);}
.audit-state{background:var(--purple-soft);color:var(--purple);}
.audit-pager{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap;margin-top:14px;}
.audit-pager .muted{font-family:'Reem Kufi';}
.audit-table tbody tr{cursor:pointer;}
.audit-table tbody tr:hover{background:var(--accent-soft);}
.audit-detail-modal{max-width:780px;max-height:90vh;display:flex;flex-direction:column;padding-top:16px;}
.audit-detail-modal .modal-head{display:flex;align-items:center;gap:10px;margin-bottom:6px;flex:0 0 auto;}
.audit-detail-modal .modal-head h3{margin:0;flex:1;text-align:right;}
.audit-detail-modal #auditDetailBody{overflow:auto;flex:1 1 auto;padding-inline-end:2px;}
.audit-detail-modal .actions{flex:0 0 auto;}
.audit-detail-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin-top:12px;}
.audit-detail-item{border:1px solid var(--border);border-radius:12px;background:var(--surface-2);padding:10px 12px;min-width:0;}
.audit-detail-item.wide{grid-column:1 / -1;}
.audit-detail-item .lbl{font-family:'Reem Kufi';font-weight:700;color:var(--muted);font-size:12px;margin-bottom:4px;}
.audit-detail-item .val{color:var(--text);font-size:14px;line-height:1.65;word-break:break-word;}
.reason-quick{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin:8px 0 12px;}
.reason-quick button{font-size:12.5px;padding:9px 10px;box-shadow:none;}
@media (max-width:520px){
  .audit-grid .wide{grid-column:auto;}
  .audit-detail-grid{grid-template-columns:1fr;}
  .reason-quick{grid-template-columns:1fr;}
}
