:root{--font: Tahoma, "Segoe UI", Arial, "Noto Sans Arabic", sans-serif;--fs: 16px;--fs-sm: 14px;--fs-lg: 19px;--fs-xl: 24px;--bg: #eef0f3;--surface: #ffffff;--surface-2: #f6f7f9;--border: #b8bec7;--border-light: #d9dde3;--text: #15181d;--text-muted: #525a66;--primary: #1f4e8c;--primary-dark: #173c6c;--primary-light: #e3ecf8;--accent: #d97706;--danger: #b4232c;--danger-light: #fbe5e7;--success: #1b7f3b;--success-light: #e1f3e6;--warning: #9a6700;--warning-light: #fff4d6;--selected: #cfe0f7;--header-bg: #e4eaf3;--focus: #2b6cd4;--radius: 4px;--shadow: 0 2px 8px rgba(0, 0, 0, .18);--control-h: 40px;--row-h: 38px}*{box-sizing:border-box}html,body{height:100%;margin:0}body{font-family:var(--font);font-size:var(--fs);color:var(--text);background:var(--bg);line-height:1.4;-webkit-font-smoothing:antialiased}h1,h2,h3,h4{margin:0 0 8px;font-weight:700;line-height:1.25}h1{font-size:var(--fs-xl)}h2{font-size:20px}h3{font-size:18px}h4{font-size:16px}p{margin:0 0 8px}a{color:var(--primary)}small,.muted{color:var(--text-muted);font-size:var(--fs-sm)}.num,.text-end{text-align:end}.num{font-variant-numeric:tabular-nums;direction:ltr;unicode-bidi:isolate}.text-center{text-align:center}.text-start{text-align:start}.nowrap{white-space:nowrap}.bold{font-weight:700}.danger-text{color:var(--danger)}.success-text{color:var(--success)}.hidden{display:none!important}.flex{display:flex;align-items:center;gap:8px}.flex-wrap{flex-wrap:wrap}.grow{flex:1 1 auto}.gap-2{gap:16px}.mt-2{margin-top:16px}.mb-2{margin-bottom:16px}.mt-1{margin-top:8px}.mb-1{margin-bottom:8px}.w-100{width:100%}.btn{font:inherit;font-weight:600;height:var(--control-h);padding:0 16px;border-radius:var(--radius);border:1px solid var(--border);background:linear-gradient(#fff,#eef0f3);color:var(--text);cursor:pointer;display:inline-flex;align-items:center;justify-content:center;gap:8px;white-space:nowrap;-webkit-user-select:none;user-select:none}.btn:hover:not(:disabled){background:linear-gradient(#fff,#e2e6ec);border-color:#98a1ad}.btn:active:not(:disabled){background:#dfe3e9}.btn:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,.focusable:focus-visible{outline:3px solid var(--focus);outline-offset:1px}.btn:disabled{opacity:.55;cursor:not-allowed}.btn-primary{background:linear-gradient(#2f64ad,var(--primary));border-color:var(--primary-dark);color:#fff}.btn-primary:hover:not(:disabled){background:linear-gradient(#2a5a9c,var(--primary-dark));border-color:var(--primary-dark)}.btn-success{background:linear-gradient(#249a4a,var(--success));border-color:#156630;color:#fff}.btn-success:hover:not(:disabled){background:linear-gradient(#1f8a42,#156630);border-color:#156630}.btn-danger{background:linear-gradient(#d13a44,var(--danger));border-color:#8f1a22;color:#fff}.btn-danger:hover:not(:disabled){background:linear-gradient(#c02d37,#8f1a22);border-color:#8f1a22}.btn-sm{height:32px;padding:0 10px;font-size:var(--fs-sm)}.btn-lg{height:48px;padding:0 22px;font-size:var(--fs-lg)}.btn-link{background:none;border-color:transparent;color:var(--primary);text-decoration:underline}.btn-link:hover:not(:disabled){background:var(--primary-light);border-color:transparent}.btn .icon{width:20px;height:20px}.btn-icon{width:var(--control-h);padding:0}.btn-icon.btn-sm{width:32px}.toolbar{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.toolbar .sep{width:1px;height:28px;background:var(--border);margin:0 4px}kbd{font-family:inherit;font-size:12px;background:#fff;border:1px solid var(--border);border-bottom-width:2px;border-radius:3px;padding:0 5px;color:var(--text-muted)}label{font-weight:600;display:block;margin-bottom:4px}input,select,textarea{font:inherit;color:var(--text);background:#fff;border:1px solid var(--border);border-radius:var(--radius);height:var(--control-h);padding:0 10px;width:100%}input[type=checkbox],input[type=radio]{width:22px;height:22px;accent-color:var(--primary);vertical-align:middle;margin:0 4px 0 0;cursor:pointer}textarea{height:auto;min-height:80px;padding:8px 10px;resize:vertical}input:disabled,select:disabled,textarea:disabled{background:var(--surface-2);color:var(--text-muted)}input.num,td input.num{text-align:end;direction:ltr}input[type=date]{direction:ltr;text-align:end}input.invalid,select.invalid{border-color:var(--danger);background:#fff7f7}.form-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:12px 16px}.form-grid .span-2{grid-column:span 2}.form-grid .span-3{grid-column:span 3}.form-grid .span-all{grid-column:1/-1}.field{display:flex;flex-direction:column;min-width:0}.field .hint{font-size:var(--fs-sm);color:var(--text-muted);margin-top:2px}.check{display:inline-flex;align-items:center;gap:6px;font-weight:600;cursor:pointer;height:var(--control-h)}.radio-group{display:flex;gap:14px;flex-wrap:wrap;align-items:center;height:var(--control-h)}.radio-group label{font-weight:600;display:inline-flex;align-items:center;gap:4px;margin:0;cursor:pointer}.input-group{display:flex}.input-group>*{border-radius:0}.input-group>:first-child{border-start-start-radius:var(--radius);border-end-start-radius:var(--radius)}.input-group>:last-child{border-start-end-radius:var(--radius);border-end-end-radius:var(--radius)}.required:after{content:" *";color:var(--danger)}.panel{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:0 1px 2px #0000000f}.panel-header{background:var(--header-bg);border-bottom:1px solid var(--border);padding:8px 12px;font-weight:700;display:flex;align-items:center;gap:8px}.panel-body{padding:12px}.page{padding:12px 16px 24px;max-width:1600px}.page-header{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;margin-bottom:12px}.page-header h1{display:flex;align-items:center;gap:10px}.page-header h1 .icon{width:28px;height:28px;color:var(--primary)}.filters{display:flex;gap:10px;align-items:flex-end;flex-wrap:wrap;padding:10px 12px;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);margin-bottom:10px}.filters .field{min-width:160px}.filters .field.wide{min-width:260px}.stat-cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:12px}.stat{background:var(--surface);border:1px solid var(--border);border-inline-start:6px solid var(--primary);border-radius:var(--radius);padding:12px 14px}.stat .label{color:var(--text-muted);font-weight:600;font-size:var(--fs-sm)}.stat .value{font-size:26px;font-weight:700;font-variant-numeric:tabular-nums;direction:ltr;text-align:end;margin-top:4px}.stat .sub{color:var(--text-muted);font-size:var(--fs-sm)}.stat.success{border-inline-start-color:var(--success)}.stat.danger{border-inline-start-color:var(--danger)}.stat.warning{border-inline-start-color:var(--accent)}.grid-wrap{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);overflow:auto}table.grid{width:100%;border-collapse:collapse;font-size:var(--fs)}table.grid th,table.grid td{border:1px solid var(--border-light);padding:6px 10px;height:var(--row-h);vertical-align:middle}table.grid th{background:var(--header-bg);font-weight:700;text-align:start;position:sticky;top:0;z-index:1;white-space:nowrap;border-bottom:2px solid var(--border)}table.grid th.num,table.grid td.num{text-align:end}table.grid tbody tr:nth-child(2n){background:#fafbfc}table.grid tbody tr:hover{background:var(--primary-light)}table.grid tbody tr.selected{background:var(--selected)!important}table.grid tbody tr.clickable{cursor:pointer}table.grid tfoot td{font-weight:700;background:var(--surface-2);border-top:2px solid var(--border)}table.grid td input,table.grid td select{height:34px}table.grid .row-actions{white-space:nowrap}table.grid tr.group-row td{background:#eaeef5;font-weight:700}table.grid tr.level-1 td:first-child,table.grid tr.level-1 td.name{padding-inline-start:10px}table.grid tr.level-2 td.name{padding-inline-start:26px}table.grid tr.level-3 td.name{padding-inline-start:42px}table.grid tr.level-4 td.name{padding-inline-start:58px}table.grid tr.muted td{color:var(--text-muted)}.empty{padding:32px;text-align:center;color:var(--text-muted);font-size:var(--fs-lg)}.pager{display:flex;align-items:center;gap:8px;padding:8px 0;flex-wrap:wrap}.badge{display:inline-block;padding:2px 10px;border-radius:12px;font-size:var(--fs-sm);font-weight:700;border:1px solid transparent;white-space:nowrap}.badge-draft{background:var(--warning-light);color:var(--warning);border-color:#e4c56a}.badge-posted{background:var(--success-light);color:var(--success);border-color:#9fd6ae}.badge-cancelled{background:var(--danger-light);color:var(--danger);border-color:#efa7ac}.badge-info{background:var(--primary-light);color:var(--primary);border-color:#a9c3e9}.badge-neutral{background:var(--surface-2);color:var(--text-muted);border-color:var(--border-light)}.overlay{position:fixed;inset:0;background:#141e2d73;display:flex;align-items:center;justify-content:center;z-index:1000;padding:16px}.dialog{background:var(--surface);border:1px solid var(--border);border-radius:6px;box-shadow:0 12px 40px #00000059;width:min(100%,720px);max-height:95vh;display:flex;flex-direction:column}.dialog.wide{width:min(100%,1100px)}.dialog.narrow{width:min(100%,460px)}.dialog-title{background:linear-gradient(#2f64ad,var(--primary));color:#fff;padding:10px 14px;font-weight:700;font-size:var(--fs-lg);display:flex;align-items:center;justify-content:space-between;border-radius:5px 5px 0 0}.dialog-title .btn{height:32px;width:32px;padding:0;background:transparent;border-color:#ffffff80;color:#fff}.dialog-body{padding:16px;overflow:auto}.dialog-footer{padding:10px 16px;border-top:1px solid var(--border);display:flex;gap:8px;justify-content:flex-end;background:var(--surface-2);border-radius:0 0 5px 5px}.toasts{position:fixed;bottom:40px;inset-inline-start:16px;z-index:2000;display:flex;flex-direction:column;gap:8px;max-width:480px}.toast{background:#1d2733;color:#fff;padding:12px 16px;border-radius:6px;box-shadow:var(--shadow);font-size:var(--fs);font-weight:600;border-inline-start:6px solid var(--primary)}.toast.success{border-inline-start-color:#3ccf6a}.toast.error{border-inline-start-color:#ff6b6b;background:#4a1418}.toast.warning{border-inline-start-color:#ffc53d}.alert{padding:10px 14px;border-radius:var(--radius);border:1px solid;margin-bottom:10px;font-weight:600}.alert-error{background:var(--danger-light);border-color:#efa7ac;color:var(--danger)}.alert-info{background:var(--primary-light);border-color:#a9c3e9;color:var(--primary-dark)}.alert-warning{background:var(--warning-light);border-color:#e4c56a;color:var(--warning)}.alert-success{background:var(--success-light);border-color:#9fd6ae;color:var(--success)}.lookup{position:relative}.lookup-menu{position:absolute;top:100%;inset-inline-start:0;min-width:100%;max-height:320px;overflow:auto;background:#fff;border:1px solid var(--border);box-shadow:var(--shadow);z-index:500}.lookup-menu .opt{padding:8px 10px;cursor:pointer;display:flex;justify-content:space-between;gap:12px;border-bottom:1px solid var(--border-light)}.lookup-menu .opt:hover,.lookup-menu .opt.active{background:var(--selected)}.lookup-menu .opt .sub{color:var(--text-muted);font-size:var(--fs-sm)}.spinner{width:22px;height:22px;border:3px solid var(--border-light);border-top-color:var(--primary);border-radius:50%;animation:spin .8s linear infinite;display:inline-block}@keyframes spin{to{transform:rotate(360deg)}}.loading-bar{height:4px;background:linear-gradient(90deg,var(--primary) 0 40%,transparent 40%);background-size:200% 100%;animation:bar 1s linear infinite}@keyframes bar{0%{background-position:100% 0}to{background-position:-100% 0}}.icon{width:20px;height:20px;flex:none}.totals{display:grid;grid-template-columns:max-content max-content;gap:6px 24px;justify-content:end;font-size:var(--fs-lg)}.totals .label{font-weight:600;color:var(--text-muted)}.totals .value{text-align:end;font-variant-numeric:tabular-nums;direction:ltr;font-weight:700}.totals .grand{font-size:24px;color:var(--primary-dark)}.kv{display:grid;grid-template-columns:max-content 1fr;gap:4px 16px}.kv .k{color:var(--text-muted);font-weight:600}.tabs{display:flex;gap:2px;border-bottom:2px solid var(--border);margin-bottom:12px}.tabs .tab{padding:8px 16px;font-weight:700;cursor:pointer;border:1px solid transparent;border-bottom:none;background:transparent;color:var(--text-muted);font-size:var(--fs)}.tabs .tab.active{background:var(--surface);border-color:var(--border);color:var(--primary);margin-bottom:-2px;border-bottom:2px solid var(--surface)}.print-only,.print-header,.print-footer{display:none}@media print{@page{size:A4;margin:12mm 10mm}body{background:#fff;font-size:12pt}.no-print,.app-topbar,.app-sidebar,.app-statusbar,.toasts,.filters,.pager,.toolbar{display:none!important}.print-only{display:block}.app-main{padding:0!important;overflow:visible!important;height:auto!important}.app-shell{display:block!important;height:auto!important}.page{padding:0;max-width:none}.panel,.grid-wrap{border:none;box-shadow:none;overflow:visible}table.grid{font-size:11pt}table.grid th,table.grid td{padding:3px 6px;height:auto;border-color:#888}table.grid th{position:static;background:#e8e8e8!important;-webkit-print-color-adjust:exact;print-color-adjust:exact}table.grid tbody tr:nth-child(2n){background:#f4f4f4!important;-webkit-print-color-adjust:exact;print-color-adjust:exact}thead{display:table-header-group}tr{page-break-inside:avoid}.print-header{display:block;border-bottom:2px solid #000;margin-bottom:8px;padding-bottom:6px}.print-footer{display:block;border-top:1px solid #000;margin-top:10px;padding-top:4px;font-size:10pt;color:#333}a{text-decoration:none;color:inherit}}.form-grid{grid-template-columns:repeat(auto-fill,minmax(min(230px,100%),1fr))}.stat-cards{grid-template-columns:repeat(auto-fill,minmax(min(220px,100%),1fr))}@media(max-width:900px){:root{--fs: 15px;--fs-lg: 17px;--fs-xl: 21px}.hide-mobile{display:none!important}.page{padding:8px 10px 20px}.page-header{flex-direction:column;align-items:stretch;gap:8px}.page-header h1{flex-wrap:wrap}.toolbar{gap:6px}.toolbar>.btn,.toolbar>a.btn{flex:1 1 auto;min-width:0;padding:0 10px}kbd{display:none}.filters{padding:8px;gap:8px}.filters .field,.filters .field.wide{flex:1 1 140px;min-width:0}.filters .btn{flex:1 1 100%}.form-grid .span-2,.form-grid .span-3{grid-column:auto}.form-grid>.field{min-width:0}.overlay{padding:6px;align-items:flex-start}.dialog,.dialog.wide,.dialog.narrow{width:100%;max-height:calc(100vh - 12px);max-height:calc(100dvh - 12px)}.dialog-body{padding:10px}.dialog-footer{flex-wrap:wrap;padding:8px 10px}.dialog-footer .btn{flex:1 1 auto}.totals{grid-template-columns:1fr max-content;justify-content:stretch;font-size:var(--fs)}.totals .grand{font-size:20px}.stat .value{font-size:22px}table.grid th,table.grid td{padding:5px 7px}.grid-wrap{-webkit-overflow-scrolling:touch}.tabs{overflow-x:auto}.tabs .tab{padding:8px 10px;white-space:nowrap}.toasts{inset-inline:8px;bottom:34px;max-width:none}.pager{justify-content:center}}@media(max-width:480px){.btn{padding:0 10px}.page-header h1{font-size:19px}}
