:root{--bg: #020617;--primary: #0f172a;--secondary: #1e293b;--muted: #1a1e2f;--border: #334155;--text: #f8fafc;--text-dim: #94a3b8;--accent: #22c55e;--accent-soft: rgba(34, 197, 94, .14);--danger: #ef4444;--danger-soft: rgba(239, 68, 68, .14);--warn: #f59e0b;--warn-soft: rgba(245, 158, 11, .14);--info: #38bdf8;--info-soft: rgba(56, 189, 248, .14);--radius-sm: 8px;--radius: 12px;--radius-lg: 18px;--shadow: 0 4px 24px rgba(0, 0, 0, .45);--shadow-lg: 0 18px 48px rgba(0, 0, 0, .55);--font-head: "Cairo", "IBM Plex Sans Arabic", sans-serif;--font-body: "IBM Plex Sans Arabic", "Cairo", sans-serif}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:smooth}body{min-height:100dvh;background:var(--bg);color:var(--text);font-family:var(--font-body);font-size:15px;line-height:1.7;-webkit-font-smoothing:antialiased}h1,h2,h3,h4{font-family:var(--font-head);line-height:1.35;letter-spacing:-.01em}button,input,select{font-family:inherit}button{cursor:pointer}table{border-collapse:collapse;width:100%}.num{font-variant-numeric:tabular-nums;font-feature-settings:"tnum"}.app{max-width:1280px;margin:0 auto;padding:0 1.25rem 4rem}.navbar{position:sticky;top:0;z-index:30;margin-bottom:1.5rem;background:#020617e0;-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);border-bottom:1px solid var(--border)}.nav-inner{max-width:1280px;margin:0 auto;padding:.7rem 1.25rem;display:flex;align-items:center;gap:1rem;flex-wrap:wrap}.brand{display:flex;align-items:center;gap:.6rem;font-family:var(--font-head);font-weight:800}.brand-mark{width:34px;height:34px;border-radius:10px;display:grid;place-items:center;background:var(--accent-soft);color:var(--accent);border:1px solid rgba(34,197,94,.3)}.brand small{display:block;font-family:var(--font-body);font-weight:500;font-size:.72rem;color:var(--text-dim)}.tabs{display:flex;gap:.25rem;background:#ffffff0a;border:1px solid var(--border);border-radius:999px;padding:.25rem;flex:1;overflow-x:auto}.tab{display:inline-flex;align-items:center;gap:.4rem;white-space:nowrap;padding:.5rem .9rem;border-radius:999px;border:0;background:transparent;color:var(--text-dim);font-size:.85rem;font-weight:600;transition:all .2s}.tab:hover{color:var(--text);background:#ffffff0d}.tab.active{background:var(--accent);color:#04210f}.nav-actions{display:flex;align-items:center;gap:.5rem}.btn{display:inline-flex;align-items:center;justify-content:center;gap:.45rem;padding:.55rem 1rem;border-radius:999px;border:1px solid var(--border);background:#ffffff0d;color:var(--text);font-size:.85rem;font-weight:600;transition:transform .15s ease,box-shadow .15s ease,background .2s ease}.btn:hover{transform:translateY(-2px);background:#ffffff1a;box-shadow:var(--shadow)}.btn-primary{background:var(--accent);border-color:var(--accent);color:#04210f}.btn-primary:hover{box-shadow:0 12px 32px #22c55e4d}.btn-icon{padding:.55rem;border-radius:10px}.card{background:linear-gradient(180deg,#1e293b8c,#0f172a8c);border:1px solid var(--border);border-radius:var(--radius-lg);padding:1.1rem 1.2rem;box-shadow:var(--shadow);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.card.pad-lg{padding:1.5rem}.grid{display:grid;gap:1rem}.grid-kpi{grid-template-columns:repeat(auto-fit,minmax(190px,1fr))}.grid-2{grid-template-columns:repeat(auto-fit,minmax(320px,1fr))}.grid-3{grid-template-columns:repeat(auto-fit,minmax(240px,1fr))}.kpi{display:flex;flex-direction:column;gap:.35rem;transition:transform .2s ease,box-shadow .2s ease}.kpi:hover{transform:translateY(-3px);box-shadow:var(--shadow-lg)}.kpi-label{display:flex;align-items:center;gap:.4rem;font-size:.78rem;font-weight:600;color:var(--text-dim)}.kpi-value{font-family:var(--font-head);font-size:clamp(1.5rem,3.4vw,2.1rem);font-weight:800;line-height:1.1}.kpi-unit{font-size:.8rem;color:var(--text-dim);font-weight:500}.kpi.accent .kpi-value{color:var(--accent)}.kpi.danger .kpi-value{color:var(--danger)}.kpi.warn .kpi-value{color:var(--warn)}.kpi.info .kpi-value{color:var(--info)}.section-head{display:flex;align-items:flex-end;justify-content:space-between;gap:1rem;margin:1.75rem 0 .9rem;flex-wrap:wrap}.section-head h2{font-size:clamp(1.1rem,2.4vw,1.45rem)}.hint{display:flex;align-items:flex-start;gap:.5rem;margin:.6rem 0 1rem;padding:.7rem .9rem;border-radius:var(--radius);font-size:.84rem;color:var(--text-dim);background:var(--info-soft);border:1px solid rgba(56,189,248,.25)}.hint strong{color:var(--text)}.badge{display:inline-flex;align-items:center;gap:.3rem;padding:.18rem .55rem;border-radius:999px;font-size:.72rem;font-weight:700;white-space:nowrap}.badge.green{background:var(--accent-soft);color:var(--accent)}.badge.red{background:var(--danger-soft);color:#fca5a5}.badge.amber{background:var(--warn-soft);color:var(--warn)}.badge.blue{background:var(--info-soft);color:var(--info)}.badge.grey{background:#94a3b826;color:var(--text-dim)}.table-wrap{overflow-x:auto;border:1px solid var(--border);border-radius:var(--radius)}table.data{font-size:.84rem;min-width:560px}table.data th,table.data td{padding:.6rem .7rem;text-align:right;border-bottom:1px solid rgba(51,65,85,.6)}table.data thead th{background:#0f172ae6;color:var(--text-dim);font-weight:700;position:sticky;top:0;font-size:.78rem}table.data tbody tr{transition:background .15s ease}table.data tbody tr:hover{background:#38bdf812}table.data tbody tr.clickable:hover{background:var(--accent-soft);cursor:pointer}.comp-name{font-weight:600;white-space:nowrap}.heat{display:grid;gap:.3rem;overflow-x:auto}.heat-row{display:grid;grid-template-columns:minmax(150px,1.4fr) repeat(6,minmax(74px,1fr));gap:.3rem;align-items:stretch}.heat-head{font-size:.72rem;font-weight:700;color:var(--text-dim);display:flex;align-items:center;justify-content:center;text-align:center;padding:.3rem .2rem}.heat-label{font-size:.8rem;font-weight:600;display:flex;flex-direction:column;justify-content:center}.heat-label span{font-size:.7rem;color:var(--text-dim);font-weight:400}.heat-cell{display:flex;flex-direction:column;align-items:center;justify-content:center;border-radius:var(--radius-sm);padding:.35rem .2rem;font-weight:700;font-size:.9rem;border:1px solid transparent;transition:transform .15s ease,border-color .15s ease}.heat-cell small{font-size:.62rem;font-weight:500;opacity:.85}.heat-cell:hover{transform:scale(1.06);border-color:#f8fafc59}.legend{display:flex;align-items:center;gap:.45rem;font-size:.75rem;color:var(--text-dim);flex-wrap:wrap}.legend i{width:14px;height:14px;border-radius:4px;display:inline-block}.bar-row{display:grid;grid-template-columns:minmax(120px,1fr) 3fr auto;gap:.6rem;align-items:center;margin-bottom:.55rem}.bar-track{height:10px;border-radius:999px;background:#94a3b829;overflow:hidden}.bar-fill{height:100%;border-radius:999px;transition:width .6s ease}.bar-label{font-size:.8rem;font-weight:600}.bar-value{font-size:.8rem;color:var(--text-dim);min-width:52px;text-align:left}.budget-head{display:flex;justify-content:space-between;flex-wrap:wrap;gap:.75rem;align-items:center}.budget-track{height:18px;border-radius:999px;background:#94a3b829;overflow:hidden;display:flex;margin:.6rem 0 .35rem}.budget-used{background:linear-gradient(90deg,#16a34a,#22c55e)}.budget-free{background:repeating-linear-gradient(45deg,#94a3b82e 0,#94a3b82e 6px,#94a3b814 6px,#94a3b814 12px)}.pdp{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:.75rem}.pdp-card{border:1px solid var(--border);border-radius:var(--radius);padding:.8rem .9rem;background:#0f172a99}.pdp-card h4{font-size:.92rem;margin-bottom:.4rem;display:flex;justify-content:space-between;align-items:center;gap:.5rem}.pdp-levels{display:flex;gap:.5rem;font-size:.76rem;color:var(--text-dim);margin-bottom:.5rem;flex-wrap:wrap}.pdp-levels b{color:var(--text);font-weight:700}.pdp-list{list-style:none;display:flex;flex-direction:column;gap:.3rem;font-size:.78rem}.pdp-list li{display:flex;gap:.4rem;color:var(--text-dim)}.pdp-list li b{color:var(--accent);font-weight:700}.filters{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:.7rem;align-items:end}.field{display:flex;flex-direction:column;gap:.3rem}.field label{font-size:.74rem;font-weight:700;color:var(--text-dim)}.field input,.field select{padding:.55rem .7rem;border-radius:var(--radius-sm);border:1px solid var(--border);background:#0f172acc;color:var(--text);font-size:.85rem;outline:none}.field input:focus,.field select:focus{border-color:var(--accent);box-shadow:0 0 0 3px #22c55e2e}.search-wrap{position:relative}.search-wrap svg{position:absolute;top:50%;right:.6rem;transform:translateY(-50%);color:var(--text-dim)}.search-wrap input{padding-right:2.1rem}.chips{display:flex;gap:.4rem;flex-wrap:wrap}.chip{border:1px solid var(--border);background:#ffffff0a;color:var(--text-dim);border-radius:999px;padding:.3rem .7rem;font-size:.76rem;font-weight:600}.chip.on{background:var(--accent-soft);color:var(--accent);border-color:#22c55e59}.overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:60;background:#020617c7;-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px);display:flex;align-items:flex-start;justify-content:center;padding:2rem 1rem;overflow-y:auto;animation:fadeIn .2s ease}.modal{width:100%;max-width:780px;background:#0b1220;border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);padding:1.4rem;animation:rise .25s ease}.modal-head{display:flex;justify-content:space-between;align-items:flex-start;gap:1rem;margin-bottom:.9rem}.modal-close{border:1px solid var(--border);background:#ffffff0d;color:var(--text);border-radius:10px;padding:.4rem}.empty{text-align:center;padding:2.5rem 1rem;color:var(--text-dim);display:flex;flex-direction:column;align-items:center;gap:.6rem}.skeleton{border-radius:var(--radius);background:linear-gradient(90deg,#94a3b80f 25%,#94a3b824,#94a3b80f 75%);background-size:200%;animation:shimmer 1.3s infinite;height:96px}.toast-wrap{position:fixed;bottom:1.25rem;left:1.25rem;z-index:90;display:flex;flex-direction:column;gap:.5rem}.toast{padding:.7rem 1rem;border-radius:var(--radius);font-size:.85rem;font-weight:600;box-shadow:var(--shadow-lg);animation:rise .25s ease}.toast.success{background:var(--accent-soft);border:1px solid rgba(34,197,94,.4);color:#86efac}.toast.info{background:var(--info-soft);border:1px solid rgba(56,189,248,.4);color:#bae6fd}.footer{margin-top:2.5rem;padding-top:1.2rem;border-top:1px solid var(--border);color:var(--text-dim);font-size:.78rem;display:flex;justify-content:space-between;gap:1rem;flex-wrap:wrap}@keyframes fadeUp{0%{opacity:0;transform:translateY(14px)}to{opacity:1;transform:none}}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes rise{0%{opacity:0;transform:translateY(18px)}to{opacity:1;transform:none}}@keyframes shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}.fade-up{animation:fadeUp .45s ease both}.d1{animation-delay:.06s}.d2{animation-delay:.12s}.d3{animation-delay:.18s}:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:6px}.tab:focus-visible{outline-offset:0}.tabpanel:focus,.tabpanel:focus-visible{outline:none}body.no-scroll{overflow:hidden}@media (max-width: 980px){.heat-row{grid-template-columns:minmax(120px,1.2fr) repeat(6,minmax(66px,1fr))}}@media (max-width: 720px){body{font-size:14px}.app{padding:0 .85rem 3rem}.nav-inner{padding:.6rem .85rem}.tabs{order:3;width:100%}.card{padding:.9rem}.heat-row{grid-template-columns:minmax(96px,1fr) repeat(6,minmax(58px,1fr))}.heat-head{font-size:.62rem}.heat-cell{font-size:.78rem}.bar-row{grid-template-columns:minmax(80px,1fr) 2fr auto}.toast-wrap{left:.75rem;right:.75rem}}@media print{.navbar,.btn,.toast-wrap,.tabs{display:none!important}body{background:#fff;color:#000}.card{border-color:#ccc;box-shadow:none;background:#fff}}@media (prefers-reduced-motion: reduce){*,*:before,*:after{animation-duration:.001ms!important;transition-duration:.001ms!important}}.rec-list{display:flex;flex-direction:column;gap:.8rem}.rec-card{border:1px solid var(--border);border-radius:var(--radius);background:#0f172a8c;padding:.95rem 1rem;transition:transform .18s ease,box-shadow .18s ease,border-color .18s ease}.rec-card:hover{transform:translateY(-2px);box-shadow:var(--shadow);border-color:#22c55e59}.rec-head{display:flex;align-items:flex-start;gap:.6rem;flex-wrap:wrap}.rec-id{flex-shrink:0;font-weight:800;font-size:.78rem;color:var(--accent);background:var(--accent-soft);border:1px solid rgba(34,197,94,.3);border-radius:8px;padding:.15rem .45rem}.rec-title{font-size:.97rem;flex:1;min-width:220px}.rec-tags{display:inline-flex;gap:.35rem;flex-shrink:0}.rec-lede{font-size:.84rem;color:var(--text-dim);margin:.55rem 0 .7rem}.rec-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:.55rem .9rem}.rec-grid>div{display:flex;flex-direction:column;gap:.15rem}.rec-grid dt{font-size:.72rem;font-weight:700;color:var(--accent);letter-spacing:.01em}.rec-grid dd{font-size:.83rem;margin:0}button:disabled{opacity:.5;cursor:not-allowed;transform:none!important}@media print{:root{--bg: #fff;--primary: #fff;--secondary: #f8fafc;--muted: #f8fafc;--border: #cbd5e1;--text: #0f172a;--text-dim: #475569;--accent: #15803d;--danger: #b91c1c;--warn: #b45309;--info: #0369a1;--accent-soft: #f1f5f9;--danger-soft: #fef2f2;--warn-soft: #fffbeb;--info-soft: #f0f9ff;--shadow: none;--shadow-lg: none}@page{margin:12mm}html,body{background:#fff!important;color:#0f172a!important;font-size:12px}.app{max-width:none;padding:0}.filters,.chips,.nav-actions,.hint,.skeleton{display:none!important}.card,.rec-card,.pdp-card,.modal,.table-wrap{background:#fff!important;border:1px solid #cbd5e1!important;box-shadow:none!important;break-inside:avoid;padding:.7rem .8rem}.grid-kpi{grid-template-columns:repeat(5,1fr)}.grid-2,.grid-3{grid-template-columns:repeat(2,1fr)}.rec-card,table.data tr{break-inside:avoid}.kpi-value{font-size:1.35rem!important}table.data{font-size:10.5px;min-width:0}table.data thead th{background:#f1f5f9!important;color:#0f172a!important;position:static}table.data th,table.data td{border-bottom:1px solid #e2e8f0;padding:.3rem .35rem}.footer{border-top:1px solid #cbd5e1}a{color:#0f172a;text-decoration:none}}@media print{body:has(.overlay) .navbar,body:has(.overlay) .app{display:none!important}body:has(.overlay) .overlay{position:static!important;inset:auto!important;background:#fff!important;padding:0!important;-webkit-backdrop-filter:none!important;backdrop-filter:none!important;overflow:visible!important;animation:none!important}body:has(.overlay) .modal{max-width:none!important;border:0!important;padding:0!important;animation:none!important}body:has(.overlay) .modal-close{display:none!important}.overlay{animation:none!important}}
