@font-face{font-family:Tajawal;font-style:normal;font-display:swap;font-weight:400;src:url(/dashboard/assets/tajawal-arabic-400-normal-CyCXRvzh.woff2)format("woff2"),url(/dashboard/assets/tajawal-arabic-400-normal-DCQxawbB.woff)format("woff");unicode-range:U+6??,U+750-77F,U+870-88E,U+890-891,U+897-8E1,U+8E3-8FF,U+200C-200E,U+2010-2011,U+204F,U+2E41,U+FB50-FDFF,U+FE70-FE74,U+FE76-FEFC,U+102E0-102FB,U+10E60-10E7E,U+10EC2-10EC4,U+10EFC-10EFF,U+1EE00-1EE03,U+1EE05-1EE1F,U+1EE21-1EE22,U+1EE24,U+1EE27,U+1EE29-1EE32,U+1EE34-1EE37,U+1EE39,U+1EE3B,U+1EE42,U+1EE47,U+1EE49,U+1EE4B,U+1EE4D-1EE4F,U+1EE51-1EE52,U+1EE54,U+1EE57,U+1EE59,U+1EE5B,U+1EE5D,U+1EE5F,U+1EE61-1EE62,U+1EE64,U+1EE67-1EE6A,U+1EE6C-1EE72,U+1EE74-1EE77,U+1EE79-1EE7C,U+1EE7E,U+1EE80-1EE89,U+1EE8B-1EE9B,U+1EEA1-1EEA3,U+1EEA5-1EEA9,U+1EEAB-1EEBB,U+1EEF0-1EEF1}@font-face{font-family:Tajawal;font-style:normal;font-display:swap;font-weight:400;src:url(/dashboard/assets/tajawal-latin-400-normal-BVNSOH3d.woff2)format("woff2"),url(/dashboard/assets/tajawal-latin-400-normal-BdYcZznU.woff)format("woff");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Tajawal;font-style:normal;font-display:swap;font-weight:700;src:url(/dashboard/assets/tajawal-arabic-700-normal-D2-eand5.woff2)format("woff2"),url(/dashboard/assets/tajawal-arabic-700-normal-9L7Zusdl.woff)format("woff");unicode-range:U+6??,U+750-77F,U+870-88E,U+890-891,U+897-8E1,U+8E3-8FF,U+200C-200E,U+2010-2011,U+204F,U+2E41,U+FB50-FDFF,U+FE70-FE74,U+FE76-FEFC,U+102E0-102FB,U+10E60-10E7E,U+10EC2-10EC4,U+10EFC-10EFF,U+1EE00-1EE03,U+1EE05-1EE1F,U+1EE21-1EE22,U+1EE24,U+1EE27,U+1EE29-1EE32,U+1EE34-1EE37,U+1EE39,U+1EE3B,U+1EE42,U+1EE47,U+1EE49,U+1EE4B,U+1EE4D-1EE4F,U+1EE51-1EE52,U+1EE54,U+1EE57,U+1EE59,U+1EE5B,U+1EE5D,U+1EE5F,U+1EE61-1EE62,U+1EE64,U+1EE67-1EE6A,U+1EE6C-1EE72,U+1EE74-1EE77,U+1EE79-1EE7C,U+1EE7E,U+1EE80-1EE89,U+1EE8B-1EE9B,U+1EEA1-1EEA3,U+1EEA5-1EEA9,U+1EEAB-1EEBB,U+1EEF0-1EEF1}@font-face{font-family:Tajawal;font-style:normal;font-display:swap;font-weight:700;src:url(/dashboard/assets/tajawal-latin-700-normal-BypgxfGb.woff2)format("woff2"),url(/dashboard/assets/tajawal-latin-700-normal-CV3bxpHe.woff)format("woff");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Tajawal;font-style:normal;font-display:swap;font-weight:800;src:url(/dashboard/assets/tajawal-arabic-800-normal-TQp-UTiE.woff2)format("woff2"),url(/dashboard/assets/tajawal-arabic-800-normal-Bp_4IW2m.woff)format("woff");unicode-range:U+6??,U+750-77F,U+870-88E,U+890-891,U+897-8E1,U+8E3-8FF,U+200C-200E,U+2010-2011,U+204F,U+2E41,U+FB50-FDFF,U+FE70-FE74,U+FE76-FEFC,U+102E0-102FB,U+10E60-10E7E,U+10EC2-10EC4,U+10EFC-10EFF,U+1EE00-1EE03,U+1EE05-1EE1F,U+1EE21-1EE22,U+1EE24,U+1EE27,U+1EE29-1EE32,U+1EE34-1EE37,U+1EE39,U+1EE3B,U+1EE42,U+1EE47,U+1EE49,U+1EE4B,U+1EE4D-1EE4F,U+1EE51-1EE52,U+1EE54,U+1EE57,U+1EE59,U+1EE5B,U+1EE5D,U+1EE5F,U+1EE61-1EE62,U+1EE64,U+1EE67-1EE6A,U+1EE6C-1EE72,U+1EE74-1EE77,U+1EE79-1EE7C,U+1EE7E,U+1EE80-1EE89,U+1EE8B-1EE9B,U+1EEA1-1EEA3,U+1EEA5-1EEA9,U+1EEAB-1EEBB,U+1EEF0-1EEF1}@font-face{font-family:Tajawal;font-style:normal;font-display:swap;font-weight:800;src:url(/dashboard/assets/tajawal-latin-800-normal-CmI34b-g.woff2)format("woff2"),url(/dashboard/assets/tajawal-latin-800-normal-Dm5jVIIh.woff)format("woff");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root{--bg:#0f1117;--bg2:#161923;--card:#1c1f2e;--card2:#242838;--card3:#2a2f45;--border:#ffffff12;--border2:#ffffff21;--green:#00d97e;--green-bg:#00d97e1a;--green-border:#00d97e33;--blue:#4f8ef7;--blue-bg:#4f8ef71a;--blue-border:#4f8ef733;--yellow:#f5a623;--yellow-bg:#f5a6231a;--yellow-border:#f5a62333;--red:#f05252;--red-bg:#f052521a;--red-border:#f0525233;--purple:#9b6cf7;--purple-bg:#9b6cf71a;--orange:#fb923c;--orange-bg:#fb923c1a;--gray-bg:#ffffff0d;--text:#f0f4ff;--text2:#8892aa;--text3:#4a5570;--text4:#2a3448;--font:"Tajawal", sans-serif;--mono:"JetBrains Mono", "Courier New", monospace;--sidebar-w:232px;--topbar-h:54px;--r:10px;--r-lg:14px}[data-theme=light]{--bg:#f5f7fa;--bg2:#fff;--card:#fff;--card2:#f0f2f5;--card3:#e8ecf0;--border:#00000014;--border2:#00000026;--text:#1a1a2e;--text2:#4a5568;--text3:#718096;--text4:#cbd5e0;--gray-bg:#00000008;--green-bg:#00d97e14;--blue-bg:#4f8ef714;--yellow-bg:#f5a62314;--red-bg:#f0525214;--purple-bg:#9b6cf714;--orange-bg:#fb923c14}.skip-link{background:var(--blue);color:#fff;z-index:1000;padding:8px 16px;transition:top .2s;position:absolute;top:-40px;left:0}.skip-link:focus{top:0}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html{direction:rtl;font-size:14px}body{background:var(--bg);color:var(--text);font-family:var(--font);-webkit-font-smoothing:antialiased;min-height:100vh;line-height:1.6}::-webkit-scrollbar{width:5px;height:5px}::-webkit-scrollbar-track{background:0 0}::-webkit-scrollbar-thumb{background:var(--border2);border-radius:3px}.layout{min-height:100vh;display:flex}.main{margin-right:var(--sidebar-w);flex-direction:column;flex:1;min-width:0;min-height:100vh;display:flex}.page-body{box-sizing:border-box;flex:1;min-width:0;max-width:100%;padding:24px;overflow-x:hidden}.page-body>*{box-sizing:border-box;max-width:100%}.page-body table{table-layout:auto;max-width:100%}.sidebar{width:var(--sidebar-w);background:var(--bg2);border-left:1px solid var(--border);z-index:100;flex-direction:column;display:flex;position:fixed;top:0;bottom:0;right:0;overflow-y:auto}.sb-brand{padding:18px 16px 12px}.sb-logo{align-items:center;gap:10px;margin-bottom:16px;display:flex}.sb-logo-icon{background:linear-gradient(135deg,var(--green),#00a855);border-radius:8px;flex-shrink:0;justify-content:center;align-items:center;width:30px;height:30px;font-size:15px;display:flex}.sb-logo-name{font-size:13px;font-weight:800;line-height:1.2}.sb-logo-ver{color:var(--text3);font-size:9px;font-family:var(--mono)}.sb-project{background:var(--card);border:1px solid var(--border2);cursor:pointer;border-radius:8px;justify-content:space-between;align-items:center;margin-bottom:4px;padding:8px 10px;display:flex}.sb-project:hover{border-color:var(--blue-border)}.sb-project-name{font-size:12px;font-weight:600}.sb-project-status{background:var(--green-bg);color:var(--green);font-size:9px;font-family:var(--mono);border-radius:3px;padding:1px 6px}.sb-project-arr{color:var(--text3);font-size:10px}.sb-nav{flex:1;padding:4px 8px}.nav-item{color:var(--text2);cursor:pointer;border-radius:8px;align-items:center;gap:9px;margin-bottom:2px;padding:9px 10px;font-size:12px;font-weight:500;text-decoration:none;transition:background .12s,color .12s;display:flex;position:relative}.nav-item:hover{color:var(--text);background:#ffffff0a}.nav-item.active{background:var(--blue-bg);color:var(--blue);font-weight:600}.nav-item.active:before{content:"";background:var(--blue);border-radius:0 3px 3px 0;width:3px;position:absolute;top:4px;bottom:4px;left:0}.nav-icon{text-align:center;flex-shrink:0;width:18px;font-size:14px}.nav-badge{background:var(--red);color:#fff;font-size:9px;font-weight:700;font-family:var(--mono);border-radius:100px;margin-right:auto;padding:1px 6px}.nav-badge-g{background:var(--green-bg);color:var(--green);font-size:9px;font-weight:700;font-family:var(--mono);border-radius:100px;margin-right:auto;padding:1px 6px}.sb-divider{background:var(--border);height:1px;margin:6px 16px}.sb-bottom{padding:12px 16px}.sb-status{color:var(--text3);align-items:center;gap:7px;font-size:11px;display:flex}.status-dot{border-radius:50%;width:7px;height:7px}.topbar{height:var(--topbar-h);background:var(--bg2);border-bottom:1px solid var(--border);z-index:50;flex-shrink:0;justify-content:space-between;align-items:center;padding:0 24px;display:flex;position:sticky;top:0}.topbar-title{font-size:15px;font-weight:700}.topbar-right{align-items:center;gap:10px;display:flex}.mock-toggle{background:var(--yellow-bg);border:1px solid var(--yellow-border);color:var(--yellow);cursor:pointer;border-radius:7px;align-items:center;gap:6px;padding:5px 12px;font-size:11px;font-weight:600;display:flex}.mock-toggle.live{background:var(--green-bg);border-color:var(--green-border);color:var(--green)}.city-tabs{background:var(--card);border:1px solid var(--border);border-radius:7px;display:flex;overflow:hidden}.city-tab{color:var(--text3);cursor:pointer;padding:5px 12px;font-size:11px;font-weight:600}.city-tab.active{background:var(--blue-bg);color:var(--blue)}.notif-btn{background:var(--card);border:1px solid var(--border);cursor:pointer;border-radius:7px;justify-content:center;align-items:center;width:32px;height:32px;font-size:14px;display:flex;position:relative}.notif-dot{background:var(--red);border:1.5px solid var(--bg2);border-radius:50%;width:7px;height:7px;position:absolute;top:5px;left:5px}.card{background:var(--card);border:1px solid var(--border);border-radius:var(--r-lg);padding:18px}.card-title{color:var(--text2);text-transform:uppercase;letter-spacing:.8px;justify-content:space-between;align-items:center;margin-bottom:14px;font-size:12px;font-weight:700;display:flex}.stats-grid{grid-template-columns:repeat(5,1fr);gap:10px;margin-bottom:16px;display:grid}.stat-card{background:var(--card);border:1px solid var(--border);border-radius:var(--r);padding:14px}.stat-icon{border-radius:8px;justify-content:center;align-items:center;width:34px;height:34px;margin-bottom:10px;font-size:15px;display:flex}.stat-value{font-family:var(--mono);margin-bottom:3px;font-size:22px;font-weight:700;line-height:1}.stat-label{color:var(--text3);font-size:10px}.stat-change{align-items:center;gap:3px;margin-top:4px;font-size:10px;display:flex}.badge{border-radius:100px;align-items:center;gap:4px;padding:2px 9px;font-size:10px;font-weight:600;display:inline-flex}.badge:before{content:"";border-radius:50%;flex-shrink:0;width:5px;height:5px}.badge-new{background:var(--blue-bg);color:var(--blue)}.badge-new:before{background:var(--blue)}.badge-contacted{background:var(--yellow-bg);color:var(--yellow)}.badge-contacted:before{background:var(--yellow)}.badge-interested{background:var(--green-bg);color:var(--green)}.badge-interested:before{background:var(--green)}.badge-registered{background:var(--purple-bg);color:var(--purple)}.badge-registered:before{background:var(--purple)}.badge-rejected{background:var(--red-bg);color:var(--red)}.badge-rejected:before{background:var(--red)}.badge-opted_out{background:var(--gray-bg);color:var(--text3)}.badge-opted_out:before{background:var(--text3)}.badge-active{background:var(--green-bg);color:var(--green)}.badge-active:before{background:var(--green)}.badge-ok{background:var(--green-bg);color:var(--green)}.badge-ok:before{background:var(--green)}.badge-down{background:var(--red-bg);color:var(--red)}.badge-down:before{background:var(--red)}.badge-pending{background:var(--yellow-bg);color:var(--yellow)}.badge-pending:before{background:var(--yellow)}.btn{cursor:pointer;font-family:var(--font);border:none;border-radius:8px;align-items:center;gap:7px;padding:7px 16px;font-size:12px;font-weight:600;transition:opacity .15s,transform .1s;display:inline-flex}.btn:hover{opacity:.85}.btn:active{transform:scale(.98)}.btn:disabled{opacity:.4;cursor:not-allowed}.btn-primary{background:var(--green);color:#000}.btn-blue{background:var(--blue-bg);color:var(--blue);border:1px solid var(--blue-border)}.btn-yellow{background:var(--yellow-bg);color:var(--yellow);border:1px solid var(--yellow-border)}.btn-red{background:var(--red-bg);color:var(--red);border:1px solid var(--red-border)}.btn-ghost{background:var(--card2);color:var(--text2);border:1px solid var(--border2)}.btn-danger{background:var(--red);color:#fff}.btn-sm{padding:5px 12px;font-size:11px}.btn-xs{padding:3px 9px;font-size:10px}.btn-full{justify-content:center;width:100%}.table-wrap{overflow-x:auto}.table{border-collapse:collapse;width:100%}.table thead tr{border-bottom:1px solid var(--border)}.table th{text-align:right;color:var(--text3);text-transform:uppercase;letter-spacing:.8px;white-space:nowrap;padding:10px 14px;font-size:10px;font-weight:700}.table td{color:var(--text2);border-bottom:1px solid #ffffff0a;padding:11px 14px;font-size:12px}.table td:first-child{color:var(--text);font-weight:500}.table tr:last-child td{border:none}.table tr:hover td{background:#ffffff05}.score-wrap{align-items:center;gap:7px;display:flex}.score-bar{background:var(--border);border-radius:2px;flex:1;height:4px;overflow:hidden}.score-fill{background:linear-gradient(90deg,var(--blue),var(--green));border-radius:2px;height:100%}.score-val{font-family:var(--mono);flex-shrink:0;width:24px;font-size:10px}.input,.select{background:var(--card2);border:1px solid var(--border);color:var(--text);font-family:var(--font);border-radius:8px;outline:none;width:100%;padding:8px 12px;font-size:13px;transition:border-color .15s}.input:focus,.select:focus{border-color:var(--blue)}.form-group{margin-bottom:14px}.form-label{color:var(--text3);margin-bottom:6px;font-size:12px;display:block}.form-hint{color:var(--text3);margin-top:5px;font-size:11px;line-height:1.6}.alert{border-radius:8px;align-items:center;gap:9px;margin-bottom:14px;padding:10px 14px;font-size:12px;display:flex}.alert-success{background:var(--green-bg);border:1px solid var(--green-border);color:var(--green)}.alert-error{background:var(--red-bg);border:1px solid var(--red-border);color:var(--red)}.alert-warning{background:var(--yellow-bg);border:1px solid var(--yellow-border);color:var(--yellow)}.alert-info{background:var(--blue-bg);border:1px solid var(--blue-border);color:var(--blue)}.emergency-stop{background:var(--red-bg);border:1px solid var(--red-border);border-radius:9px;justify-content:space-between;align-items:center;margin-bottom:14px;padding:10px 16px;display:flex}.emergency-text{color:var(--red);align-items:center;gap:8px;font-size:12px;font-weight:600;display:flex}.empty-state{text-align:center;padding:48px 20px}.empty-icon{opacity:.3;margin-bottom:14px;font-size:40px}.empty-title{margin-bottom:6px;font-size:15px;font-weight:700}.empty-sub{color:var(--text3);max-width:320px;margin:0 auto 20px;font-size:12px;line-height:1.8}.modal-overlay{z-index:200;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#0009;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.modal{background:var(--card);border:1px solid var(--border2);border-radius:16px;width:100%;max-width:480px;max-height:90vh;padding:28px;overflow-y:auto}.modal-title{justify-content:space-between;align-items:center;margin-bottom:20px;font-size:16px;font-weight:800;display:flex}.modal-close{cursor:pointer;color:var(--text3);font-size:18px}.modal-footer{border-top:1px solid var(--border);gap:10px;margin-top:20px;padding-top:16px;display:flex}.tooltip-wrap{display:inline-flex;position:relative}.tooltip{background:var(--card2);border:1px solid var(--border2);color:var(--text2);white-space:nowrap;z-index:100;pointer-events:none;opacity:0;white-space:normal;border-radius:8px;min-width:200px;max-width:280px;padding:10px 12px;font-size:11px;line-height:1.7;transition:opacity .15s;position:absolute;bottom:calc(100% + 8px);right:50%;transform:translate(50%)}.tooltip-wrap:hover .tooltip{opacity:1}.prayer-widget{background:var(--card);border:1px solid var(--green-border);border-radius:var(--r);padding:14px}.prayer-title{color:var(--green);margin-bottom:10px;font-size:11px;font-weight:600}.prayer-grid{grid-template-columns:repeat(5,1fr);gap:5px;margin-bottom:10px;display:grid}.prayer-time{background:var(--card2);border:1px solid var(--border);text-align:center;border-radius:6px;padding:7px 4px}.prayer-time.blocked{background:var(--red-bg);border-color:var(--red-border)}.prayer-time-name{color:var(--text3);margin-bottom:2px;font-size:9px}.prayer-time-val{font-family:var(--mono);font-size:10px;font-weight:600}.prayer-time.blocked .prayer-time-name,.prayer-time.blocked .prayer-time-val{color:var(--red)}.guardian-widget{background:var(--card);border:1px solid var(--border);border-radius:var(--r);padding:14px}.guardian-header{justify-content:space-between;align-items:center;margin-bottom:10px;display:flex}.guardian-title{color:var(--text2);font-size:11px;font-weight:600}.guardian-count{font-family:var(--mono);color:var(--green);font-size:13px;font-weight:700}.guardian-bar-wrap{background:var(--border);border-radius:4px;height:7px;margin-bottom:5px;overflow:hidden}.guardian-bar{background:linear-gradient(90deg,var(--green),var(--yellow));border-radius:4px;height:100%}.guardian-labels{color:var(--text3);font-size:10px;font-family:var(--mono);justify-content:space-between;display:flex}.sequence{background:var(--card2);border:1px solid var(--border);border-radius:var(--r);align-items:stretch;display:flex;overflow:hidden}.seq-step{text-align:center;border-left:1px solid var(--border);flex:1;padding:12px 8px}.seq-step:last-child{border:none}.seq-step.active{background:var(--green-bg);border-color:var(--green-border)}.seq-icon{margin-bottom:4px;font-size:16px}.seq-name{margin-bottom:2px;font-size:11px;font-weight:600}.seq-day{color:var(--text3);font-size:10px}.review-card{background:var(--card);border:1px solid var(--border);border-radius:var(--r-lg);margin-bottom:10px;padding:16px}.review-card:hover{border-color:var(--border2)}.review-head{justify-content:space-between;align-items:flex-start;margin-bottom:12px;display:flex}.review-name{margin-bottom:3px;font-size:13px;font-weight:700}.review-meta{color:var(--text3);font-size:10px}.review-users-count{color:var(--green);font-weight:700}.review-messages{grid-template-columns:1fr 1fr;gap:9px;margin-bottom:12px;display:grid}.review-msg-label{font-size:9px;font-family:var(--mono);letter-spacing:1px;margin-bottom:5px}.review-msg{background:var(--card2);border:1px solid var(--border);color:var(--text2);border-radius:7px;padding:10px 12px;font-size:11px;line-height:1.8}.review-msg.dialect{border-color:var(--yellow-border);background:#f5a6230a}.review-actions{align-items:center;gap:8px;display:flex}.review-schedule{color:var(--text3);margin-right:auto;font-size:10px}.score-breakdown{flex-direction:column;gap:4px;display:flex}.score-row{justify-content:space-between;font-size:10px;display:flex}.score-row-label{color:var(--text3)}.score-row-val{font-family:var(--mono);font-weight:600}.heatmap{grid-template-columns:repeat(4,1fr);gap:6px;display:grid}.hm-cell{cursor:pointer;border-radius:8px;flex-direction:column;justify-content:center;align-items:center;height:52px;display:flex}.hm-name{margin-bottom:2px;font-size:10px;font-weight:600}.hm-pct{font-size:12px;font-family:var(--mono);font-weight:700}.funnel{flex-direction:column;gap:9px;display:flex}.funnel-row{align-items:center;gap:10px;display:flex}.funnel-label{color:var(--text2);text-align:right;flex-shrink:0;width:90px;font-size:11px}.funnel-bar-wrap{background:var(--border);border-radius:5px;flex:1;height:10px;overflow:hidden}.funnel-bar{border-radius:5px;height:100%}.funnel-val{font-family:var(--mono);flex-shrink:0;width:80px;font-size:10px}.ob-steps{background:var(--card2);border:1px solid var(--border);border-radius:9px;margin-bottom:24px;display:flex;overflow:hidden}.ob-step{text-align:center;border-left:1px solid var(--border);flex:1;padding:12px 14px}.ob-step:last-child{border:none}.ob-step.done{background:var(--green-bg)}.ob-step.active{background:var(--blue-bg)}.ob-num{font-family:var(--mono);margin-bottom:3px;font-size:10px}.ob-label{font-size:11px;font-weight:600}.perm-row{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;padding:10px 0;display:flex}.perm-row:last-child{border:none}.perm-label{font-size:12px;font-weight:500}.perm-sub{color:var(--text3);font-size:10px}.perm-toggle{background:var(--border2);cursor:pointer;border-radius:100px;width:36px;height:20px;position:relative}.perm-toggle.on{background:var(--green)}.perm-toggle:after{content:"";background:#fff;border-radius:50%;width:16px;height:16px;transition:all .2s;position:absolute;top:2px;right:2px}.perm-toggle.on:after{left:2px;right:auto}.flex{display:flex}.flex-col{flex-direction:column}.items-center{align-items:center}.justify-between{justify-content:space-between}.gap-6{gap:6px}.gap-8{gap:8px}.gap-10{gap:10px}.gap-12{gap:12px}.gap-16{gap:16px}.gap-20{gap:20px}.grid-2{grid-template-columns:1fr 1fr;gap:14px;display:grid}.grid-3{grid-template-columns:repeat(3,1fr);gap:12px;display:grid}.grid-4{grid-template-columns:repeat(4,1fr);gap:12px;display:grid}.mb-6{margin-bottom:6px}.mb-10{margin-bottom:10px}.mb-14{margin-bottom:14px}.mb-20{margin-bottom:20px}.mb-24{margin-bottom:24px}.text-sm{font-size:12px}.text-xs{font-size:11px}.text-2xs{font-size:10px}.text-muted{color:var(--text2)}.text-dim{color:var(--text3)}.text-green{color:var(--green)}.text-blue{color:var(--blue)}.text-red{color:var(--red)}.text-yellow{color:var(--yellow)}.mono{font-family:var(--mono)}.bold{font-weight:700}.w-full{width:100%}.text-center{text-align:center}.divider{background:var(--border);height:1px;margin:14px 0}.toast{z-index:300;border-radius:9px;padding:10px 18px;font-size:12px;font-weight:600;animation:.3s toastIn;position:fixed;bottom:24px;left:24px}.toast-success{background:var(--green);color:#000}.toast-error{background:var(--red);color:#fff}.toast-info{background:var(--blue);color:#fff}@keyframes toastIn{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}.login-page{background:var(--bg);justify-content:center;align-items:center;min-height:100vh;display:flex}.login-box{background:var(--card);border:1px solid var(--border2);text-align:center;border-radius:16px;width:100%;max-width:380px;padding:40px}.login-logo{margin-bottom:12px;font-size:40px}.login-title{margin-bottom:6px;font-size:18px;font-weight:800}.login-sub{color:var(--text3);margin-bottom:28px;font-size:12px;line-height:1.7}.loading{opacity:.5;pointer-events:none;position:relative}.loading:after{content:"جاري التحميل...";color:var(--text2);border-radius:var(--r-lg);background:#0f111780;justify-content:center;align-items:center;font-size:13px;display:flex;position:absolute;inset:0}.mock-banner{background:var(--yellow-bg);border:1px solid var(--yellow-border);color:var(--yellow);text-align:center;border-radius:8px;margin-bottom:14px;padding:8px 14px;font-size:11px;font-weight:600}@media (width<=768px){:root{--sidebar-w:0px}.sidebar{display:none}.stats-grid{grid-template-columns:repeat(3,1fr)}.grid-4{grid-template-columns:1fr 1fr}}
