:root{--bg:#f5f6f8;--surface:#fff;--border:#e2e5ea;--text:#1b1f27;--muted:#6b7280;--primary:#1f5eff;--primary-dark:#1848c8;--success:#10864f;--success-bg:#e6f5ee;--warning:#a35c00;--warning-bg:#fdf1e0;--danger:#c02525;--danger-bg:#fbe9e9;--info-bg:#e8effe;--radius:10px;--shadow:0 1px 3px #1018280f, 0 1px 2px #1018280a;color:var(--text);font-family:Segoe UI,Tahoma,Noto Sans Arabic,Arial,sans-serif}*{box-sizing:border-box}body{background:var(--bg);margin:0;font-size:15px;line-height:1.6}h1,h2,h3,h4{margin:0;font-weight:700}.layout{grid-template-columns:250px 1fr;height:100vh;display:grid;overflow:hidden}.sidebar{color:#cdd3df;box-sizing:border-box;scrollbar-width:thin;scrollbar-color:#2a3346 transparent;background:#10141f;flex-direction:column;gap:2px;height:100vh;padding:20px 14px;display:flex;overflow-y:auto}.sidebar::-webkit-scrollbar{width:7px}.sidebar::-webkit-scrollbar-thumb{background:#2a3346;border-radius:4px}.sidebar .brand{border-bottom:1px solid #232a3a;align-items:center;gap:11px;margin-bottom:8px;padding:4px 8px 16px;display:flex}.sidebar .brand-text{flex-direction:column;min-width:0;display:flex}.sidebar .brand-name{color:#fff;letter-spacing:.01em;font-size:16px;font-weight:700}.sidebar .brand-sub{color:#8b93a5;margin-top:2px;font-size:11.5px;font-weight:400}.dev-credit{flex-direction:column;gap:5px;font-size:11px;display:flex}.dev-credit .dc-label{color:var(--muted);letter-spacing:.02em}.dev-credit .dc-brand{color:var(--text);align-items:center;gap:7px;font-size:13px;font-weight:700;display:flex}.sidebar-foot{border-top:1px solid #232a3a;margin-top:auto;padding:14px 8px 2px}.sidebar .dev-credit .dc-label{color:#6b7488}.sidebar .dev-credit .dc-brand{color:#dbe0ea}.login-brand{align-items:center;gap:12px;display:flex}.login-card .dev-credit{text-align:center;border-top:1px solid var(--border);align-items:center;margin-top:18px;padding-top:14px}.splash-credit{margin-top:24px}.splash .dev-credit{align-items:center}.splash .dev-credit .dc-label{color:#8b93a5}.splash .dev-credit .dc-brand{color:#eef1f7}.sidebar .group{color:#6b7488;letter-spacing:.04em;padding:14px 10px 6px;font-size:11px}.sidebar .group-toggle{cursor:pointer;width:100%;font:inherit;color:#9aa4ba;text-align:start;background:0 0;border:none;border-radius:9px;justify-content:space-between;align-items:center;margin-top:4px;padding:11px 10px;font-size:13px;font-weight:600;transition:color .14s,background .14s;display:flex}.sidebar .group-toggle .g-left{align-items:center;gap:10px;min-width:0;display:flex}.sidebar .group-toggle .g-icon{color:#6d7691;transition:color .14s;display:inline-flex}.sidebar .group-toggle .g-label{text-overflow:ellipsis;overflow:hidden}.sidebar .group-toggle:hover{color:#fff;background:#1a2233}.sidebar .group-toggle:hover .g-icon{color:#cdd3df}.sidebar .group-toggle.open{color:#eef1f7}.sidebar .group-toggle.open .g-icon{color:var(--primary)}.sidebar .group-toggle .chev{color:#5c6680;flex:none;font-size:10px;transition:transform .22s cubic-bezier(.4,0,.2,1),color .14s}.sidebar .group-toggle:hover .chev{color:#aab2c5}.sidebar .group-toggle.open .chev{color:#8b93a5;transform:rotate(180deg)}.sidebar .nav-links{border-inline-start:1px solid #1e2636;flex-direction:column;gap:2px;margin-inline-start:20px;padding-inline-start:10px;display:flex;overflow:hidden}.sidebar .nav-links .nav-link{animation:.28s cubic-bezier(.4,0,.2,1) backwards navExpand}.sidebar .nav-links .nav-link:first-child{animation-delay:20ms}.sidebar .nav-links .nav-link:nth-child(2){animation-delay:50ms}.sidebar .nav-links .nav-link:nth-child(3){animation-delay:80ms}.sidebar .nav-links .nav-link:nth-child(4){animation-delay:.11s}.sidebar .nav-links .nav-link:nth-child(5){animation-delay:.14s}.sidebar .nav-links .nav-link:nth-child(6){animation-delay:.17s}@keyframes navExpand{0%{opacity:0;transform:translateY(-6px)}to{opacity:1;transform:translateY(0)}}.nav-link{color:#cdd3df;border-radius:8px;padding:9px 12px;font-size:14px;text-decoration:none;transition:background .12s,color .12s;display:block}.nav-link:hover{color:#fff;background:#1a2030}.nav-link.active{background:var(--primary);color:#fff;font-weight:600}.main{box-sizing:border-box;flex-direction:column;min-width:0;height:100vh;display:flex;overflow:hidden}.topbar{background:var(--surface);border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;padding:14px 24px;display:flex}.topbar .user{color:var(--muted);align-items:center;gap:12px;font-size:14px;display:flex}.content{flex:1;min-height:0;padding:24px;overflow-y:auto}.page-head{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;margin-bottom:18px;display:flex}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow)}.card-head{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;padding:14px 18px;font-weight:600;display:flex}.card-body{padding:18px}.grid{gap:16px;display:grid}.grid.cols-4{grid-template-columns:repeat(4,1fr)}.grid.cols-3{grid-template-columns:repeat(3,1fr)}.grid.cols-2{grid-template-columns:repeat(2,1fr)}@media (width<=1100px){.grid.cols-4{grid-template-columns:repeat(2,1fr)}.grid.cols-3,.grid.cols-2{grid-template-columns:1fr}.layout{grid-template-columns:200px 1fr}}.stat{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);padding:16px 18px}.stat .label{color:var(--muted);font-size:13px}.stat .value{font-variant-numeric:tabular-nums;margin-top:4px;font-size:26px;font-weight:700}.stat .sub{color:var(--muted);margin-top:2px;font-size:12px}.table-wrap{overflow-x:auto}table{border-collapse:collapse;width:100%;font-size:14px}th{text-align:start;border-bottom:1px solid var(--border);color:var(--muted);white-space:nowrap;background:#fafbfc;padding:11px 14px;font-size:13px;font-weight:600}td{vertical-align:middle;border-bottom:1px solid #f0f2f5;padding:11px 14px}tbody tr:hover{background:#fafbfd}tbody tr.row-link{cursor:pointer}td.num,th.num{font-variant-numeric:tabular-nums;text-align:end;direction:ltr}.empty{text-align:center;color:var(--muted);padding:40px}button{cursor:pointer;font-family:inherit;font-size:14px}.btn{border:1px solid var(--border);background:var(--surface);color:var(--text);border-radius:8px;padding:8px 14px;font-weight:600;transition:background .12s,border-color .12s}.btn:hover:not(:disabled){background:#f3f4f6}.btn:disabled{opacity:.5;cursor:not-allowed}.btn.primary{background:var(--primary);border-color:var(--primary);color:#fff}.btn.primary:hover:not(:disabled){background:var(--primary-dark)}.btn.success{background:var(--success);border-color:var(--success);color:#fff}.btn.danger{background:var(--surface);color:var(--danger);border-color:#e7bcbc}.btn.sm{padding:5px 10px;font-size:13px}.btn-row{flex-wrap:wrap;gap:8px;display:flex}.badge{white-space:nowrap;border-radius:999px;padding:3px 10px;font-size:12px;font-weight:600;display:inline-block}.badge.gray{color:#4b5563;background:#eef0f3}.badge.blue{background:var(--info-bg);color:var(--primary-dark)}.badge.green{background:var(--success-bg);color:var(--success)}.badge.orange{background:var(--warning-bg);color:var(--warning)}.badge.red{background:var(--danger-bg);color:var(--danger)}.field{flex-direction:column;gap:5px;margin-bottom:14px;display:flex}.field label{color:#374151;font-size:13px;font-weight:600}input,select,textarea{border:1px solid var(--border);background:var(--surface);color:var(--text);border-radius:8px;width:100%;padding:9px 11px;font-family:inherit;font-size:14px}input:focus,select:focus,textarea:focus{border-color:var(--primary);outline:none;box-shadow:0 0 0 3px #1f5eff1f}input[type=number],input[type=date]{text-align:start;direction:ltr}.form-row{grid-template-columns:1fr 1fr;gap:14px;display:grid}.modal-backdrop{z-index:50;background:#0f142073;justify-content:center;align-items:flex-start;padding:40px 16px;display:flex;position:fixed;inset:0;overflow-y:auto}.modal{background:var(--surface);border-radius:12px;width:100%;max-width:620px;box-shadow:0 20px 50px #10182840}.modal.wide{max-width:880px}.modal-head{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;padding:16px 20px;font-weight:700;display:flex}.modal-body{padding:20px}.modal-foot{border-top:1px solid var(--border);gap:10px;padding:14px 20px;display:flex}.icon-btn{color:var(--muted);background:0 0;border:none;padding:4px 8px;font-size:20px;line-height:1}.alert{border-radius:8px;margin-bottom:14px;padding:11px 14px;font-size:14px}.alert.error{background:var(--danger-bg);color:var(--danger)}.alert.success{background:var(--success-bg);color:var(--success)}.alert.info{background:var(--info-bg);color:var(--primary-dark)}.login-page{background:linear-gradient(135deg,#10141f 0%,#1c2740 100%);justify-content:center;align-items:center;min-height:100vh;padding:20px;display:flex}.login-shell{background:var(--surface);border-radius:18px;width:100%;max-width:860px;display:flex;overflow:hidden;box-shadow:0 28px 70px #00000061}.login-hero{color:#eaf1ff;background:radial-gradient(120% 120% at 100% 0,#12b3a659 0%,#0000 55%),linear-gradient(150deg,#1b52d6 0%,#12b3a6 130%);flex-direction:column;flex:1.05;padding:44px 38px;display:flex;position:relative}.login-hero-brand{align-items:center;gap:14px;display:flex}.login-hero-brand h1{color:#fff;font-size:24px;line-height:1.15}.login-hero-sub{color:#eaf1ffbf;margin-top:2px;font-size:13px}.login-tagline{color:#fff;margin:26px 0 22px;font-size:18px;font-weight:600;line-height:1.5}.login-features{flex-direction:column;gap:14px;margin:0;padding:0;list-style:none;display:flex}.login-features li{color:#eaf1ffeb;align-items:center;gap:12px;font-size:14px;display:flex}.login-features .lf-icon{color:#fff;background:#ffffff24;border:1px solid #ffffff2e;border-radius:10px;flex:none;place-items:center;width:38px;height:38px;display:grid}.login-hero .dev-credit{margin-top:auto;padding-top:24px}.login-hero .dev-credit .dc-label{color:#eaf1ffb3}.login-hero .dev-credit .dc-brand{color:#fff}.login-card{background:var(--surface);flex-direction:column;flex:1;min-width:0;padding:40px 36px;display:flex}.login-top{justify-content:space-between;align-items:center;gap:12px;margin-bottom:6px;display:flex}.login-brand--sm{display:none}.login-card h1{font-size:22px}.login-card .sub{color:var(--muted);margin:4px 0 24px;font-size:14px}.login-card .btn{width:100%;margin-top:6px;padding:11px}@media (width<=720px){.login-shell{flex-direction:column;max-width:420px}.login-hero{display:none}.login-brand--sm{display:flex}}.spinner{color:var(--muted);flex-direction:column;justify-content:center;align-items:center;gap:14px;padding:40px;display:flex}.spinner-ring{border:3px solid var(--border);border-top-color:var(--primary);border-radius:50%;width:34px;height:34px;animation:.7s linear infinite spin}.toolbar{flex-wrap:wrap;align-items:center;gap:10px;margin-bottom:14px;display:flex}.toolbar input,.toolbar select{width:auto;min-width:180px}.muted{color:var(--muted)}.small{font-size:13px}.nowrap{white-space:nowrap}.mt{margin-top:16px}.linklike{font:inherit;color:inherit;cursor:pointer;-webkit-text-decoration:underline dotted;text-decoration:underline dotted;-webkit-text-decoration-color:var(--muted);text-decoration-color:var(--muted);text-underline-offset:2px;background:0 0;border:none;padding:0}.linklike:hover{color:var(--text);text-decoration-style:solid;text-decoration-color:currentColor}@keyframes spin{to{transform:rotate(360deg)}}@keyframes pageIn{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes modalIn{0%{opacity:0;transform:translateY(-18px)scale(.97)}to{opacity:1;transform:translateY(0)scale(1)}}@keyframes splashPop{0%{opacity:0;transform:scale(.7)}60%{opacity:1;transform:scale(1.05)}to{opacity:1;transform:scale(1)}}@keyframes riseUp{0%{opacity:0;transform:translateY(14px)}to{opacity:1;transform:translateY(0)}}.page-anim{animation:.35s both pageIn}.card,.stat{transition:box-shadow .18s,transform .18s,border-color .18s}.stat:hover{transform:translateY(-2px);box-shadow:0 6px 16px #1018281a}.btn:active:not(:disabled){transform:scale(.96)}.icon-btn{transition:color .12s,transform .12s}.icon-btn:hover{color:var(--text)}.icon-btn:active{transform:scale(.9)}.nav-link{transition:background .14s,color .14s,padding-inline-start .14s}.nav-link:hover{padding-inline-start:16px}.modal-backdrop{animation:.2s both fadeIn}.modal{animation:.26s cubic-bezier(.16,1,.3,1) both modalIn}.alert{animation:.28s both riseUp}.splash{z-index:200;color:#fff;background:linear-gradient(135deg,#10141f 0%,#1c2740 100%);flex-direction:column;justify-content:center;align-items:center;gap:8px;display:flex;position:fixed;inset:0}.splash.out{animation:.45s both fadeOut}@keyframes fadeOut{to{opacity:0;visibility:hidden}}.splash-logo{justify-content:center;align-items:center;width:96px;height:96px;margin-bottom:18px;animation:.6s cubic-bezier(.16,1,.3,1) both splashPop;display:flex;position:relative}.splash-ring{border:3px solid #ffffff26;border-top-color:var(--primary);border-radius:50%;animation:.9s linear infinite spin;position:absolute;inset:0}.splash-mark{letter-spacing:.06em;color:#fff;font-size:26px;font-weight:800}.splash-title{font-size:22px;font-weight:700;animation:.5s .15s both riseUp}.splash-sub{color:#8b93a5;font-size:13px;animation:.5s .3s both riseUp}@media (prefers-reduced-motion:reduce){*,.page-anim,.modal,.modal-backdrop,.alert,.splash-logo,.splash-title,.splash-sub{transition-duration:.001ms!important;animation-duration:.001ms!important;animation-iteration-count:1!important}.spinner-ring,.splash-ring{animation:.7s linear infinite spin!important}}.invoice-print{display:none}.inv-sheet{color:#000;background:#fff;font-size:13px;line-height:1.5}.inv-head{border-bottom:2px solid #000;justify-content:space-between;align-items:flex-start;gap:16px;margin-bottom:16px;padding-bottom:12px;display:flex}.inv-company h1{margin:0 0 4px;font-size:20px}.inv-meta{text-align:end}.inv-meta h2{margin:0 0 4px;font-size:16px}.inv-number{font-size:15px;font-weight:700}.inv-muted{color:#444;font-size:12px}.inv-party{margin-bottom:16px}.inv-party-name{font-size:14px;font-weight:700}.inv-table{border-collapse:collapse;width:100%;margin-bottom:16px}.inv-table th,.inv-table td{text-align:start;border:1px solid #999;padding:6px 8px}.inv-table thead th{background:#f0f0f0}.inv-table .num{text-align:end;white-space:nowrap}.inv-table tfoot th{background:#f0f0f0;font-size:14px}.inv-notes{margin-bottom:24px;font-size:12px}.inv-foot{justify-content:space-between;gap:24px;margin-top:40px;display:flex}.inv-sign{text-align:center;border-top:1px solid #000;flex:1;padding-top:6px;font-size:12px}@media print{@page{margin:16mm}body *{visibility:hidden}.invoice-print,.invoice-print *{visibility:visible}.invoice-print{background:#fff;display:block;position:absolute;inset:0}.modal-backdrop{display:none!important}}.perm-group{padding:14px 16px}.perm-group-head{cursor:pointer;border-bottom:1px solid #f0f2f5;align-items:center;gap:8px;margin-bottom:8px;padding-bottom:8px;display:flex}.perm-group-head input{width:auto}.perm-group-head .muted{margin-inline-start:auto}.perm-list{flex-direction:column;gap:8px;display:flex}.perm-item{cursor:pointer;align-items:center;gap:8px;font-size:14px;display:flex}.perm-item input{width:auto}.mb{margin-bottom:10px}.acc-layout{flex-direction:row-reverse;align-items:flex-start;gap:18px;display:flex}.acc-main{flex:auto;min-width:0}.acc-nav{border:1px solid var(--border);border-radius:var(--radius);background:#fbfcfe;flex:0 0 320px;position:sticky;top:12px;overflow:hidden}.acc-search{border-bottom:1px solid var(--border);padding:10px}.acc-search input{width:100%}.acc-tree2{max-height:68vh;padding:8px 6px;overflow:auto}.acc-tnode{cursor:pointer;white-space:nowrap;border-radius:7px;align-items:center;gap:7px;padding:5px 6px;display:flex}.acc-tnode:hover{background:#0000000a}.acc-tnode.sel{background:var(--info-bg)}.acc-tnode.off{opacity:.5}.acc-tcaret{cursor:pointer;width:16px;color:var(--muted);text-align:center;background:0 0;border:none;flex:0 0 16px;padding:0;font-size:11px}.acc-tic{display:inline-flex}.acc-tic.grp{color:#6474a6}.acc-tic.leaf{color:#9aa3b2}.acc-tname{text-overflow:ellipsis;font-size:13.5px;overflow:hidden}.acc-tchildren{border-inline-start:1px dotted #c6ccd6;margin-inline-start:15px}.acc-crumbs{flex-wrap:wrap;align-items:center;gap:6px;margin-bottom:12px;font-size:13px;display:flex}.acc-crumbs .sep{color:var(--muted);margin:0 2px}.acc-card{border:1px solid var(--border);cursor:pointer;background:#fff;border-radius:12px;align-items:center;gap:14px;margin-bottom:10px;padding:14px 18px;transition:border-color .12s,box-shadow .12s;display:flex}.acc-card:hover{border-color:#c3ccdd;box-shadow:0 2px 10px #141e3c0f}.acc-card.off{opacity:.55}.acc-cic{flex:none;display:inline-flex}.acc-cic.grp{color:#6474a6;transform:scale(1.35)}.acc-cic.leaf{color:#9aa3b2;transform:scale(1.2)}.acc-card-id{margin-inline-end:auto}.acc-card-id .aname{align-items:center;gap:6px;font-size:15px;font-weight:700;display:flex}.acc-card-id .acode{color:var(--muted);font-variant-numeric:tabular-nums;margin-top:2px;font-size:12px}.acc-card-num{text-align:start;min-width:120px}.acc-card-num .bal{color:var(--primary-dark,#26324d);font-variant-numeric:tabular-nums;font-size:20px;font-weight:700}.acc-card-num .nature{color:var(--muted);margin-top:2px;font-size:12px}.badge.sm{padding:1px 6px;font-size:10px}.acc-dots-wrap{flex:none;position:relative}.acc-dots{cursor:pointer;color:var(--muted);background:0 0;border:none;border-radius:6px;padding:4px 8px;font-size:20px;line-height:1}.acc-dots:hover{color:var(--text);background:#0000000f}.acc-menu{inset-inline-end:0;z-index:20;border:1px solid var(--border);background:#fff;border-radius:8px;min-width:130px;padding:4px;position:absolute;top:100%;box-shadow:0 6px 20px #141e3c1f}.acc-menu button{text-align:start;cursor:pointer;width:100%;color:var(--text);background:0 0;border:none;border-radius:6px;padding:7px 10px;font-size:13px;display:block}.acc-menu button:hover{background:#0000000d}.acc-menu button.danger{color:var(--danger,#c0392b)}.acc-add{border:1px dashed var(--border);width:100%;color:var(--primary-dark,#26324d);cursor:pointer;background:#fbfcfe;border-radius:12px;justify-content:center;align-items:center;gap:8px;padding:12px;font-size:14px;font-weight:600;display:flex}.acc-add:hover{background:var(--info-bg);border-color:#9fb0d6}.acc-add .plus{font-size:17px}@media (width<=900px){.acc-layout{flex-direction:column}.acc-nav{flex-basis:auto;width:100%;position:static}}.check-row{cursor:pointer;align-items:center;gap:8px;margin-top:4px;font-size:14px;display:flex}.check-row input{width:auto}.je-lines td{vertical-align:middle;padding:5px 6px}.je-lines select,.je-lines input{width:100%;min-width:90px}.je-lines .num input{text-align:start}.je-totals td{border-top:2px solid var(--border);padding-top:8px;font-weight:700}.error-page{text-align:center;flex-direction:column;justify-content:center;align-items:center;gap:12px;min-height:300px;padding:48px 20px;display:flex}.error-page .error-icon{font-size:40px}.error-page h2{font-size:18px}.error-page p{max-width:480px}
