@import url('https://fonts.googleapis.com/css2?family=Cairo:wght@400;500;600;700;800;900&display=swap');

:root{
  --ib-primary:#5dbb96;
  --ib-primary-dark:#3f9f7a;
  --ib-primary-soft:#eaf8f2;
  --ib-primary-border:#bfe8d8;
  --ib-ink:#0f172a;
  --ib-muted:#64748b;
  --ib-bg:#f7faf9;
  --ib-card:#fff;
  --ib-line:#e2e8f0;
  --ib-danger:#dc5a6a;
  --ib-warning:#d59b17;
  --ib-info:#2563eb;
  --ib-purple:#7c3aed;
  --ib-radius:24px;
}
*{box-sizing:border-box}
html,body{font-family:'Cairo',Tahoma,Arial,sans-serif;background:var(--ib-bg);color:var(--ib-ink);min-height:100%}
body{margin:0;direction:rtl}
a{text-decoration:none}
.page-wrap{min-height:100vh;padding:22px 0}
.container-app{width:calc(100% - clamp(24px,2vw,42px));max-width:2200px;margin:0 auto}
.card-surface{background:var(--ib-card);border:1px solid var(--ib-line);border-radius:var(--ib-radius);box-shadow:0 12px 34px rgba(15,23,42,.045)}
.auth-layout{display:grid;grid-template-columns:minmax(0,1.05fr) minmax(420px,.95fr);gap:24px;min-height:calc(100vh - 44px)}
.hero-panel{position:relative;overflow:hidden;border-radius:32px;padding:42px;color:#fff;background:linear-gradient(135deg,#80ceb0 0%,#5dbb96 50%,#429d79 100%);display:flex;flex-direction:column;justify-content:space-between}
.hero-panel:before,.hero-panel:after{content:'';position:absolute;border-radius:999px;background:rgba(255,255,255,.11)}
.hero-panel:before{width:220px;height:220px;left:-70px;bottom:-80px}.hero-panel:after{width:150px;height:150px;right:-35px;top:20px}
.brand-logos{display:flex;align-items:center;gap:18px;position:relative;z-index:1;flex-wrap:wrap}
.brand-logo{display:block;object-fit:contain;filter:drop-shadow(0 6px 14px rgba(15,23,42,.08));background:rgba(255,255,255,.96);padding:7px 10px;border-radius:14px}
.brand-logo.moe{height:58px}.brand-logo.talent{height:54px}.brand-logo.olympiad{height:70px;min-width:90px}
.hero-kicker{font-weight:700;opacity:.94;margin-top:34px}.hero-title{font-size:clamp(2.2rem,4vw,3.6rem);font-weight:900;line-height:1.35;margin:8px 0}.hero-subtitle{font-size:1.05rem;line-height:2;max-width:720px;opacity:.96}.hero-box{position:relative;z-index:1;background:rgba(255,255,255,.14);border:1px solid rgba(255,255,255,.24);border-radius:24px;padding:20px;backdrop-filter:blur(10px);max-width:620px}
.auth-card{padding:34px;align-self:center}.auth-badge{font-size:.86rem;font-weight:800;color:var(--ib-primary-dark);margin-bottom:8px}.auth-title{font-size:2rem;font-weight:900;margin:0 0 8px}.auth-desc{color:var(--ib-muted);line-height:1.9;margin-bottom:24px}
.form-label{font-weight:800;font-size:.92rem}.form-control,.form-select{border-radius:14px;border-color:var(--ib-line);padding:.82rem 1rem}.form-control:focus,.form-select:focus{box-shadow:0 0 0 .2rem rgba(93,187,150,.14);border-color:var(--ib-primary)}
.btn{border-radius:14px;font-weight:800;padding:.72rem 1rem}.btn-primary{background:var(--ib-primary);border-color:var(--ib-primary)}.btn-primary:hover,.btn-primary:focus{background:var(--ib-primary-dark);border-color:var(--ib-primary-dark)}.btn-outline-primary{color:var(--ib-primary-dark);border-color:var(--ib-primary-border)}.btn-outline-primary:hover{background:var(--ib-primary-soft);color:var(--ib-primary-dark);border-color:var(--ib-primary-border)}
.app-shell{display:grid;grid-template-columns:300px minmax(0,1fr);gap:24px;align-items:start}.sidebar-panel{padding:14px;position:sticky;top:18px}.brand-box{background:linear-gradient(135deg,#7bc7aa,#5dbb96);color:#fff;border-radius:24px;padding:20px;margin-bottom:14px}.brand-box .brand-logos{gap:9px}.brand-box .brand-logo{height:40px;padding:5px 7px;border-radius:10px}.brand-box .brand-logo.olympiad{height:46px;min-width:60px}.brand-title{font-size:1.45rem;font-weight:900;margin-top:12px}.brand-subtitle{font-size:.88rem;opacity:.92;line-height:1.8}
.nav-list{display:flex;flex-direction:column;gap:6px}.nav-link-shell{display:flex;align-items:center;gap:10px;padding:11px 13px;border-radius:14px;color:#334155;font-weight:800}.nav-link-shell i{width:22px;text-align:center}.nav-link-shell:hover{background:#f8fafc;color:#334155}.nav-link-shell.active{background:var(--ib-primary);color:#fff}.nav-section{font-size:.76rem;font-weight:900;color:#94a3b8;padding:14px 10px 5px}.sidebar-user{border-top:1px solid var(--ib-line);margin-top:14px;padding:14px 9px 4px}.sidebar-user .name{font-weight:900}.sidebar-user .role{font-size:.82rem;color:var(--ib-muted)}
.content-stack{min-width:0;display:flex;flex-direction:column;gap:18px}.content-card{padding:24px}.page-head{display:flex;align-items:flex-start;justify-content:space-between;gap:18px;flex-wrap:wrap}.page-kicker{font-size:.82rem;font-weight:800;color:var(--ib-primary-dark)}.page-title{font-size:2rem;font-weight:900;margin:2px 0 5px}.page-desc{color:var(--ib-muted);margin:0;line-height:1.8}.page-actions{display:flex;gap:8px;flex-wrap:wrap}
.stats-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(185px,1fr));gap:14px}.stat-card{position:relative;overflow:hidden;background:#fff;border:1px solid var(--ib-line);border-radius:20px;padding:18px;min-height:145px;box-shadow:0 10px 26px rgba(15,23,42,.035)}.stat-card:before{content:'';display:block;width:52px;height:5px;border-radius:99px;background:var(--accent,var(--ib-primary));margin-bottom:13px}.stat-card .label{font-weight:800;color:#334155}.stat-card .value{font-size:2rem;font-weight:900;margin-top:8px}.stat-card .meta{font-size:.82rem;color:var(--ib-muted);margin-top:6px}.tone-warning{--accent:var(--ib-warning)}.tone-danger{--accent:var(--ib-danger)}.tone-info{--accent:var(--ib-info)}.tone-purple{--accent:var(--ib-purple)}
.table-wrap{overflow:auto;border:1px solid var(--ib-line);border-radius:18px}.table{margin:0}.table th{white-space:nowrap;background:#f8fafc;color:#475569;font-size:.84rem;font-weight:900;border-bottom-color:var(--ib-line)}.table td{vertical-align:middle;border-bottom-color:#edf2f7}.table tr:last-child td{border-bottom:0}.table-action{display:flex;gap:6px;flex-wrap:wrap}
.badge-soft{display:inline-flex;align-items:center;gap:5px;border-radius:999px;padding:.42rem .72rem;font-size:.78rem;font-weight:900}.badge-general{background:#eef2ff;color:#4338ca}.badge-private{background:#fff7ed;color:#c2410c}.badge-success-soft{background:#ecfdf5;color:#047857}.badge-warning-soft{background:#fffbeb;color:#a16207}.badge-danger-soft{background:#fff1f2;color:#be123c}.badge-muted-soft{background:#f1f5f9;color:#64748b}.badge-info-soft{background:#eff6ff;color:#1d4ed8}
.info-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:12px}.info-box{background:#f8fafc;border:1px solid var(--ib-line);border-radius:16px;padding:14px}.info-box .label{font-size:.78rem;color:var(--ib-muted);font-weight:700}.info-box .value{font-weight:900;margin-top:4px;word-break:break-word}
.project-grid{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(340px,.75fr);gap:18px}.section-title{font-size:1.2rem;font-weight:900;margin:0}.section-desc{font-size:.86rem;color:var(--ib-muted);margin-top:5px}.section-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:14px;flex-wrap:wrap}
.tag-cloud{display:flex;gap:7px;flex-wrap:wrap}.project-tag{display:inline-flex;align-items:center;gap:6px;border:1px solid color-mix(in srgb,var(--tag-color) 28%,#fff);background:color-mix(in srgb,var(--tag-color) 10%,#fff);color:color-mix(in srgb,var(--tag-color) 75%,#111827);padding:6px 10px;border-radius:999px;font-size:.78rem;font-weight:900}
.phase-list{display:flex;flex-direction:column;gap:10px}.phase-card{border:1px solid var(--ib-line);border-radius:18px;padding:14px;background:#fff}.phase-card.disabled{background:#f8fafc;opacity:.78}.phase-row{display:grid;grid-template-columns:44px minmax(0,1fr) auto;gap:12px;align-items:center}.phase-no{width:38px;height:38px;border-radius:12px;background:var(--ib-primary-soft);color:var(--ib-primary-dark);display:grid;place-items:center;font-weight:900}.phase-title{font-weight:900}.phase-meta{display:flex;gap:8px;flex-wrap:wrap;margin-top:5px;font-size:.78rem;color:var(--ib-muted)}.phase-actions{display:flex;gap:6px;align-items:center;flex-wrap:wrap;justify-content:flex-end}
.note-card{border:1px solid var(--ib-line);border-radius:18px;padding:15px;background:#fff}.note-card+.note-card{margin-top:10px}.note-body{white-space:pre-wrap;line-height:1.9}.note-meta{display:flex;gap:10px;flex-wrap:wrap;color:var(--ib-muted);font-size:.78rem;margin-bottom:8px}.note-response{margin-top:10px;padding:10px 12px;background:#f8fafc;border-radius:12px;border:1px solid var(--ib-line)}
.file-item{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 0;border-bottom:1px solid #edf2f7}.file-item:last-child{border-bottom:0}.file-name{font-weight:800;word-break:break-word}.file-meta{font-size:.76rem;color:var(--ib-muted);margin-top:3px}
.soft-alert{border:0;border-radius:16px;line-height:1.8}.empty-state{text-align:center;padding:34px 18px;color:var(--ib-muted)}.empty-state i{font-size:2rem;color:#cbd5e1;display:block;margin-bottom:9px}
.filter-bar{display:flex;gap:10px;flex-wrap:wrap;align-items:end}.filter-bar .field{min-width:180px;flex:1}.modal-content{border:0;border-radius:22px}.modal-header,.modal-footer{border-color:var(--ib-line)}
.timeline{position:relative;padding-right:18px}.timeline:before{content:'';position:absolute;right:5px;top:4px;bottom:4px;width:2px;background:#e2e8f0}.timeline-item{position:relative;padding:0 14px 16px 0}.timeline-item:before{content:'';position:absolute;right:-17px;top:6px;width:10px;height:10px;background:var(--ib-primary);border:2px solid #fff;border-radius:50%;box-shadow:0 0 0 1px var(--ib-primary-border)}.timeline-title{font-weight:900}.timeline-meta{font-size:.76rem;color:var(--ib-muted)}
.login-tabs{display:flex;gap:8px;margin-bottom:20px}.login-tabs a{flex:1;text-align:center;padding:10px;border-radius:12px;font-weight:800;background:#f8fafc;color:#475569}.login-tabs a.active{background:var(--ib-primary-soft);color:var(--ib-primary-dark)}

/* Select2 follows the same visual system as Bootstrap form controls while retaining AJAX search behavior. */
.select2-container{font-family:'Cairo',Tahoma,Arial,sans-serif;max-width:100%}
.select2-container--default .select2-selection--single{height:52px;min-height:52px;background:#fff;border:1px solid var(--ib-line);border-radius:14px;display:flex;align-items:center;transition:border-color .15s ease,box-shadow .15s ease}
.select2-container--default .select2-selection--single .select2-selection__rendered{width:100%;padding:.82rem 1rem;color:var(--ib-ink);line-height:1.5;text-align:right}
.select2-container--default .select2-selection--single .select2-selection__placeholder{color:#6c757d}
.select2-container--default .select2-selection--single .select2-selection__arrow{height:100%;top:0;width:34px;display:flex;align-items:center;justify-content:center}
[dir="rtl"] .select2-container--default .select2-selection--single .select2-selection__arrow{right:auto;left:8px}
.select2-container--default.select2-container--focus .select2-selection--single,.select2-container--default.select2-container--open .select2-selection--single{border-color:var(--ib-primary);box-shadow:0 0 0 .2rem rgba(93,187,150,.14);outline:0;border-radius:14px}
.select2-dropdown{font-family:'Cairo',Tahoma,Arial,sans-serif;background:#fff;border:1px solid var(--ib-line);border-radius:14px;box-shadow:0 14px 30px rgba(15,23,42,.12);overflow:hidden}
.select2-container--open .select2-dropdown--below,.select2-container--open .select2-dropdown--above{border-radius:14px}
.select2-search--dropdown{padding:10px}
.select2-container--default .select2-search--dropdown .select2-search__field{width:100%;border:1px solid var(--ib-line);border-radius:12px;padding:.68rem .85rem;font-family:'Cairo',Tahoma,Arial,sans-serif;direction:rtl;outline:0}
.select2-container--default .select2-search--dropdown .select2-search__field:focus{border-color:var(--ib-primary);box-shadow:0 0 0 .18rem rgba(93,187,150,.12)}
.select2-results__option{padding:10px 12px;line-height:1.65;text-align:right}
.select2-container--default .select2-results__option--highlighted.select2-results__option--selectable{background:var(--ib-primary-soft);color:var(--ib-primary-dark)}
.select2-container--default .select2-results__option--selected{background:#f8fafc}
.school-option-name{font-weight:800;color:var(--ib-ink)}
.school-option-id{font-size:.78rem;color:var(--ib-muted);margin-top:2px}

@media(max-width:1100px){.app-shell{grid-template-columns:1fr}.sidebar-panel{position:relative;top:auto}.sidebar-panel .nav-list{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr))}.project-grid{grid-template-columns:1fr}.sidebar-user{display:flex;justify-content:space-between;align-items:center}.auth-layout{grid-template-columns:1fr}.hero-panel{min-height:410px}.auth-card{align-self:auto}}
@media(max-width:720px){.page-wrap{padding:10px 0}.container-app{width:calc(100% - 16px)}.content-card{padding:16px}.page-title{font-size:1.55rem}.hero-panel{padding:24px;border-radius:24px}.auth-card{padding:20px}.brand-logo.moe{height:46px}.brand-logo.talent{height:42px}.brand-logo.olympiad{height:56px}.phase-row{grid-template-columns:38px minmax(0,1fr)}.phase-actions{grid-column:1/-1;justify-content:flex-start}.filter-bar{display:block}.filter-bar .field{margin-bottom:10px}.stats-grid{grid-template-columns:1fr 1fr}.stat-card{min-height:125px;padding:14px}.stat-card .value{font-size:1.55rem}}
@media(max-width:480px){.stats-grid{grid-template-columns:1fr}.brand-logos{gap:8px}.hero-title{font-size:2rem}}
@media print{.sidebar-panel,.page-actions,.btn,.modal,.filter-bar{display:none!important}.app-shell{display:block}.page-wrap{padding:0}.card-surface{box-shadow:none;border-color:#ddd}.content-card{padding:12px}}


/* Admin settings navigation */
.nav-settings-group{display:flex;flex-direction:column;gap:5px}
.nav-settings-toggle{width:100%;border:0;background:transparent;text-align:right}
.nav-settings-toggle .nav-settings-chevron{margin-inline-start:auto;width:auto;font-size:.8rem;transition:transform .2s ease}
.nav-settings-toggle[aria-expanded="true"] .nav-settings-chevron{transform:rotate(180deg)}
.nav-settings-submenu{padding-inline-start:14px}
.nav-settings-submenu .nav-link-shell{font-size:.9rem;padding-block:9px}

/* General settings */
.settings-form{display:grid;gap:14px;max-width:760px}
.setting-choice{display:grid;grid-template-columns:auto minmax(0,1fr);gap:12px;align-items:start;padding:16px;border:1.5px solid var(--ib-line);border-radius:18px;background:#f8fafc;cursor:pointer}
.setting-choice input{width:20px;height:20px;margin-top:3px;accent-color:var(--ib-primary)}
.setting-choice span{display:block}.setting-choice strong{display:block;font-size:1rem}.setting-choice small{display:block;margin-top:4px;color:var(--ib-muted);line-height:1.8}
.setting-choice:has(input:checked){border-color:var(--ib-primary-border);background:var(--ib-primary-soft)}
.setting-choice:has(input:disabled){opacity:.62;cursor:not-allowed}

/* Nebras phone verification */
.nebras-verification{display:grid;gap:16px}
.verification-instructions{display:flex;gap:13px;align-items:flex-start;padding:14px;border:1px solid var(--ib-primary-border);border-radius:16px;background:var(--ib-primary-soft);line-height:1.8}
.verification-instructions strong{display:block;margin-bottom:3px}
.verification-icon{width:44px;height:44px;flex:0 0 auto;border-radius:14px;display:grid;place-items:center;background:#128c7e;color:#fff;font-size:1.35rem}
.verification-qr{width:246px;min-height:246px;margin:0 auto;padding:12px;display:grid;place-items:center;border:1px solid var(--ib-line);border-radius:22px;background:#fff;box-shadow:0 12px 28px rgba(15,23,42,.06)}
.verification-qr img,.verification-qr canvas{max-width:220px;height:auto!important}
.btn-whatsapp{background:#128c7e;border-color:#128c7e;color:#fff}.btn-whatsapp:hover,.btn-whatsapp:focus{background:#0e766a;border-color:#0e766a;color:#fff}
.verification-waiting{display:flex;align-items:center;gap:12px;padding:14px;border:1px solid var(--ib-line);border-radius:16px;background:#f8fafc}
.verification-waiting strong{display:block}.verification-waiting small{display:block;color:var(--ib-muted);margin-top:2px;line-height:1.7}
.verification-spinner{width:22px;height:22px;flex:0 0 auto;border:3px solid #cbd5e1;border-top-color:var(--ib-primary);border-radius:50%;animation:verificationSpin .8s linear infinite}
.verification-countdown{text-align:center;color:var(--ib-muted);font-size:.86rem}.verification-countdown strong{color:var(--ib-ink)}
.verification-result{text-align:center;padding:10px 0}.verification-result h3{font-weight:900;margin:12px 0 6px}.verification-result p{color:var(--ib-muted);line-height:1.8;margin:0 0 18px}
.verification-result-icon{width:86px;height:86px;margin:0 auto;border-radius:50%;display:grid;place-items:center;font-size:2.9rem;font-weight:900}
.verification-success .verification-result-icon{background:#ecfdf5;color:#047857;border:1px solid #a7f3d0}
.verification-failure .verification-result-icon{background:#fff1f2;color:#be123c;border:1px solid #fecdd3}
@keyframes verificationSpin{to{transform:rotate(360deg)}}
@media(max-width:1100px){.nav-settings-group{min-width:0}.nav-settings-submenu{padding-inline-start:0}.nav-settings-submenu .nav-link-shell{padding-inline-start:28px}}
@media(max-width:480px){.verification-qr{width:226px;min-height:226px}.verification-qr img,.verification-qr canvas{max-width:200px}}
@media(prefers-reduced-motion:reduce){.verification-spinner{animation:none}}
