:root{--navy-950:#000936;--navy-900:#071768;--navy-800:#0e2499;--navy-700:#071fcc;--blue-500:#0019ff;--yellow-500:#fd0;--yellow-600:#ffca00;--amber-600:#ffb700;--success:#22c55e;--danger:#ef4444;--warning:#f59e0b;--info:#0ea5e9;--gps:#06b6d4;--notify:#8b5cf6;--attention:#ec4899;--bg:#f8fafc;--surface:#fff;--surface-alt:#f1f5f9;--border:#e2e8f0;--text-secondary:#647488;--text-primary:#0f172a;--shadow-sm:0 1px 2px #0f172a0f;--shadow-md:0 6px 20px #0f172a14;--shadow-lg:0 16px 40px #0f172a24;--radius-sm:8px;--radius-md:12px;--radius-lg:18px;--sidebar-w:272px;--sidebar-w-collapsed:76px;--header-h:68px;--font-body:"Rabar", "Segoe UI", "Noto Sans Arabic", system-ui, sans-serif;--font-display:"Rabar", "Segoe UI", "Noto Sans Arabic", system-ui, sans-serif}[data-theme=dark]{--bg:#0b1020;--surface:#111827;--surface-alt:#1f2937;--border:#334155;--text-secondary:#cbd5e1;--text-primary:#f8fafc;--shadow-sm:0 1px 2px #0006;--shadow-md:0 6px 24px #00000073;--shadow-lg:0 20px 48px #0000008c}*{box-sizing:border-box}html,body,#root{height:100%}body{background:var(--bg);color:var(--text-primary);font-family:var(--font-body);-webkit-font-smoothing:antialiased;margin:0;transition:background .2s,color .2s}html[dir=rtl] body{font-family:"Rabar", "Noto Sans Arabic", var(--font-body)}a{color:inherit;text-decoration:none}button{font-family:inherit}::selection{background:var(--yellow-500);color:var(--navy-950)}:focus-visible{outline:2px solid var(--blue-500);outline-offset:2px;border-radius:4px}.app-shell{background:var(--bg);min-height:100vh;display:flex}.app-main{min-width:0;flex-direction:column;flex:1;margin-inline-start:var(--sidebar-w);transition:margin .2s;display:flex}.app-main.sidebar-collapsed{margin-inline-start:var(--sidebar-w-collapsed)}@media (width<=960px){.app-main,.app-main.sidebar-collapsed{margin-inline-start:0}}.app-content{width:100%;max-width:1440px;margin:0 auto;padding:24px clamp(16px,3vw,32px) 48px}.sidebar{width:var(--sidebar-w);background:linear-gradient(180deg, var(--navy-950) 0%, #050b28 100%);color:#e5e9ff;z-index:40;border-inline-end:1px solid #ffffff0f;flex-direction:column;transition:width .2s,transform .2s;display:flex;position:fixed;inset-block:0;inset-inline-start:0}.sidebar.collapsed{width:var(--sidebar-w-collapsed)}@media (width<=960px){.sidebar{transform:translate(-100%)}html[dir=rtl] .sidebar{transform:translate(100%)}.sidebar.mobile-open{transform:translate(0)}}.sidebar-brand{min-height:var(--header-h);border-bottom:1px solid #ffffff14;align-items:center;gap:12px;padding:20px 18px;display:flex}.sidebar-brand-badge{background:var(--yellow-500);width:38px;height:38px;color:var(--navy-950);box-shadow:var(--shadow-sm);border-radius:10px;flex-shrink:0;justify-content:center;align-items:center;display:flex}.sidebar-brand-text{letter-spacing:.2px;color:#fff;white-space:nowrap;font-size:16px;font-weight:700;overflow:hidden}.sidebar-brand-sub{color:#8da0d6;white-space:nowrap;font-size:11px}.sidebar.collapsed .sidebar-brand-text,.sidebar.collapsed .sidebar-brand-sub{display:none}.sidebar-scroll{flex:1;padding:14px 10px 20px;overflow-y:auto}.sidebar-scroll::-webkit-scrollbar{width:5px}.sidebar-scroll::-webkit-scrollbar-thumb{background:#ffffff26;border-radius:4px}.sidebar-group{margin-bottom:18px}.sidebar-group-title{color:#7c8fc7;text-transform:none;letter-spacing:.3px;padding:0 12px 6px;font-size:11px;font-weight:600}.sidebar.collapsed .sidebar-group-title{display:none}.sidebar-link{color:#c3cdee;white-space:nowrap;border-radius:10px;align-items:center;gap:12px;margin:2px 0;padding:10px 12px;font-size:14px;transition:background .15s,color .15s;display:flex;overflow:hidden}.sidebar-link svg{flex-shrink:0;width:18px;height:18px}.sidebar-link:hover{color:#fff;background:#ffffff0f}.sidebar-link.active{background:var(--yellow-500);color:var(--navy-950);font-weight:700}.sidebar.collapsed .sidebar-link{justify-content:center;padding:10px}.sidebar.collapsed .sidebar-link span.link-label{display:none}.sidebar-collapse-btn{color:#c3cdee;cursor:pointer;background:#ffffff0a;border:1px solid #ffffff1a;border-radius:10px;justify-content:center;align-items:center;margin:10px;padding:8px;display:flex}.sidebar-collapse-btn:hover{color:#fff;background:#ffffff17}.sidebar-overlay{z-index:35;background:#0206178c;display:none;position:fixed;inset:0}@media (width<=960px){.sidebar-overlay.show{display:block}}.topbar{z-index:30;height:var(--header-h);background:color-mix(in srgb, var(--surface) 92%, transparent);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;gap:12px;padding:0 clamp(14px,3vw,28px);display:flex;position:sticky;top:0}.topbar-left{align-items:center;gap:14px;min-width:0;display:flex}#mobile-menu-btn{display:none}@media (width<=960px){#mobile-menu-btn{display:flex}}.topbar-right{align-items:center;gap:8px;display:flex}.icon-btn{width:40px;height:40px;color:var(--text-secondary);cursor:pointer;background:0 0;border:1px solid #0000;border-radius:10px;justify-content:center;align-items:center;transition:background .15s,border-color .15s,color .15s;display:flex;position:relative}.icon-btn:hover{background:var(--surface-alt);color:var(--text-primary);border-color:var(--border)}.icon-btn .badge-dot{top:6px;background:var(--attention);color:#fff;border:2px solid var(--surface);border-radius:999px;justify-content:center;align-items:center;min-width:16px;height:16px;padding:0 4px;font-size:10px;font-weight:700;display:flex;position:absolute;inset-inline-end:6px}.page-title{color:var(--text-primary);margin:0;font-size:20px;font-weight:700}.page-subtitle{color:var(--text-secondary);margin:2px 0 0;font-size:13px}.user-chip{border:1px solid var(--border);background:var(--surface);cursor:pointer;border-radius:999px;align-items:center;gap:10px;padding:6px 10px 6px 6px;display:flex}html[dir=rtl] .user-chip{padding:6px 6px 6px 10px}.user-avatar{background:var(--navy-950);width:32px;height:32px;color:var(--yellow-500);border-radius:999px;flex-shrink:0;justify-content:center;align-items:center;font-size:13px;font-weight:700;display:flex}.user-chip-meta{text-align:start;line-height:1.15}.user-chip-name{color:var(--text-primary);font-size:13px;font-weight:600}.user-chip-role{color:var(--text-secondary);font-size:11px}.dropdown-anchor{position:relative}.dropdown-panel{top:calc(100% + 10px);background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-md);width:360px;max-width:88vw;box-shadow:var(--shadow-lg);z-index:50;position:absolute;inset-inline-end:0;overflow:hidden}.dropdown-header{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;padding:14px 16px;display:flex}.dropdown-header h4{margin:0;font-size:14px;font-weight:700}.dropdown-link{color:var(--blue-500);cursor:pointer;font-size:12px;font-weight:600}.dropdown-list{max-height:360px;overflow-y:auto}.dropdown-empty{text-align:center;color:var(--text-secondary);padding:32px 16px;font-size:13px}.notif-item,.msg-item{border-bottom:1px solid var(--border);cursor:pointer;gap:12px;padding:12px 16px;transition:background .15s;display:flex}.notif-item:last-child,.msg-item:last-child{border-bottom:none}.notif-item:hover,.msg-item:hover{background:var(--surface-alt)}.notif-item.unread{background:color-mix(in srgb, var(--info) 6%, transparent)}.notif-icon{color:#fff;border-radius:10px;flex-shrink:0;justify-content:center;align-items:center;width:36px;height:36px;display:flex}.notif-body{flex:1;min-width:0}.notif-title{color:var(--text-primary);margin:0 0 2px;font-size:13px;font-weight:600}.notif-desc{color:var(--text-secondary);text-overflow:ellipsis;white-space:nowrap;margin:0;font-size:12px;overflow:hidden}.notif-time{color:var(--text-secondary);margin-top:4px;font-size:11px}.msg-avatar{background:var(--navy-900);width:36px;height:36px;color:var(--yellow-500);border-radius:999px;flex-shrink:0;justify-content:center;align-items:center;font-size:12px;font-weight:700;display:flex}.stat-grid{grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:16px;margin:20px 0 28px;display:grid}.stat-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-md);box-shadow:var(--shadow-sm);flex-direction:column;gap:10px;padding:18px;display:flex}.stat-card-top{justify-content:space-between;align-items:center;display:flex}.stat-icon{color:#fff;border-radius:10px;justify-content:center;align-items:center;width:40px;height:40px;display:flex}.stat-value{color:var(--text-primary);font-size:28px;font-weight:800;line-height:1}.stat-label{color:var(--text-secondary);font-size:12.5px;font-weight:600}.stat-trend{font-size:11.5px;font-weight:700}.stat-trend.up{color:var(--success)}.stat-trend.down{color:var(--danger)}.panel{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-md);box-shadow:var(--shadow-sm)}.panel-header{border-bottom:1px solid var(--border);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;padding:16px 18px;display:flex}.panel-header h3{margin:0;font-size:15px;font-weight:700}.panel-body{padding:18px}.btn{cursor:pointer;white-space:nowrap;border:1px solid #0000;border-radius:10px;justify-content:center;align-items:center;gap:8px;padding:10px 16px;font-size:13.5px;font-weight:700;transition:filter .15s,background .15s,border-color .15s;display:inline-flex}.btn:active{filter:brightness(.94)}.btn-primary{background:var(--navy-950);color:#fff}.btn-primary:hover{background:var(--navy-900)}.btn-accent{background:var(--yellow-500);color:var(--navy-950)}.btn-accent:hover{background:var(--yellow-600)}.btn-outline{border-color:var(--border);color:var(--text-primary);background:0 0}.btn-outline:hover{background:var(--surface-alt)}.btn-danger{background:var(--danger);color:#fff}.btn-danger:hover{filter:brightness(1.08)}.btn-ghost{color:var(--text-secondary);background:0 0}.btn-ghost:hover{background:var(--surface-alt);color:var(--text-primary)}.btn-sm{border-radius:8px;padding:6px 12px;font-size:12.5px}.btn:disabled{opacity:.55;cursor:not-allowed}.table-toolbar{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;margin-bottom:14px;display:flex}.search-input{background:var(--surface-alt);border:1px solid var(--border);border-radius:10px;align-items:center;gap:8px;min-width:240px;padding:8px 12px;display:flex}.search-input input{color:var(--text-primary);background:0 0;border:none;outline:none;width:100%;font-size:13.5px}.search-input svg{color:var(--text-secondary);flex-shrink:0}.table-wrap{border:1px solid var(--border);border-radius:var(--radius-md);overflow-x:auto}table.data-table{border-collapse:collapse;width:100%;min-width:640px;font-size:13.5px}.data-table thead th{text-align:start;background:var(--surface-alt);color:var(--text-secondary);border-bottom:1px solid var(--border);white-space:nowrap;padding:12px 14px;font-size:12px;font-weight:700}.data-table tbody td{border-bottom:1px solid var(--border);color:var(--text-primary);vertical-align:middle;padding:12px 14px}.data-table tbody tr:last-child td{border-bottom:none}.data-table tbody tr:hover{background:var(--surface-alt)}.row-actions{gap:6px;display:flex}.badge{border-radius:999px;align-items:center;gap:5px;padding:3px 10px;font-size:11.5px;font-weight:700;display:inline-flex}.badge-success{background:color-mix(in srgb, var(--success) 15%, transparent);color:var(--success)}.badge-danger{background:color-mix(in srgb, var(--danger) 15%, transparent);color:var(--danger)}.badge-warning{background:color-mix(in srgb, var(--warning) 15%, transparent);color:var(--warning)}.badge-info{background:color-mix(in srgb, var(--info) 15%, transparent);color:var(--info)}.badge-neutral{background:var(--surface-alt);color:var(--text-secondary)}.empty-state{text-align:center;color:var(--text-secondary);padding:56px 20px}.empty-state svg{opacity:.6;margin-bottom:10px}.loading-state{color:var(--text-secondary);justify-content:center;align-items:center;gap:10px;padding:64px;display:flex}.spinner{border:2.5px solid var(--border);border-inline-start-color:var(--blue-500);border-radius:999px;width:20px;height:20px;animation:.7s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.modal-overlay{z-index:100;background:#0206178c;justify-content:center;align-items:center;padding:16px;display:flex;position:fixed;inset:0}.modal-card{background:var(--surface);border-radius:var(--radius-lg);width:100%;max-width:560px;max-height:88vh;box-shadow:var(--shadow-lg);border:1px solid var(--border);overflow-y:auto}.modal-head{border-bottom:1px solid var(--border);background:var(--surface);justify-content:space-between;align-items:center;padding:18px 22px;display:flex;position:sticky;top:0}.modal-head h2{margin:0;font-size:17px;font-weight:700}.modal-body{gap:14px;padding:20px 22px;display:grid}.modal-foot{border-top:1px solid var(--border);background:var(--surface);justify-content:flex-end;gap:10px;padding:16px 22px;display:flex;position:sticky;bottom:0}.field-group{flex-direction:column;gap:6px;display:flex}.field-group.col-2{grid-column:span 2}.field-group label{color:var(--text-secondary);font-size:12.5px;font-weight:700}.field-hint{color:var(--text-secondary);font-size:11px}.field-input,.field-select,.field-textarea{border:1px solid var(--border);background:var(--bg);color:var(--text-primary);border-radius:9px;outline:none;width:100%;padding:10px 12px;font-size:13.5px;transition:border-color .15s,box-shadow .15s}.field-input:focus,.field-select:focus,.field-textarea:focus{border-color:var(--blue-500);box-shadow:0 0 0 3px color-mix(in srgb, var(--blue-500) 18%, transparent)}.form-grid{grid-template-columns:1fr 1fr;gap:14px;display:grid}@media (width<=560px){.form-grid{grid-template-columns:1fr}.field-group.col-2{grid-column:span 1}}.auth-shell{background:var(--bg);grid-template-columns:1fr 1fr;min-height:100vh;display:grid}@media (width<=880px){.auth-shell{grid-template-columns:1fr}}.auth-visual{background:radial-gradient(120% 120% at 15% 10%, var(--navy-900) 0%, var(--navy-950) 55%, #020617 100%);color:#fff;flex-direction:column;justify-content:space-between;padding:48px;display:flex;position:relative;overflow:hidden}@media (width<=880px){.auth-visual{display:none}}.auth-visual:after{content:"";inset-inline-end:-80px;background:radial-gradient(circle,#ffdd002e,#0000 70%);border-radius:999px;width:280px;height:280px;position:absolute;bottom:-80px}.auth-route-line{background:#ffffff1f;border-radius:2px;height:2px;margin:28px 0;position:relative}.auth-route-dot{background:var(--yellow-500);border-radius:999px;width:10px;height:10px;position:absolute;top:50%;transform:translateY(-50%);box-shadow:0 0 0 6px #ffdd0026}.auth-panel{justify-content:center;align-items:center;padding:32px;display:flex}.auth-card{width:100%;max-width:400px}.auth-lang-row{justify-content:flex-end;margin-bottom:18px;display:flex}.auth-checkbox-row{justify-content:space-between;align-items:center;margin:2px 0 4px;display:flex}.auth-checkbox{color:var(--text-secondary);align-items:center;gap:8px;font-size:13px;display:flex}.auth-link{color:var(--blue-500);cursor:pointer;font-size:13px;font-weight:600}.password-field{position:relative}.password-toggle{top:50%;color:var(--text-secondary);cursor:pointer;background:0 0;border:none;padding:2px;display:flex;position:absolute;inset-inline-end:10px;transform:translateY(-50%)}.divider-text{color:var(--text-secondary);align-items:center;gap:10px;margin:18px 0;font-size:12px;display:flex}.divider-text:before,.divider-text:after{content:"";background:var(--border);flex:1;height:1px}.seg-control{background:var(--surface-alt);border:1px solid var(--border);border-radius:10px;gap:2px;padding:3px;display:flex}.seg-btn{color:var(--text-secondary);cursor:pointer;background:0 0;border:none;border-radius:8px;padding:6px 10px;font-size:12px;font-weight:700}.seg-btn.active{background:var(--surface);color:var(--text-primary);box-shadow:var(--shadow-sm)}.theme-toggle{background:var(--surface-alt);border:1px solid var(--border);width:40px;height:40px;color:var(--text-secondary);cursor:pointer;border-radius:10px;justify-content:center;align-items:center;display:flex}.flex-row{align-items:center;display:flex}.gap-8{gap:8px}.gap-10{gap:10px}.gap-12{gap:12px}.text-secondary{color:var(--text-secondary)}.truncate{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.field-error-input{border-color:var(--danger)}.field-error-text{color:var(--danger);margin-top:4px;font-size:12px;display:block}.institution-picker{background:var(--surface-alt);border:1px solid var(--border);border-radius:var(--radius-md);flex-direction:column;gap:10px;padding:12px;display:flex}.institution-row{grid-template-columns:1fr 1fr 1fr 1.2fr auto;align-items:center;gap:8px;display:grid}.institution-row .field-select{background:var(--surface);border-radius:9px;padding:8px 10px;font-size:13px}.institution-row .field-select:disabled{opacity:.55;cursor:not-allowed}.institution-row .btn.btn-danger.btn-sm{border-radius:9px;flex-shrink:0;width:34px;height:34px;padding:0}.institution-picker>.btn.btn-outline.btn-sm{border-radius:9px;align-self:flex-start;padding:7px 12px}.institution-picker .text-secondary{padding:4px 2px;font-size:13px}.institution-picker.field-error-input,.institution-picker.field-error-input .field-select{border-color:var(--danger)}.institution-picker.field-error-input{box-shadow:0 0 0 3px color-mix(in srgb, var(--danger) 14%, transparent)}html[dir=rtl] .institution-row .btn.btn-danger.btn-sm{justify-self:start}@media (width<=900px){.institution-row{grid-template-columns:1fr 1fr}.institution-row .btn.btn-danger.btn-sm{grid-column:span 2;justify-self:end}}@media (width<=640px){.institution-row{grid-template-columns:1fr}.institution-row .btn.btn-danger.btn-sm{grid-column:span 1;justify-self:start}}.multiselect-group{border:1px solid var(--border);border-radius:var(--radius-md);background:var(--surface-alt);grid-template-columns:repeat(auto-fill,minmax(190px,1fr));gap:6px 14px;max-height:240px;padding:10px 12px;transition:border-color .15s,box-shadow .15s;display:grid;overflow-y:auto}.multiselect-group:focus-within{border-color:var(--blue-500);box-shadow:0 0 0 3px color-mix(in srgb, var(--blue-500) 18%, transparent)}.multiselect-group::-webkit-scrollbar{width:6px}.multiselect-group::-webkit-scrollbar-thumb{background:color-mix(in srgb, var(--text-secondary) 35%, transparent);border-radius:4px}.multiselect-option{color:var(--text-primary);cursor:pointer;border-radius:8px;align-items:center;gap:8px;padding:6px 8px;font-size:13.5px;transition:background .15s;display:flex}.multiselect-option:hover{background:var(--surface)}.multiselect-option input[type=checkbox]{width:16px;height:16px;accent-color:var(--navy-950);cursor:pointer;flex-shrink:0}[data-theme=dark] .multiselect-option input[type=checkbox]{accent-color:var(--yellow-500)}.multiselect-option span{-webkit-user-select:none;user-select:none}
