/* Shared brand tokens - وحدة الموهبة والابتكار / عمادة شؤون الطلاب / جامعة القصيم */
:root{
  --navy: #2f3a70;
  --navy-dark: #232b56;
  --teal: #188e92;
  --teal-dark: #126e71;
  --teal-light: #e6f4f4;
  --bg: #f7f8fb;
  --card: #ffffff;
  --border: #e4e7f0;
  --text: #1c2130;
  --text-muted: #6b7285;
  --danger: #c0392b;
  --success: #1f8a4c;
  --warning: #b8860b;
  --radius: 14px;
  --shadow: 0 4px 18px rgba(47,58,112,.08);
  font-size: 16px;
}
*{box-sizing:border-box;}
html,body{margin:0;padding:0;}
[hidden]{display:none !important;}
body.is-guest .view:not(#view-login):not(#view-otp){display:none !important;}
body.is-guest #btn-logout,
body.is-guest #admin-who,
body.is-guest #btn-announce,
body.is-guest .ach-modal,
body.is-guest .lightbox{display:none !important;}
html{overflow-x:hidden;}
body{
  background:var(--bg);
  color:var(--text);
  font-family:"Tajawal","Segoe UI",Tahoma,Arial,sans-serif;
  direction:rtl;
  text-align:right;
  -webkit-font-smoothing:antialiased;
  overflow-x:hidden;
  min-height:100%;
}
a{color:inherit;text-decoration:none;}
button, .btn{
  font-family:inherit;
  cursor:pointer;
  border:none;
  border-radius:10px;
  padding:12px 18px;
  font-size:15px;
  font-weight:600;
  transition:transform .08s ease, opacity .15s ease, background .15s ease;
}
button:active, .btn:active{transform:scale(.98);}
.btn-primary{background:var(--teal);color:#fff;}
.btn-primary:hover{background:var(--teal-dark);}
.btn-secondary{background:var(--navy);color:#fff;}
.btn-secondary:hover{background:var(--navy-dark);}
.btn-outline{background:transparent;color:var(--navy);border:1.5px solid var(--border);}
.btn-outline:hover{border-color:var(--navy);}
.btn-danger{background:#fdecea;color:var(--danger);}
.btn-block{width:100%;display:block;}
.btn[disabled]{opacity:.55;cursor:not-allowed;}
input, textarea{
  font-family:inherit;
  font-size:15px;
  width:100%;
  padding:11px 14px;
  border-radius:10px;
  border:1.5px solid var(--border);
  background:#fff;
  color:var(--text);
  direction:rtl;
}
/* Native iOS/Safari pickers reverse Arabic if the select itself is RTL. */
select{
  font-family:inherit;
  font-size:15px;
  width:100%;
  padding:11px 14px;
  border-radius:10px;
  border:1.5px solid var(--border);
  background:#fff;
  color:var(--text);
  direction:ltr;
  text-align:right;
  text-align-last:right;
  unicode-bidi:isolate;
}
input:focus, select:focus, textarea:focus{
  outline:none;
  border-color:var(--teal);
  box-shadow:0 0 0 3px var(--teal-light);
}
label{display:block;font-size:13.5px;font-weight:600;color:var(--text-muted);margin:0 0 6px;}
.field{margin-bottom:16px;}
.card{
  background:var(--card);
  border-radius:var(--radius);
  box-shadow:var(--shadow);
  border:1px solid var(--border);
}
.badge{
  display:inline-block;
  padding:3px 10px;
  border-radius:999px;
  font-size:12.5px;
  font-weight:700;
}
.badge-pending{background:#fff6e0;color:var(--warning);}
.badge-approved{background:#e6f6ec;color:var(--success);}
.badge-action{background:#fff6e0;color:var(--warning);}
.badge-completed{background:#e6f6ec;color:var(--success);}
.badge-cancelled{background:#f3f4f6;color:#555;}
.badge-rejected{background:#fdecea;color:var(--danger);}
.badge-full{background:#eef2ff;color:#3730a3;}
.spinner{
  width:20px;height:20px;border-radius:50%;
  border:3px solid var(--teal-light);border-top-color:var(--teal);
  animation:spin .7s linear infinite;display:inline-block;
}
@keyframes spin{to{transform:rotate(360deg);}}
@media (max-width:720px){
  input, select, textarea{font-size:16px;}
  .btn, button{min-height:44px;}
}
.toast{
  position:fixed; bottom:20px; right:50%; transform:translateX(50%);
  background:var(--navy-dark); color:#fff; padding:12px 22px; border-radius:12px;
  font-size:14.5px; box-shadow:0 8px 24px rgba(0,0,0,.25); z-index:999; max-width:90vw; text-align:center;
}
.toast.error{background:var(--danger);}
.toast.success{background:var(--success);}
button.sdg-link{
  display:inline;
  padding:0;
  margin:0;
  border:0;
  background:none;
  color:var(--teal);
  font:inherit;
  font-weight:800;
  text-decoration:underline;
  min-height:0;
  transform:none;
}
.sdg-link:hover{color:var(--teal-dark);}
.sdg-modal{
  position:fixed; inset:0; z-index:500;
  background:rgba(24,28,48,.55);
  display:flex; align-items:center; justify-content:center;
  padding:18px 14px;
}
.sdg-modal[hidden]{display:none !important;}
.sdg-modal-card{
  width:min(640px,100%);
  max-height:min(86vh,720px);
  overflow:auto;
  background:#fff;
  border-radius:16px;
  box-shadow:0 16px 40px rgba(0,0,0,.22);
  padding:18px 18px 10px;
}
.sdg-modal-head{display:flex; align-items:center; justify-content:space-between; gap:10px; margin-bottom:10px;}
.sdg-modal-head h2{margin:0; font-size:18px; color:var(--navy);}
.sdg-list{margin:0 0 12px; padding:0 20px 0 0; color:#000;}
.sdg-list li{margin:8px 0; line-height:1.7; font-size:14.5px;}
.sdg-list strong{color:var(--navy);}
.ach-flag{
  display:inline-flex; align-items:center; justify-content:center;
  width:32px; height:32px; padding:0; margin:2px 0;
  border:0; background:transparent;
  border-radius:50%; cursor:pointer; font-family:inherit;
  vertical-align:middle; line-height:0;
}
.ach-flag:hover{opacity:.86;}
.ach-flag img{width:32px; height:32px; display:block;}
.ach-modal{
  position:fixed; inset:0; background:rgba(15,30,50,.45); z-index:240;
  display:flex; align-items:flex-start; justify-content:center; padding:28px 14px 20px;
  overflow:auto;
}
.ach-modal[hidden]{display:none !important;}
.ach-modal-card{
  background:#fff; border-radius:16px; max-width:560px; width:100%;
  box-shadow:0 16px 40px rgba(0,0,0,.22); padding:16px 16px 18px;
}
.lightbox{
  position:fixed; inset:0; background:rgba(0,0,0,.82); z-index:400;
  display:flex; align-items:center; justify-content:center; padding:24px;
}
.lightbox[hidden]{display:none !important;}
.lightbox img{max-width:92vw; max-height:82vh; border-radius:12px; box-shadow:0 12px 40px rgba(0,0,0,.45); background:#fff;}
.lightbox-close{
  position:absolute; top:16px; left:16px; z-index:2;
  background:#fff; color:#111; border:0; border-radius:999px;
  padding:10px 18px; font:inherit; font-weight:800; cursor:pointer;
  box-shadow:0 4px 16px rgba(0,0,0,.25);
}
.lightbox-close:hover{background:#f3f4f6;}
