@import "https://fonts.googleapis.com/css2?family=IBM+Plex+Sans+Arabic:wght@300;400;500;600;700&family=IBM+Plex+Sans:wght@400;500;600;700&display=swap";
:root{--color-primary:#6c5ce7;--color-primary-deep:#5a4bd1;--color-primary-soft:#a79af5;--color-primary-tint:#e9e6fb;--color-accent:#ff8a5c;--color-accent-soft:#ffc4a3;--color-bg:#eeedfb;--color-surface:#fff;--color-sidebar:#5b4fd9;--color-text:#2d2a4a;--color-text-muted:#8c89a8;--color-on-primary:#fff;--color-positive:#6c5ce7;--color-negative:#ff8a5c;--color-danger:#e5484d;--color-income:#6c5ce7;--color-expense:#ff8a5c;--color-fraud-flagged:#ff8a5c;--color-fraud-confirmed:#e5484d;--color-fraud-clean:#6c5ce7;--color-fraud-dismissed:#8c89a8;--radius-card:16px;--radius-pill:999px;--radius-sm:8px;--radius-md:12px;--shadow-card:0 8px 24px #5b4fd914;--shadow-hover:0 12px 32px #5b4fd929;--shadow-sidebar:4px 0 24px #5b4fd926;--space-1:.25rem;--space-2:.5rem;--space-3:.75rem;--space-4:1rem;--space-5:1.25rem;--space-6:1.5rem;--space-8:2rem;--space-10:2.5rem;--space-12:3rem;--font-display:"IBM Plex Sans Arabic", "Tajawal", system-ui, sans-serif;--font-body:"IBM Plex Sans Arabic", "Tajawal", system-ui, sans-serif;--font-numeric:"IBM Plex Sans", "Inter", system-ui, sans-serif;--text-xs:.75rem;--text-sm:.875rem;--text-base:1rem;--text-lg:1.125rem;--text-xl:1.25rem;--text-2xl:1.5rem;--text-3xl:1.875rem;--text-4xl:2.25rem;--transition-fast:.15s cubic-bezier(.4, 0, .2, 1);--transition-normal:.25s cubic-bezier(.4, 0, .2, 1);--z-sidebar:50;--z-topbar:40;--z-modal:100;--z-toast:200;--sidebar-w-open:240px;--sidebar-w-collapsed:64px}[data-theme=dark]{--color-bg:#16142b;--color-surface:#201d3a;--color-sidebar:#1b1833;--color-text:#edebfb;--color-text-muted:#9b97bc;--color-primary:#8b7cf7;--color-primary-tint:#2e2955;--color-accent:#ff9d75;--shadow-card:0 8px 24px #00000059;--shadow-hover:0 12px 32px #00000080}
*,:before,:after{box-sizing:border-box;margin:0;padding:0}html{-webkit-text-size-adjust:100%;scroll-behavior:smooth;direction:rtl;font-size:16px}body{font-family:var(--font-body);font-size:var(--text-base);color:var(--color-text);background-color:var(--color-bg);-webkit-font-smoothing:antialiased;min-block-size:100dvh;transition:background-color var(--transition-normal), color var(--transition-normal);line-height:1.6}h1,h2,h3,h4,h5,h6{font-family:var(--font-display);color:var(--color-text);font-weight:700;line-height:1.25}.num{font-family:var(--font-numeric);font-variant-numeric:tabular-nums;font-feature-settings:"tnum";letter-spacing:.02em}a{color:var(--color-primary);transition:color var(--transition-fast);text-decoration:none}a:hover{color:var(--color-primary-deep)}a:focus-visible{outline:2px solid var(--color-primary);outline-offset:2px;border-radius:var(--radius-sm)}.app-shell{flex-direction:row;min-block-size:100dvh;display:flex}.sidebar{background:linear-gradient(180deg, var(--color-primary-deep) 0%, var(--color-sidebar) 100%);box-shadow:var(--shadow-sidebar);padding-block:var(--space-6);padding-inline:var(--space-3);gap:var(--space-1);width:var(--sidebar-w-open);transition:width var(--transition-normal);z-index:var(--z-sidebar);flex-direction:column;flex-shrink:0;order:2;display:flex;position:relative;overflow:hidden}.sidebar.collapsed{width:var(--sidebar-w-collapsed)}.sidebar-logo{align-items:center;gap:var(--space-3);padding-inline:var(--space-2);padding-block:var(--space-4);margin-block-end:var(--space-6);display:flex;overflow:hidden}.sidebar-logo-icon{border-radius:var(--radius-md);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#ffffff26;flex-shrink:0;justify-content:center;align-items:center;width:2.5rem;height:2.5rem;font-size:1.25rem;display:flex}.sidebar-logo-text{color:var(--color-on-primary);font-weight:700;font-size:var(--text-base);white-space:nowrap;opacity:1;transition:opacity var(--transition-normal);overflow:hidden}.sidebar.collapsed .sidebar-logo-text{opacity:0;width:0}.nav-item{align-items:center;gap:var(--space-3);padding-block:var(--space-3);padding-inline:var(--space-3);border-radius:var(--radius-md);color:#ffffffb3;font-size:var(--text-sm);cursor:pointer;transition:background-color var(--transition-fast), color var(--transition-fast);white-space:nowrap;font-weight:500;font-family:var(--font-body);text-align:start;background:0 0;border:none;width:100%;text-decoration:none;display:flex;overflow:hidden}.nav-item:hover{color:var(--color-on-primary);background:#ffffff1f}.nav-item.active{color:var(--color-on-primary);background:#ffffff2e;font-weight:600}.nav-item-icon{text-align:center;flex-shrink:0;width:1.4rem;font-size:1.1rem}.nav-item-label{opacity:1;transition:opacity var(--transition-normal);overflow:hidden}.sidebar.collapsed .nav-item-label{opacity:0;width:0}.nav-divider{block-size:1px;margin-block:var(--space-3);margin-inline:var(--space-2);background:#ffffff1f}.main-area{flex-direction:column;flex:1;order:1;min-inline-size:0;display:flex}.topbar{padding-inline:var(--space-6);padding-block:var(--space-4);background:var(--color-surface);z-index:var(--z-topbar);border-block-end:1px solid #6c5ce71a;justify-content:space-between;align-items:center;display:flex;position:sticky;inset-block-start:0;box-shadow:0 2px 8px #5b4fd90f}.topbar-start{align-items:center;gap:var(--space-4);display:flex}.topbar-end{align-items:center;gap:var(--space-3);display:flex}.page-content{padding:var(--space-6);flex:1}.page-header{margin-block-end:var(--space-6)}.page-title{font-size:var(--text-2xl);color:var(--color-text);margin-block-end:var(--space-1);font-weight:700}.page-subtitle{font-size:var(--text-sm);color:var(--color-text-muted)}.card{background:var(--color-surface);border-radius:var(--radius-card);padding:var(--space-6);box-shadow:var(--shadow-card);transition:box-shadow var(--transition-fast), transform var(--transition-fast)}.card:hover{box-shadow:var(--shadow-hover);transform:translateY(-1px)}.card-header{justify-content:space-between;align-items:center;margin-block-end:var(--space-5);display:flex}.card-title{font-size:var(--text-base);color:var(--color-text);font-weight:700}.kpi-grid{gap:var(--space-4);grid-template-columns:repeat(auto-fit,minmax(13rem,1fr));margin-block-end:var(--space-6);display:grid}.kpi-card{background:var(--color-surface);border-radius:var(--radius-card);padding:var(--space-5) var(--space-6);box-shadow:var(--shadow-card);transition:box-shadow var(--transition-fast), transform var(--transition-fast);position:relative;overflow:hidden}.kpi-card:after{content:"";background:linear-gradient(90deg, var(--color-primary), var(--color-primary-soft));border-radius:var(--radius-card) var(--radius-card) 0 0;block-size:3px;position:absolute;inset-block-start:0;inset-inline:0}.kpi-card:hover{box-shadow:var(--shadow-hover);transform:translateY(-2px)}.kpi-label{font-size:var(--text-sm);color:var(--color-text-muted);margin-block-end:var(--space-2);font-weight:500}.kpi-value{font-family:var(--font-numeric);font-size:var(--text-4xl);color:var(--color-text);font-variant-numeric:tabular-nums;font-weight:700;line-height:1.1}.kpi-currency{font-size:var(--text-sm);color:var(--color-text-muted);margin-inline-start:var(--space-1);font-weight:400}.trend{font-size:var(--text-sm);border-radius:var(--radius-pill);padding:2px var(--space-2);align-items:center;gap:2px;margin-block-start:var(--space-2);font-weight:600;display:inline-flex}.trend-up{color:var(--color-positive);background:var(--color-primary-tint)}.trend-up:before{content:"▲ "}.trend-down{color:var(--color-negative);background:#ff8a5c1f}.trend-down:before{content:"▼ "}.trend-flat{color:var(--color-text-muted);background:#8c89a81a}.trend-flat:before{content:"— "}.btn{justify-content:center;align-items:center;gap:var(--space-2);padding-block:var(--space-2);padding-inline:var(--space-5);border-radius:var(--radius-pill);font-family:var(--font-body);font-size:var(--text-sm);cursor:pointer;transition:background-color var(--transition-fast), box-shadow var(--transition-fast), transform var(--transition-fast);white-space:nowrap;border:none;font-weight:600;display:inline-flex}.btn:active{transform:scale(.97)}.btn:focus-visible{outline:2px solid var(--color-primary);outline-offset:2px}.btn-primary{background:var(--color-primary);color:var(--color-on-primary);box-shadow:0 4px 12px #6c5ce74d}.btn-primary:hover{background:var(--color-primary-deep);box-shadow:0 6px 20px #6c5ce766}.btn-ghost{color:var(--color-text-muted);border-radius:var(--radius-md);background:0 0}.btn-ghost:hover{background:var(--color-primary-tint);color:var(--color-primary)}.btn-danger{background:var(--color-danger);color:#fff}.btn-danger:hover{background:#c93b40}.btn-sm{padding-block:var(--space-1);padding-inline:var(--space-3);font-size:var(--text-xs)}.btn-icon{padding:var(--space-2);border-radius:var(--radius-md);color:var(--color-text-muted);cursor:pointer;transition:background-color var(--transition-fast), color var(--transition-fast);background:0 0;border:none;justify-content:center;align-items:center;font-size:1.1rem;display:flex}.btn-icon:hover{background:var(--color-primary-tint);color:var(--color-primary)}.badge{padding-block:2px;padding-inline:var(--space-2);border-radius:var(--radius-pill);font-size:var(--text-xs);align-items:center;font-weight:600;display:inline-flex}.badge-primary,.badge-income{background:var(--color-primary-tint);color:var(--color-primary)}.badge-expense{color:var(--color-accent);background:#ff8a5c1f}.badge-success{color:var(--color-primary);background:#6c5ce71a}.badge-fraud{color:var(--color-negative);background:#ff8a5c26}.badge-danger{color:var(--color-danger);background:#e5484d1f}.badge-muted{color:var(--color-text-muted);background:#8c89a826}.data-table{border-collapse:collapse;width:100%;font-size:var(--text-sm)}.data-table th{text-align:start;padding-block:var(--space-3);padding-inline:var(--space-4);color:var(--color-text-muted);font-weight:700;font-size:var(--text-xs);text-transform:uppercase;letter-spacing:.05em;border-block-end:2px solid var(--color-primary-tint);white-space:nowrap;background:#6c5ce708}.data-table td{padding-block:var(--space-4);padding-inline:var(--space-4);color:var(--color-text);transition:background-color var(--transition-fast);border-block-end:1px solid #6c5ce714}.data-table tr:last-child td{border-block-end:none}.data-table tr:hover td{background:#6c5ce708}.input{block-size:2.5rem;padding-block:var(--space-2);padding-inline:var(--space-4);border-radius:var(--radius-md);font-family:var(--font-body);font-size:var(--text-sm);color:var(--color-text);background:var(--color-surface);transition:border-color var(--transition-fast), box-shadow var(--transition-fast);border:1.5px solid #6c5ce733;outline:none;width:100%}.input:focus{border-color:var(--color-primary);box-shadow:0 0 0 3px #6c5ce726}.input::placeholder{color:var(--color-text-muted)}.select{block-size:2.5rem;padding-block:var(--space-2);padding-inline:var(--space-4);border-radius:var(--radius-md);font-family:var(--font-body);font-size:var(--text-sm);color:var(--color-text);background:var(--color-surface);cursor:pointer;transition:border-color var(--transition-fast);direction:rtl;border:1.5px solid #6c5ce733;outline:none}.select:focus{border-color:var(--color-primary)}.label{font-size:var(--text-sm);color:var(--color-text);margin-block-end:var(--space-2);font-weight:600;display:block}.form-group{gap:var(--space-1);flex-direction:column;display:flex}.progress-track{background:var(--color-primary-tint);border-radius:var(--radius-pill);block-size:6px;overflow:hidden}.progress-fill{border-radius:var(--radius-pill);background:var(--color-primary);block-size:100%;transition:width var(--transition-normal)}.progress-fill.accent{background:var(--color-accent)}.tabs{border-block-end:2px solid #6c5ce71f;gap:0;margin-block-end:var(--space-6);display:flex}.tab{padding-block:var(--space-3);padding-inline:var(--space-5);font-size:var(--text-sm);color:var(--color-text-muted);cursor:pointer;transition:color var(--transition-fast), border-color var(--transition-fast);font-weight:600;font-family:var(--font-body);background:0 0;border:none;border-block-end:2px solid #0000;margin-block-end:-2px}.tab.active{color:var(--color-primary);border-block-end-color:var(--color-primary)}.tab:hover:not(.active){color:var(--color-text)}.status-dot{border-radius:var(--radius-pill);flex-shrink:0;width:8px;height:8px;display:inline-block}.status-dot.active{background:var(--color-primary)}.status-dot.inactive{background:var(--color-text-muted)}.status-dot.flagged{background:var(--color-accent)}.status-dot.danger{background:var(--color-danger)}.filter-bar{align-items:center;gap:var(--space-3);padding:var(--space-4);background:var(--color-surface);border-radius:var(--radius-card);box-shadow:var(--shadow-card);flex-wrap:wrap;margin-block-end:var(--space-4);display:flex}.filter-bar .filter-label{font-size:var(--text-xs);color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.05em;white-space:nowrap;font-weight:700}.period-chip{padding-block:var(--space-1);padding-inline:var(--space-3);border-radius:var(--radius-pill);font-size:var(--text-xs);cursor:pointer;color:var(--color-text-muted);font-weight:600;font-family:var(--font-body);transition:all var(--transition-fast);background:0 0;border:1.5px solid #0000}.period-chip:hover{background:var(--color-primary-tint);color:var(--color-primary)}.period-chip.active{background:var(--color-primary);color:var(--color-on-primary);border-color:var(--color-primary)}.avatar{border-radius:var(--radius-pill);background:linear-gradient(135deg, var(--color-primary), var(--color-primary-soft));width:2.25rem;height:2.25rem;color:var(--color-on-primary);font-weight:700;font-size:var(--text-sm);flex-shrink:0;justify-content:center;align-items:center;display:flex}.donut-center-text{font-family:var(--font-numeric);font-variant-numeric:tabular-nums}@keyframes fadeSlideIn{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}@keyframes skeleton{0%,to{opacity:.5}50%{opacity:1}}.animate-in{animation:.3s both fadeSlideIn}.skeleton{background:var(--color-primary-tint);border-radius:var(--radius-sm);animation:1.5s infinite skeleton}::-webkit-scrollbar{width:5px;height:5px}::-webkit-scrollbar-track{background:0 0}::-webkit-scrollbar-thumb{border-radius:var(--radius-pill);background:#6c5ce733}::-webkit-scrollbar-thumb:hover{background:var(--color-primary-soft)}@media (max-width:900px){.sidebar{display:none}.kpi-grid{grid-template-columns:repeat(2,1fr)}}@media (max-width:600px){.kpi-grid{grid-template-columns:1fr}.page-content{padding:var(--space-4)}}
