/* =====================================================================
   Ruyah brand layer — navy #0E3764 + lime #96C11F (official logo colours).
   Loaded after portal.css and portal-app.css by both portals.
   RTL first, mobile friendly, CSP-safe (no inline styles anywhere).
   ===================================================================== */
:root{--orange:#e8892b;--orange-pale:#fdf1e3;--purple:#6b4fc0;--purple-pale:#f1edfb;--sidebar-w:268px}
body{font-size:14px;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}
h1,h2,h3,h4,strong,b{font-weight:700}
::selection{background:#d9e8b0;color:var(--primary-dark)}

/* ---------- Buttons ---------- */
.button{border-radius:11px;font-weight:600;box-shadow:0 1px 0 rgba(14,55,100,.06)}
.button:hover{background:var(--primary-2);border-color:var(--primary-2)}
.button:active{transform:translateY(1px)}
.button.secondary{background:#fff;color:var(--primary);border-color:#d6e0eb}
.button.secondary:hover{background:var(--primary-pale);border-color:#c3d3e4}
.button.accent{background:var(--accent);border-color:var(--accent);color:#1d2a05}
.button.accent:hover{background:var(--accent-dark);border-color:var(--accent-dark);color:#fff}
.button.danger{background:#fff4f4;border-color:#f0cfd3;color:#b0353f}
.button.danger:hover{background:#fde8ea}
.button[disabled]{opacity:.6;cursor:not-allowed}
input,select,textarea{border-radius:11px;border-color:#d8e0ea}
input:focus,textarea:focus,select:focus{outline:3px solid #dbe8f5;border-color:var(--primary-2)}
a:focus-visible,button:focus-visible,summary:focus-visible{outline:3px solid #b9d36a;outline-offset:2px}

/* ---------- Badges & avatars ---------- */
.badge{border-radius:20px;font-weight:600;padding:3px 11px}
.badge.soft{background:var(--primary-pale);color:var(--primary)}
.badge.success{background:var(--accent-pale);color:#4c6a07}
.badge.accent{background:#fff6dc;color:#8a6200}
.badge.info{background:#e7f0fa;color:var(--primary-2)}
.alert.success{background:var(--accent-pale);color:#3f5a05;border-color:#dcebb9}
.avatar{background:var(--primary)}
.avatar.pale{background:var(--primary-pale);color:var(--primary);font-weight:700}
.avatar.accent{background:var(--accent);color:#1d2a05;font-weight:700;font-size:13px}
progress::-webkit-progress-value{background:var(--primary-2)}
progress::-moz-progress-bar{background:var(--primary-2)}
progress{background:#e8eef5}progress::-webkit-progress-bar{background:#e8eef5}

/* ---------- Sidebar (navy) ---------- */
.sidebar{width:var(--sidebar-w);background:var(--primary);color:#fff;border:0;padding:16px 14px 14px;box-shadow:-8px 0 30px rgba(14,55,100,.12)}
.sidebar .brand{background:#fff;border-radius:16px;padding:12px 14px;margin:0 0 12px;align-items:center}
.sidebar .center-logo{width:100%;padding:0;background:transparent}
.sidebar-program{display:flex;align-items:center;gap:10px;background:rgba(255,255,255,.07);border:1px solid rgba(255,255,255,.1);border-radius:14px;padding:10px 12px;margin-bottom:8px;flex-shrink:0}
.sidebar-program strong{display:block;font-size:12px;line-height:1.5}
.sidebar-program small{display:block;font-size:10px;color:#b4c6db}
.program-mark{width:32px;height:32px;border-radius:10px;background:var(--accent);color:var(--primary);display:grid;place-items:center;font-size:17px;flex-shrink:0}
.sidebar nav{scrollbar-color:rgba(255,255,255,.22) transparent}
.sidebar nav::-webkit-scrollbar-thumb{background:rgba(255,255,255,.22)}
.sidebar .nav-label{color:#8ea8c6;font-size:10px;font-weight:600;letter-spacing:.2px;margin:16px 12px 6px}
.sidebar .nav-link{color:#d5e1ee;font-size:12.5px;border-radius:11px;padding:9px 12px;position:relative;transition:background .15s,color .15s}
.sidebar .nav-link:hover{background:rgba(255,255,255,.08);color:#fff}
.sidebar .nav-link.active{background:rgba(255,255,255,.13);color:#fff;font-weight:700}
.sidebar .nav-link.active:before{content:'';position:absolute;inset-inline-start:0;top:9px;bottom:9px;width:4px;border-radius:4px;background:var(--accent)}
.sidebar .nav-icon{font-size:17px;width:22px;color:#9fb6d0}
.sidebar .nav-link.active .nav-icon{color:var(--accent)}
.nav-count{background:var(--accent);color:#1d2a05;font-weight:700}
.nav-count.muted-count{background:rgba(255,255,255,.14);color:#e3ecf5;font-weight:600}
.nav-count.warn-count{background:var(--orange);color:#fff}
.sidebar-bottom{border-top:1px solid rgba(255,255,255,.12);color:#c9d7e6;gap:8px;padding-top:12px}
.sidebar-user{display:flex;align-items:center;gap:10px}
.sidebar-user strong{display:block;font-size:12px;color:#fff;line-height:1.5}
.sidebar-user small{display:block;font-size:10px;color:#a9bed6}
.sidebar-site{font-size:10px!important;color:#8ea8c6!important;direction:ltr;text-align:end}
.admin-shell{margin-inline-start:var(--sidebar-w)}

/* ---------- Top bar ---------- */
.topbar{height:74px;position:sticky;top:0;z-index:30;background:rgba(255,255,255,.92);backdrop-filter:saturate(1.4) blur(8px);border-bottom:1px solid var(--line);padding-inline:32px}
.topbar-title strong{display:block;font-size:16px;color:var(--primary);line-height:1.4}
.topbar-title small{display:block;font-size:11px;color:var(--muted)}
.account{gap:12px}
.notify-button{position:relative;display:inline-flex;align-items:center;justify-content:center;background:var(--primary-pale);color:var(--primary);border-radius:11px;width:38px;height:38px}
.dot-count{position:absolute;top:-5px;inset-inline-end:-6px;background:var(--orange);color:#fff;font-size:9px;font-weight:700;border-radius:20px;padding:0 6px;line-height:17px;border:2px solid #fff}
.workspace{padding:26px 32px 46px}

/* ---------- Page headings ---------- */
.page-heading h1{color:var(--primary);font-size:27px}
.page-heading .eyebrow,.eyebrow{color:var(--accent-dark);font-weight:700}
.panel{border-radius:18px;border-color:var(--line);box-shadow:var(--shadow-sm)}
.panel-heading h2{font-size:15px;color:var(--primary)}
.panel-text{padding-top:20px;font-size:13px;line-height:2}
th{background:#f6f9fc;color:#6b7789;font-weight:600}
tbody tr:hover{background:#f8fbfe}
.text-link{color:var(--primary-2)}
.breadcrumb a{color:var(--primary-2)}

/* ---------- Command center ---------- */
.command-hero{position:relative;overflow:hidden;display:flex;justify-content:space-between;align-items:flex-end;gap:24px;flex-wrap:wrap;
  background:linear-gradient(130deg,var(--primary) 0%,#16497f 62%,#1d5c96 100%);color:#fff;border-radius:22px;padding:28px 30px;margin-bottom:20px;box-shadow:0 18px 40px rgba(14,55,100,.18)}
.command-hero:before,.command-hero:after{content:'';position:absolute;border-radius:50%;background:var(--accent);pointer-events:none}
.command-hero:before{width:240px;height:240px;inset-inline-end:-80px;top:-120px;background:rgba(255,255,255,.06)}
.command-hero:after{width:16px;height:16px;inset-inline-end:200px;top:28px;box-shadow:24px 0 0 var(--accent)}
.command-copy,.command-side{position:relative;z-index:1}
.command-hero .eyebrow{color:#c8e486}
.command-hero h1{font-size:30px;line-height:1.5;margin:4px 0}
.command-hero p{color:#cfdcea;font-size:13px}
.scope-chips{display:flex;flex-wrap:wrap;gap:7px;margin-top:14px}
.scope-chips span{background:rgba(150,193,31,.18);border:1px solid rgba(150,193,31,.38);color:#e2f4b4;border-radius:20px;padding:4px 12px;font-size:11px;font-weight:600}
.command-side{display:flex;flex-direction:column;gap:8px;align-items:flex-end}
.command-side>small{color:#bcd0e4;font-size:11px}
.command-side select,.command-side input{background:rgba(255,255,255,.96);min-height:40px;border:0;min-width:170px}
.live-dot:before{content:'';display:inline-block;width:8px;height:8px;border-radius:50%;background:var(--accent);margin-inline-end:6px;box-shadow:0 0 0 4px rgba(150,193,31,.25)}
.headline-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin-bottom:20px}
.headline-card{background:#fff;border:1px solid var(--line);border-radius:18px;padding:18px 20px;display:flex;flex-direction:column;gap:3px;box-shadow:var(--shadow-sm);transition:transform .15s,box-shadow .15s;border-top:4px solid var(--primary)}
.headline-card:hover{transform:translateY(-2px);box-shadow:var(--shadow)}
.headline-card.success{border-top-color:var(--accent)}
.headline-card.warning{border-top-color:var(--orange)}
.headline-card.accent{border-top-color:var(--purple)}
.headline-top{display:flex;justify-content:space-between;align-items:center;margin-bottom:6px;gap:8px}
.headline-icon{width:40px;height:40px;border-radius:12px;display:grid;place-items:center;font-size:19px;background:var(--primary-pale);color:var(--primary)}
.headline-card.success .headline-icon{background:var(--accent-pale);color:#5d7f0c}
.headline-card.warning .headline-icon{background:var(--orange-pale);color:var(--orange);font-weight:700}
.headline-card.accent .headline-icon{background:var(--purple-pale);color:var(--purple)}
.headline-card>strong{font-size:34px;line-height:1.35;color:var(--ink);font-family:"Almarai",Arial,sans-serif}
.headline-card>span{font-size:12px;color:#44526a;font-weight:600}
.headline-card>small{font-size:11px;color:var(--muted)}
.headline-card progress{margin-top:6px}
.headline-card.success progress::-webkit-progress-value{background:var(--accent)}
.headline-card.success progress::-moz-progress-bar{background:var(--accent)}
.trend{font-size:10px;font-weight:700;border-radius:20px;padding:3px 9px;background:#f1f4f8;color:#56637a}
.trend.up{background:var(--accent-pale);color:#4c6a07}
.trend.down{background:var(--orange-pale);color:#b5651b}
.command-grid{display:grid;grid-template-columns:1.65fr 1fr;gap:20px;align-items:start}
.gender-table td,.gender-table th{padding-inline:20px}
.gender-table tfoot td{background:var(--primary);color:#fff;font-weight:700;font-size:12px;padding:13px 20px}
.gender-table .meter{min-width:130px}.gender-table .meter small{min-width:34px;color:var(--muted);font-size:11px}
.sex-dot{display:inline-block;width:8px;height:8px;border-radius:50%;margin-inline-end:7px;vertical-align:middle}
.sex-dot.male{background:var(--primary-2)}.sex-dot.female{background:var(--accent)}
.quick-actions{display:flex;flex-direction:column;padding:0 14px 14px;gap:6px}
.quick-actions a{display:flex;align-items:center;gap:12px;padding:11px 12px;border-radius:13px;border:1px solid transparent;transition:background .15s,border-color .15s}
.quick-actions a:hover{background:#f6f9fc;border-color:#e2e9f1}
.quick-actions span{width:38px;height:38px;border-radius:11px;background:var(--primary-pale);color:var(--primary);display:grid;place-items:center;font-size:17px;flex-shrink:0}
.quick-actions a:nth-child(2) span{background:var(--orange-pale);color:var(--orange)}
.quick-actions a:nth-child(3) span{background:var(--accent-pale);color:#5d7f0c}
.quick-actions a:nth-child(4) span{background:var(--purple-pale);color:var(--purple)}
.quick-actions div{flex:1}.quick-actions strong{display:block;font-size:12.5px}.quick-actions small{display:block;font-size:10.5px;color:var(--muted)}
.quick-actions i{font-style:normal;color:#9aa7b8}
.meter.low progress::-webkit-progress-value{background:var(--orange)}.meter.low progress::-moz-progress-bar{background:var(--orange)}
.meter.mid progress::-webkit-progress-value{background:var(--primary-2)}.meter.mid progress::-moz-progress-bar{background:var(--primary-2)}
.meter:not(.low):not(.mid) progress::-webkit-progress-value{background:var(--accent)}
.meter strong{font-size:12px;min-width:38px}
.kpi-details{margin:4px 0 20px}
.kpi-details>summary{font-weight:700;color:var(--primary);margin-bottom:12px;font-size:13px}
.kpi{border-radius:16px;box-shadow:var(--shadow-sm)}
.kpi strong{color:var(--ink)}
button.kpi{text-align:start;cursor:pointer;font:inherit}
.kpi.selected{border-color:var(--primary-2);box-shadow:0 0 0 3px #dbe8f5}

/* ---------- Shared chips, pills, segmented ---------- */
.compact-select{width:auto;min-height:40px;min-width:170px}
.year-strip{display:flex;gap:8px;overflow-x:auto;padding-bottom:6px;margin-bottom:16px}
.year-pill{border:1px solid #d6e0eb;background:#fff;border-radius:30px;padding:7px 16px;font-size:12px;color:#4d5b70;white-space:nowrap}
.year-pill small{background:var(--primary-pale);color:var(--primary);border-radius:20px;padding:0 7px;margin-inline-start:5px}
.year-pill.active{background:var(--primary);border-color:var(--primary);color:#fff}
.year-pill.active small{background:var(--accent);color:#1d2a05}
.segmented{display:flex;gap:6px;flex-wrap:wrap}
.segmented label{display:flex;align-items:center;gap:6px;border:1px solid #d6e0eb;border-radius:11px;padding:9px 13px;font-size:12px;font-weight:600;cursor:pointer;margin:0;background:#fff}
.segmented label.active{border-color:var(--primary-2);background:var(--primary-pale);color:var(--primary)}
.segmented input{width:auto;min-height:auto;accent-color:var(--primary)}
.check-chips{border:0;padding:0;margin:0;display:flex;flex-wrap:wrap;gap:7px}
.check-chips legend{font-size:13px;font-weight:600;margin-bottom:8px}
.check-chips label{margin:0;cursor:pointer}
.check-chips input{position:absolute;opacity:0;width:1px;height:1px}
.check-chips span{display:block;border:1px solid #dbe3ec;border-radius:20px;padding:6px 12px;font-size:11px;font-weight:500;background:#fff;color:#5b6878}
.check-chips input:checked+span{background:var(--accent-pale);border-color:#b9d878;color:#4c6a07;font-weight:700}
.check-chips input:focus-visible+span{outline:3px solid #b9d36a}
.consent-box{background:var(--accent-pale);border:1px solid #dcebb9;border-radius:12px;padding:12px 14px;color:#3f5a05}
.wrap-cell{white-space:normal;max-width:320px}
.tag-list{display:flex;flex-wrap:wrap;gap:7px;margin-bottom:12px}
.tag{display:inline-flex;align-items:center;gap:6px;background:var(--primary-pale);color:var(--primary);border-radius:20px;padding:5px 12px;font-size:11.5px;font-weight:600}
.tag button{border:0;background:transparent;color:#8a97a8;font-size:14px;line-height:1;padding:0}
.tag button:hover{color:#b0353f}

/* ---------- Student picker ---------- */
.student-picker{position:relative}
.picker-results{position:absolute;inset-inline:0;top:100%;z-index:20;background:#fff;border:1px solid var(--line);border-radius:12px;box-shadow:var(--shadow);margin-top:4px;max-height:300px;overflow:auto}
.picker-results button{display:block;width:100%;text-align:start;border:0;background:#fff;padding:10px 14px;border-bottom:1px solid #f0f3f7}
.picker-results button:hover,.picker-results button:focus{background:var(--primary-pale)}
.picker-results strong{display:block;font-size:12.5px}.picker-results small{display:block;font-size:10.5px;color:var(--muted)}
.picked-student{display:flex;align-items:center;gap:10px;border:1px solid #cfe0b0;background:var(--accent-pale);border-radius:12px;padding:8px 10px}
.picked-student>div{flex:1}

/* ---------- Talents ---------- */
.chip-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(108px,1fr));gap:10px;margin-bottom:18px}
.chip-card{display:flex;flex-direction:column;align-items:flex-start;gap:2px;background:#fff;border:1px solid var(--line);border-radius:15px;padding:12px 14px;text-align:start;font:inherit;color:inherit;box-shadow:var(--shadow-sm)}
.chip-card strong{font-size:22px;line-height:1.3;color:var(--ink)}.chip-card small{font-size:11px;color:var(--muted)}
.chip-card.active{border-color:var(--primary);background:var(--primary);color:#fff}
.chip-card.active strong,.chip-card.active small{color:#fff}
.chip-icon{width:34px;height:34px;border-radius:10px;background:var(--accent-pale);color:#5d7f0c;display:grid;place-items:center;font-size:16px;flex-shrink:0}
.chip-card.active .chip-icon{background:var(--accent);color:var(--primary)}
.talent-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(270px,1fr));gap:12px;padding:18px}
.talent-card{display:flex;gap:12px;align-items:flex-start;border:1px solid var(--line);border-radius:15px;padding:14px;background:#fff}
.talent-main{flex:1;min-width:0}
.talent-main h3{font-size:14px;margin:6px 0 2px;color:var(--primary)}
.talent-main p{font-size:12px;color:#55647a;margin-top:6px;line-height:1.9}
.talent-grid>.empty-state{grid-column:1/-1}

/* ---------- Stories & impact ---------- */
.impact-band{display:grid;grid-template-columns:minmax(220px,.8fr) 2.2fr;gap:20px;align-items:center;background:linear-gradient(130deg,#f2f8e4,#fff 65%);border:1px solid #e1edc6;border-radius:20px;padding:20px 22px;margin-bottom:18px}
.impact-intro h2{color:var(--primary);font-size:17px;margin:2px 0}.impact-intro p{font-size:11.5px;color:var(--muted)}
.impact-metrics{display:grid;grid-template-columns:repeat(auto-fill,minmax(130px,1fr));gap:10px}
.impact-metrics div{background:#fff;border:1px solid var(--line);border-radius:14px;padding:11px 13px}
.impact-metrics strong{display:block;font-size:22px;color:var(--primary);line-height:1.4}
.impact-metrics span{font-size:10.5px;color:var(--muted)}
.story-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(290px,1fr));gap:16px;margin-bottom:18px}
.story-grid>.empty-state{grid-column:1/-1}
.story-card{background:#fff;border:1px solid var(--line);border-radius:18px;overflow:hidden;display:flex;flex-direction:column;box-shadow:var(--shadow-sm)}
.story-card.featured{border-color:#e7cf7a;box-shadow:0 0 0 3px #fff3cc}
.story-media{height:170px;display:grid;place-items:center;background:var(--primary-pale);color:var(--primary);overflow:hidden}
.story-media img{width:100%;height:100%;object-fit:cover}
.story-media.video{background:linear-gradient(135deg,var(--primary),#1d5c96);color:#fff;gap:4px;align-content:center}
.story-media.video span{width:58px;height:58px;border-radius:50%;background:var(--accent);color:var(--primary);display:grid;place-items:center;font-size:22px}
.story-media.video small{color:#d4e2ef}
.story-media.quote span{font-size:64px;color:#bfd0e2;line-height:1}
.story-body{padding:16px;display:flex;flex-direction:column;gap:8px;flex:1}
.story-body h3{font-size:15px;color:var(--primary);line-height:1.7}
.story-body p{font-size:12px;color:#55647a;line-height:1.9}
.story-meta{display:flex;flex-wrap:wrap;gap:4px 12px;font-size:11px;color:var(--muted);margin-top:auto}
.story-actions{display:flex;gap:8px;border-top:1px solid var(--line);padding-top:10px}

/* ---------- Opportunities ---------- */
.opportunity-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:16px;margin:16px 0}
.opportunity-grid>.empty-state{grid-column:1/-1}
.opportunity-card{background:#fff;border:1px solid var(--line);border-radius:18px;padding:18px;display:flex;flex-direction:column;gap:6px;box-shadow:var(--shadow-sm);transition:transform .15s,box-shadow .15s}
.opportunity-card:hover{transform:translateY(-2px);box-shadow:var(--shadow)}
.opportunity-card h3{font-size:15px;color:var(--primary);margin-top:6px;line-height:1.7}
.criteria{display:flex;flex-wrap:wrap;gap:6px;margin:6px 0}
.criteria span{background:#f3f6fa;border:1px solid #e3e9f0;color:#4d5b70;border-radius:20px;padding:3px 10px;font-size:10.5px}
.panel-criteria{padding:0 23px 12px}
.span-all{grid-column:1/-1}
.engagement-cols{display:grid;grid-template-columns:repeat(3,1fr);gap:8px 28px}
.engagement-cols .inline-form{margin-bottom:6px}
.scroll-list{max-height:640px;overflow-y:auto;overscroll-behavior:contain;scrollbar-width:thin}
.filters select.compact-select{flex:0 0 auto}
.opportunity-foot{display:flex;justify-content:space-between;gap:10px;flex-wrap:wrap;border-top:1px solid var(--line);padding-top:10px;margin-top:auto;font-size:11px;color:var(--muted)}

/* ---------- Login & student portal touches ---------- */
.login-story{background:linear-gradient(150deg,var(--primary) 0%,#16497f 100%)}
.login-story .eyebrow{color:#c8e486}
.story-line{background:var(--accent)}
.status-hero{background:linear-gradient(130deg,var(--primary),#1c5b91)}
.student-nav a.active{color:var(--primary)}
.student-nav a.active span{color:var(--accent-dark)}
.tab.active{border-color:var(--accent);color:var(--primary)}
.step.current{border-color:var(--primary)}.step.current b{background:var(--primary)}

/* ---------- Responsive ---------- */
@media(max-width:1300px){.headline-grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:1100px){.engagement-cols{grid-template-columns:1fr}.command-grid{grid-template-columns:1fr}.impact-band{grid-template-columns:1fr}}
@media(max-width:1200px){:root{--sidebar-w:236px}.sidebar{width:var(--sidebar-w)}.admin-shell{margin-inline-start:var(--sidebar-w)}}
@media(max-width:760px){
  .sidebar{width:280px}
  .admin-shell{margin:0}
  .topbar{height:64px;padding-inline:14px}
  .topbar-add,.account-name,.account>.avatar{display:none}
  .workspace{padding:16px 14px 32px}
  .command-hero{padding:20px;border-radius:18px}
  .command-hero h1{font-size:24px}.command-hero:after{display:none}
  .command-side{align-items:stretch;width:100%}
  .command-side .toolbar{flex-direction:column;align-items:stretch}
  .headline-card>strong{font-size:28px}
  .gender-table .share-col{display:none}
  .gender-table td,.gender-table th{padding:10px 12px}
  .talent-grid{padding:12px}
  .compact-select{width:100%}
}
@media(max-width:520px){.headline-grid{grid-template-columns:1fr}.chip-grid{grid-template-columns:repeat(2,1fr)}}

/* ---------- Print: the current section only, on white ---------- */
@media print{
  .sidebar,.topbar,.admin-footer,.button,.filters,.command-side,.quick-panel,.year-strip,.story-actions,[data-print],.drawer-backdrop{display:none!important}
  .admin-shell{margin:0!important}.workspace{padding:0!important;max-width:none}
  .command-hero{background:#fff!important;color:var(--primary)!important;box-shadow:none;border:2px solid var(--primary)}
  .command-hero:before,.command-hero:after{display:none}
  .command-hero p,.command-hero .eyebrow{color:#333!important}
  .panel,.headline-card,.story-card,.opportunity-card{box-shadow:none!important;break-inside:avoid}
  .command-grid{grid-template-columns:1fr}
  .headline-grid{grid-template-columns:repeat(4,1fr)}
  a{text-decoration:none}
}
@media(prefers-reduced-motion:reduce){.headline-card,.opportunity-card{transition:none}.headline-card:hover,.opportunity-card:hover{transform:none}}

/* =====================================================================
   Readability: larger type, 12px minimum, darker secondary text.
   Kept last so it overrides the older compact sizes in portal.css.
   ===================================================================== */
:root{--muted:#566276}
body{font-size:16px;line-height:1.85;color:var(--ink)}
.muted,.hint{color:var(--muted)}
label{font-size:15px}
input,select,textarea{font-size:15.5px}
.button{font-size:15px}.button.small{font-size:14px}
.badge{font-size:13px}
.ref{font-size:14px}
.eyebrow,.page-heading .eyebrow{font-size:13.5px}
.breadcrumb{font-size:13.5px}
.page-heading h1{font-size:32px}
.page-heading p{font-size:15px;color:var(--muted)}
.panel-heading h2{font-size:18px}
.panel-heading p{font-size:13.5px;color:var(--muted)}
th{font-size:13.5px;color:#56627a}
td{font-size:15px}
.person-cell strong{font-size:15px}
.person-cell small,.table-sub{font-size:13px;color:#66728a}
.hint{font-size:13.5px}
.empty{font-size:15px}.empty-state h3{font-size:18px}.empty-state p{font-size:14px}
.alert{font-size:15px}
.section-title{font-size:15.5px}
.text-link{font-size:14.5px}
.admin-footer{font-size:12.5px}
/* Sidebar & top bar */
.sidebar .nav-link{font-size:15px;padding-block:10px}
.sidebar .nav-icon{font-size:19px}
.sidebar .nav-label{font-size:12.5px}
.sidebar-program strong,.sidebar-user strong{font-size:14px}
.sidebar-program small,.sidebar-user small{font-size:12.5px}
.sidebar-site{font-size:12px!important}
.nav-count{font-size:12.5px;line-height:20px}
.topbar-title strong{font-size:18px}.topbar-title small{font-size:13.5px}
.account strong{font-size:13.5px}.account small{font-size:12.5px}
.tab{font-size:15px}
/* Dashboard */
.command-hero p{font-size:15.5px}.command-side>small{font-size:13.5px}.scope-chips span{font-size:13.5px}
.headline-card>strong{font-size:38px}.headline-card>span{font-size:15px}.headline-card>small{font-size:13.5px}
.trend{font-size:12.5px}
.quick-actions strong{font-size:15.5px}.quick-actions small{font-size:13.5px}
.kpi span{font-size:14px}.kpi strong{font-size:30px}.kpi small{font-size:13px}
.kpi-details>summary{font-size:16px}
.item-card h4{font-size:15.5px}.item-meta,.item-card .item-meta{font-size:13.5px}
.bar-row>div{font-size:14px}.bar-row strong{font-size:14.5px}
.meter strong{font-size:14px}.gender-table .meter small{font-size:13px}
/* Modules */
.chip-card small{font-size:13.5px}.chip-card strong{font-size:26px}
.talent-main h3{font-size:16.5px}.talent-main p{font-size:14.5px}
.story-body h3{font-size:17.5px}.story-body p{font-size:14.5px}.story-meta{font-size:13.5px}
.impact-intro h2{font-size:19px}.impact-intro p{font-size:13.5px}
.impact-metrics strong{font-size:26px}.impact-metrics span{font-size:13px}
.opportunity-card h3{font-size:17.5px}.opportunity-foot{font-size:13.5px}.criteria span{font-size:13px}
.year-pill{font-size:14.5px}.segmented label{font-size:14.5px}.check-chips span{font-size:13.5px}
.tag{font-size:14px}
.picker-results strong{font-size:15px}.picker-results small{font-size:13px}
.timeline-item time{font-size:13px}.timeline-item p{font-size:14.5px}
.details-grid dt{font-size:13px}.details-grid dd{font-size:15px}
.document-row{font-size:14px}
.notice{font-size:14.5px}
.student-nav a{font-size:13.5px}
.profile-meta{font-size:13.5px}
.step{font-size:14px}

/* =====================================================================
   Icons: inline Lucide line icons (<x-icon>), sized per context.
   ===================================================================== */
.icon{width:1.15em;height:1.15em;flex-shrink:0;vertical-align:-.2em;stroke-width:2}
.button .icon,button.text-link .icon{width:18px;height:18px}
.sidebar .nav-icon{display:inline-grid;place-items:center}
.sidebar .nav-icon .icon{width:20px;height:20px;stroke-width:1.9}
.program-mark .icon{width:19px;height:19px}
.mobile-toggle .icon{width:24px;height:24px}
.icon-button{display:inline-flex;align-items:center;justify-content:center}
.icon-button .icon{width:20px;height:20px}
.headline-icon .icon{width:22px;height:22px}
.quick-actions span .icon{width:20px;height:20px}
.quick-actions i .icon{width:17px;height:17px}
.chip-icon .icon{width:18px;height:18px}
.talent-zone-head .chip-icon .icon{width:23px;height:23px}
.talent-owned-icon .icon{width:20px;height:20px}
.talent-option-icon .icon{width:22px;height:22px}
.story-media.video span .icon{width:24px;height:24px;fill:currentColor;margin-inline-start:3px}
.story-media.quote span .icon{width:54px;height:54px;stroke-width:1.5}
.empty-state>span{display:grid;place-items:center}
.empty-state>span .icon{width:38px;height:38px;stroke-width:1.6}
.badge .icon{width:13px;height:13px;vertical-align:-.15em}
.badge.accent .icon{fill:currentColor}
.opportunity-foot .icon{width:15px;height:15px;vertical-align:-.25em}
.student-nav a span{display:grid;place-items:center}.student-nav a span .icon{width:22px;height:22px}
.file-icon .icon{width:36px;height:36px;stroke-width:1.6}
.step b .icon{width:15px;height:15px}
.site-nav .mobile-toggle .icon{width:24px;height:24px}
summary .icon{width:16px;height:16px}

/* =====================================================================
   Talents zone in the student overview: its own full-width, highlighted row.
   ===================================================================== */
.engagement-cols>.talent-zone{grid-column:1/-1}
.talent-zone{background:linear-gradient(135deg,#f4f9e6 0%,#fff 70%);border:1px solid #dcebb9;border-radius:18px;padding:18px 20px;margin-bottom:10px}
.talent-zone-head{display:flex;align-items:center;justify-content:space-between;gap:14px;flex-wrap:wrap}
.talent-zone-head>div{display:flex;align-items:center;gap:12px}
.talent-zone-head .chip-icon{width:44px;height:44px;border-radius:13px;background:var(--accent);color:var(--primary);font-size:21px}
.talent-zone-head h3{font-size:18px;color:var(--primary);line-height:1.4}
.talent-zone-head small{display:block;font-size:13px;color:var(--muted)}
.talent-zone .button.accent{min-height:46px;padding-inline:22px;font-size:15px;box-shadow:0 8px 20px rgba(150,193,31,.35)}
.talent-zone .button.accent:hover{box-shadow:0 10px 24px rgba(111,147,18,.35)}
.talent-empty{margin-top:12px;font-size:14px}
.talent-owned{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:10px;margin-top:16px}
.talent-owned-card{display:flex;align-items:flex-start;gap:11px;background:#fff;border:1px solid #e1ebcd;border-radius:14px;padding:12px 14px;box-shadow:0 3px 10px rgba(111,147,18,.08)}
.talent-owned-card>div{flex:1;min-width:0}
.talent-owned-card strong{display:block;font-size:15px;color:var(--primary)}
.talent-owned-card small{display:block;font-size:13px;color:#55647a;line-height:1.8;margin-top:2px}
.talent-owned-icon{width:38px;height:38px;border-radius:11px;background:var(--accent-pale);color:#5d7f0c;display:grid;place-items:center;font-size:18px;flex-shrink:0}
.talent-remove{border:0;background:transparent;color:#9aa6b6;font-size:20px;line-height:1;width:30px;height:30px;border-radius:9px;cursor:pointer;flex-shrink:0}
.talent-remove:hover{background:#fde8ea;color:#b0353f}
.talent-form{margin-top:16px;background:#fff;border:1px solid #e1ebcd;border-radius:16px;padding:16px 18px;display:flex;flex-direction:column;gap:10px}
.talent-form-title{font-size:15px;font-weight:700;color:var(--primary)}
.talent-picker{display:grid;grid-template-columns:repeat(4,1fr);gap:10px}
.talent-option{position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;text-align:center;
  border:2px solid #e3e9f0;border-radius:14px;padding:14px 8px;margin:0;background:#fff;cursor:pointer;font-size:14px;font-weight:700;color:#3d4a5e;
  transition:border-color .15s,background .15s,transform .1s,box-shadow .15s}
.talent-option:hover{border-color:#c6dc8c;transform:translateY(-1px);box-shadow:0 6px 14px rgba(14,55,100,.07)}
.talent-option input{position:absolute;opacity:0;width:1px;height:1px}
.talent-option-icon{width:42px;height:42px;border-radius:12px;background:var(--primary-pale);color:var(--primary);display:grid;place-items:center;font-size:20px}
.talent-option small{font-size:11.5px;font-weight:600;color:#6f9312}
.talent-option.selected{border-color:var(--accent);background:var(--accent-pale);color:var(--primary);box-shadow:0 0 0 4px rgba(150,193,31,.18)}
.talent-option.selected .talent-option-icon{background:var(--accent);color:var(--primary)}
.talent-option:has(input:focus-visible){outline:3px solid #b9d36a;outline-offset:2px}
.talent-form label[for]{margin:6px 0 0}
@media(max-width:900px){.talent-picker{grid-template-columns:repeat(2,1fr)}}

/* =====================================================================
   Buttons polish: every clickable control is rounded and consistent.
   `button.text-link` (inline actions such as «إعادة ضبط», «تعديل», «تدقيق»)
   used to render as the browser's square default button.
   ===================================================================== */
.button{min-height:44px;padding:10px 20px;border-radius:12px;gap:8px;transition:background .15s,border-color .15s,box-shadow .15s,transform .1s}
.button:hover{box-shadow:0 6px 16px rgba(14,55,100,.14)}
.button.secondary{box-shadow:0 1px 2px rgba(14,55,100,.05)}
.button.secondary:hover{box-shadow:0 4px 12px rgba(14,55,100,.08)}
.button.small{min-height:38px;padding:7px 15px;border-radius:10px}
.button.danger:hover{box-shadow:0 4px 12px rgba(176,53,63,.12)}
button.text-link{display:inline-flex;align-items:center;justify-content:center;gap:5px;min-height:34px;padding:5px 14px;
  border:1px solid #d6e0eb;border-radius:999px;background:#fff;color:var(--primary-2);font-family:inherit;font-weight:700;
  line-height:1.4;white-space:nowrap;cursor:pointer;text-decoration:none;transition:background .15s,border-color .15s,color .15s}
button.text-link:hover{background:var(--primary-pale);border-color:#b9cce0;color:var(--primary);text-decoration:none}
button.text-link:active{transform:translateY(1px)}
button.text-link[disabled]{opacity:.55;cursor:not-allowed}
td button.text-link+button.text-link,td .text-link+button.text-link{margin-inline-start:6px}
.icon-button{border-radius:11px;transition:background .15s}
.icon-button:hover{background:var(--primary-pale);color:var(--primary)}
.password-toggle{border-radius:8px;padding:0 8px;font-weight:700;color:var(--primary-2)}
input[type=file]{cursor:pointer}
input[type=file]::file-selector-button{font:inherit;font-weight:700;color:var(--primary);background:var(--primary-pale);
  border:1px solid #c9d8e8;border-radius:10px;padding:8px 16px;margin-inline-end:12px;cursor:pointer;transition:background .15s}
input[type=file]::file-selector-button:hover{background:#dce8f4}
.alert{border-radius:14px;padding:14px 18px}
.filters{gap:12px;align-items:center}
.pagination{font-size:13px}
.tab{border-radius:10px 10px 0 0}
.tab:hover{background:#f3f7fb}

/* =====================================================================
   Scrollbars (desktop): the page scrolls inside .admin-shell, so its
   scrollbar sits on the LEFT (RTL container), while the sidebar's list
   keeps its own scrollbar on the RIGHT. They never sit side by side.
   ===================================================================== */
@media(min-width:761px){
  html.staff-app{height:100%;overflow:hidden;scrollbar-gutter:auto}
  html.staff-app body{height:100%;overflow:hidden}
  html.staff-app .admin-shell{height:100vh;height:100dvh;overflow-y:auto;overflow-x:hidden;overscroll-behavior:contain;
    scrollbar-gutter:stable;scrollbar-width:thin;scrollbar-color:#b4c3d4 transparent}
  html.staff-app .admin-shell::-webkit-scrollbar{width:10px}
  html.staff-app .admin-shell::-webkit-scrollbar-thumb{background:#bccadb;border-radius:10px;border:2px solid var(--paper)}
  html.staff-app .admin-shell::-webkit-scrollbar-track{background:transparent}
  /* LTR scroll box puts the bar on the right; the links inside stay RTL. */
  .sidebar nav{direction:ltr;overflow-x:hidden}
  .sidebar nav>*{direction:rtl}
}
@media print{
  html.staff-app,html.staff-app body{height:auto!important;overflow:visible!important}
  html.staff-app .admin-shell{height:auto!important;overflow:visible!important}
}

/* ---- Student portal refresh ---- */
.sp{display:flex;flex-direction:column;gap:16px}.sp>.panel,.sp .sp-grid .panel{margin:0}
.sp-hero{position:relative;overflow:hidden;padding:22px 20px 18px;margin:0;box-shadow:0 10px 30px -18px #0E3764}
.sp-hero::after{content:"";position:absolute;inset-inline-start:-60px;top:-60px;width:180px;height:180px;border-radius:50%;background:radial-gradient(circle,#96C11F33,transparent 70%)}
.sp-hero-top{display:flex;justify-content:space-between;align-items:flex-start;gap:12px}
.sp-hero .eyebrow{color:#cfe3a0;font-size:14px}.sp-hero h1{font-size:26px;margin:4px 0 6px;color:#fff}
.sp-hero p{font-size:14px;line-height:1.8;color:#d3dde8;max-width:560px}
.sp-ref{background:#ffffff1f;border:1px solid #ffffff33;color:#fff;border-radius:999px;padding:4px 10px;font:600 12px/1.6 Arial,sans-serif;white-space:nowrap}
.sp-hero .meter{margin-top:14px}.sp-hero .meter strong{color:#fff}.sp-hero-note{color:#b6c2cf;font-size:12px}
.sp-actions{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}
.sp-action{display:flex;flex-direction:column;align-items:center;text-align:center;gap:4px;background:#fff;border:1px solid var(--line);border-radius:16px;padding:14px 8px;color:inherit;text-decoration:none;transition:transform .15s,box-shadow .15s,border-color .15s}
.sp-action:hover,.sp-action:focus-visible{transform:translateY(-2px);border-color:var(--primary-2);box-shadow:0 8px 20px -14px var(--primary)}
.sp-action-icon{display:grid;place-items:center;width:44px;height:44px;border-radius:12px;background:var(--primary-pale);color:var(--primary)}
.sp-action-icon .icon{width:22px;height:22px}.sp-action strong{font-size:15px}.sp-action small{font-size:12px;color:var(--muted)}
.sp-step-list{list-style:none;margin:0;padding:6px 18px 0}
.sp-step-list li{display:flex;gap:12px;padding:12px 0;border-bottom:1px dashed var(--line)}.sp-step-list li:last-child{border-bottom:0}
.sp-step-dot{flex:none;display:grid;place-items:center;width:30px;height:30px;border-radius:50%;background:var(--primary-pale);color:var(--primary);font:700 14px Arial,sans-serif}
.sp-step-dot .icon{width:16px;height:16px}
.sp-step-list li.done .sp-step-dot{background:var(--accent);color:#fff}
.sp-step-list li.done strong{color:var(--accent-dark)}
.sp-step-list strong{display:block;margin-bottom:4px}.d-block{display:block}
.sp-step-list .text-link{display:inline-block;margin-top:6px;font-size:14px}
.sp-chips{display:flex;flex-wrap:wrap;gap:6px;margin-top:6px}
.sp-chip{background:var(--warn-pale);color:var(--warn);border-radius:999px;padding:3px 10px;font-size:12.5px}
.sp-chip.soft{background:var(--primary-pale);color:var(--primary)}
.sp-more{margin-top:6px}.sp-more summary{cursor:pointer;color:var(--primary-2);font-size:13.5px}
.sp-suggest{padding:12px 16px;margin-bottom:14px}
.sp-empty{display:flex;align-items:center;gap:10px;color:var(--muted);padding:6px 0}.sp-empty .icon{width:20px;height:20px;opacity:.6}
.sp-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px}
.sp-page-head{margin-bottom:14px}.sp-page-head p{margin-top:4px;line-height:1.8}
.student-nav{box-shadow:0 -6px 20px -16px #0E3764}
.auth-card{box-shadow:0 18px 40px -28px #0E3764}
@media(max-width:640px){.sp-grid{grid-template-columns:1fr}.sp-hero h1{font-size:22px}.sp-action{padding:12px 4px}.sp-action strong{font-size:14px}}

.sp-progress{margin-top:16px;background:#ffffff14;border:1px solid #ffffff26;border-radius:14px;padding:12px 14px}
.sp-progress-head{display:flex;justify-content:space-between;align-items:baseline;margin-bottom:8px;color:#e6edf4;font-size:14px}
.sp-progress-head strong{font:700 22px/1 Arial,sans-serif;color:#fff}
.sp-progress-track{height:12px;border-radius:999px;background:#ffffff26;overflow:hidden}
.sp-progress-fill{display:block;height:100%;border-radius:inherit;background:linear-gradient(90deg,#c3e35a,var(--accent));box-shadow:0 0 12px #96C11F80;transition:width .6s ease}
.sp-progress.mid .sp-progress-fill{background:linear-gradient(90deg,#ffd27a,#f0a83a);box-shadow:0 0 12px #f0a83a80}
.sp-progress.low .sp-progress-fill{background:linear-gradient(90deg,#ffb38a,var(--orange));box-shadow:0 0 12px #e8892b80}
.sp-progress small{display:block;margin-top:8px;color:#c9d4e0;font-size:12.5px}
.sp-progress small a{color:#d9f08f;font-weight:700;text-decoration:underline}
