:root{--primary:#0f5b4e;--primary-hover:#0a4238;--primary-tint:#e6efea;--primary-soft:#cfe3da;--bg:#f4f3ef;--surface:#fff;--surface-2:#faf9f6;--divider:#eeece6;--border:#e4e1d9;--border-strong:#d6d3ca;--text:#1b1e20;--text-2:#474c51;--muted:#5c6166;--in:#0b6b40;--in-bg:#e3f1e8;--out:#a23a16;--out-bg:#f8e7e0;--warn:#6e4600;--warn-bg:#fbefd5;--info:#1f4c8a;--info-bg:#e4ecf7;--bar:#c8704b;--radius:10px;--radius-card:14px}*{box-sizing:border-box}html,body,#root{min-height:100%}body{background:var(--bg);color:var(--text);margin:0;font-family:IBM Plex Sans Arabic,system-ui,sans-serif;font-size:15px;line-height:1.5}a{color:var(--primary);text-decoration:none}a:hover{color:var(--primary-hover)}h1,h2,h3{margin:0}button,input,select,textarea{font-family:inherit}.num{font-variant-numeric:tabular-nums;direction:ltr;unicode-bidi:isolate}.muted{color:var(--muted)}.hint{color:var(--muted);font-size:13px}.pos{color:var(--in)}.neg{color:var(--out)}.sr-only{clip:rect(0 0 0 0);width:1px;height:1px;position:absolute;overflow:hidden}.app{min-height:100vh;display:flex}.sidebar{background:var(--surface);border-left:1px solid var(--border);flex-direction:column;flex-shrink:0;gap:28px;width:264px;height:100vh;padding:24px 16px;display:flex;position:sticky;top:0;overflow-y:auto}.brand{align-items:center;gap:12px;padding:0 8px;display:flex}.brand-mark{background:var(--primary);color:#fff;border-radius:10px;flex-shrink:0;justify-content:center;align-items:center;width:40px;height:40px;font-size:18px;font-weight:700;display:flex}.brand b{font-size:16px;display:block}.nav{flex-direction:column;gap:4px;display:flex}.nav-sep{color:var(--muted);padding:16px 14px 6px;font-size:12px;font-weight:600}.nav a{height:44px;color:var(--text-2);border-radius:10px;align-items:center;gap:12px;padding:0 14px;font-size:15px;font-weight:500;display:flex}.nav a:hover{background:var(--bg);color:var(--text)}.nav a.active{background:var(--primary-tint);color:var(--primary);font-weight:600}.nav svg{flex-shrink:0;width:20px;height:20px}.me{border:1px solid var(--border);border-radius:12px;align-items:center;gap:12px;margin-top:auto;padding:12px;display:flex}.me-info{flex-grow:1;min-width:0}.me-info b{text-overflow:ellipsis;white-space:nowrap;font-size:14px;display:block;overflow:hidden}.avatar{background:var(--divider);width:38px;height:38px;color:var(--text-2);border-radius:999px;flex-shrink:0;justify-content:center;align-items:center;font-size:14px;font-weight:700;display:flex}.avatar.admin{background:var(--primary-tint);color:var(--primary)}.main{flex-direction:column;flex-grow:1;gap:20px;min-width:0;padding:28px 40px 48px;display:flex}.topbar,.mobile-actions{display:none}.page-head{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:16px;display:flex}.page-head h1{font-size:26px;font-weight:700}.page-head .sub{color:var(--muted);margin-top:4px;font-size:14px}.actions{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.crumbs{color:var(--muted);align-items:center;gap:8px;font-size:14px;display:flex}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-card)}.card-head{justify-content:space-between;align-items:center;gap:12px;padding:16px 20px;display:flex}.card-head h2{font-size:17px;font-weight:700}.pad{padding:20px 22px}.btn{border-radius:var(--radius);border:1px solid var(--border-strong);height:44px;color:var(--text);cursor:pointer;white-space:nowrap;background:#fff;justify-content:center;align-items:center;gap:8px;padding:0 18px;font-size:15px;font-weight:600;display:inline-flex}.btn:hover{border-color:var(--text-2);color:var(--text)}.btn svg{width:18px;height:18px}.btn.primary{background:var(--primary);border-color:var(--primary);color:#fff}.btn.primary:hover{background:var(--primary-hover)}.btn.ghost{color:var(--text-2);background:0 0;border-color:#0000}.btn.danger{color:var(--out)}.btn.sm{height:36px;padding:0 12px;font-size:13px}.btn:disabled{background:var(--divider);border-color:var(--divider);color:#8a8e92;cursor:not-allowed}.icon-btn{border:1px solid var(--border-strong);width:44px;height:44px;color:var(--text);cursor:pointer;background:#fff;border-radius:10px;justify-content:center;align-items:center;padding:0;display:inline-flex}.icon-btn svg{width:20px;height:20px}.field{flex-direction:column;gap:6px;min-width:0;display:flex}.field>label,.field>.label{font-size:14px;font-weight:600}.req{color:var(--out);margin-inline-start:2px}.input,.select,.textarea{border:1px solid var(--border-strong);border-radius:var(--radius);height:44px;color:var(--text);background:#fff;width:100%;padding:0 14px;font-size:15px}.textarea{resize:vertical;height:auto;min-height:80px;padding:10px 14px}.input:focus,.select:focus,.textarea:focus{outline:2px solid var(--primary);outline-offset:1px;border-color:var(--primary)}.input.big{height:54px;font-size:22px;font-weight:700}.input[readonly]{background:var(--bg);color:var(--text-2)}.input-wrap{align-items:center;display:flex;position:relative}.input-wrap .suffix{color:var(--muted);pointer-events:none;font-size:14px;position:absolute;left:14px}.input-wrap .prefix-icon{color:var(--muted);pointer-events:none;display:flex;position:absolute;right:12px}.input-wrap .prefix-icon svg{width:18px;height:18px}.input-wrap .input.with-icon{padding-right:40px}.form-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:18px 20px;display:grid}.form-grid .span2{grid-column:span 2}.error-box{background:var(--out-bg);color:var(--out);border-radius:10px;padding:12px 14px;font-size:14px;font-weight:500}.ok-box{background:var(--in-bg);color:var(--in);border-radius:10px;padding:12px 14px;font-size:14px;font-weight:500}.info-box{background:var(--info-bg);color:var(--info);border-radius:10px;align-items:center;gap:10px;padding:12px 16px;font-size:14px;display:flex}.info-box svg{flex-shrink:0;width:20px;height:20px}.chips{flex-wrap:wrap;gap:8px;display:flex}.chip{border:1px solid var(--border-strong);height:40px;color:var(--text);cursor:pointer;background:#fff;border-radius:999px;padding:0 16px;font-size:14px}.chip.on{background:var(--primary-tint);border-color:var(--primary);color:var(--primary);font-weight:600}.seg{background:#f0eee8;border-radius:10px;gap:4px;padding:4px;display:inline-flex}.seg button{height:36px;color:var(--text-2);cursor:pointer;white-space:nowrap;background:0 0;border:0;border-radius:8px;flex:1;align-items:center;gap:6px;padding:0 14px;font-size:14px;display:inline-flex}.seg button.on{color:var(--primary);background:#fff;font-weight:600;box-shadow:0 1px 2px #00000014}.seg.white{border:1px solid var(--border);background:#fff}.seg.white button.on{background:var(--primary-tint);box-shadow:none}.switch{appearance:none;background:var(--border-strong);cursor:pointer;border-radius:99px;flex-shrink:0;width:44px;height:26px;margin:0;transition:background .15s;position:relative}.switch:after{content:"";background:#fff;border-radius:99px;width:20px;height:20px;transition:right .15s;position:absolute;top:3px;right:3px}.switch:checked{background:var(--primary)}.switch:checked:after{right:21px}.tag{white-space:nowrap;border-radius:999px;align-items:center;height:26px;padding:0 10px;font-size:12px;font-weight:600;display:inline-flex}.t-in{background:var(--in-bg);color:var(--in)}.t-out{background:var(--out-bg);color:var(--out)}.t-warn{background:var(--warn-bg);color:var(--warn)}.t-info{background:var(--info-bg);color:var(--info)}.t-mute{background:var(--divider);color:var(--text-2)}.t-admin{background:var(--primary);color:#fff}.table-wrap{overflow-x:auto}table.data{border-collapse:collapse;width:100%}.data th{color:var(--muted);text-align:right;border-bottom:1px solid var(--border);background:var(--surface-2);white-space:nowrap;padding:11px 16px;font-size:13px;font-weight:600}.data td{border-bottom:1px solid var(--divider);text-align:right;vertical-align:middle;padding:12px 16px;font-size:14px}.data tr:last-child td{border-bottom:0}.data tr.click{cursor:pointer}.data tr.click:hover td{background:#fbfaf7}.data tr.cancelled td{color:var(--muted)}.data tr.cancelled .strike{text-decoration:line-through}.data tr.warn td{background:#fffbf2}.data tfoot td{background:var(--surface-2);border-top:1px solid var(--border);font-weight:700}.cell-2{flex-direction:column;display:flex}.cell-2 b{font-weight:600}.kpis{grid-template-columns:1.45fr 1fr 1fr .8fr;gap:16px;display:grid}.kpi{flex-direction:column;gap:10px;padding:22px;display:flex}.kpi .label{color:var(--muted);font-size:13px;font-weight:500}.kpi .value{align-items:baseline;gap:6px;display:flex}.kpi .value .num{font-size:32px;font-weight:700;line-height:1.1}.kpi .cur{color:var(--muted);font-size:15px}.kpi-hero{background:var(--primary);color:#fff;border-radius:var(--radius-card);flex-direction:column;gap:14px;padding:24px;display:flex}.kpi-hero .label{color:var(--primary-soft);font-size:14px}.kpi-hero .value .num{font-size:44px;font-weight:700;line-height:1}.kpi-hero .cur{color:var(--primary-soft);font-size:18px}.kpi-hero .eq{color:#e4efea;border-top:1px solid #fff3;flex-wrap:wrap;gap:10px;padding-top:12px;font-size:14px;display:flex}.kpi-split{flex-direction:column;display:flex}.kpi-split>div{flex-direction:column;flex-grow:1;justify-content:center;gap:2px;padding:14px 20px;display:flex}.kpi-split>div+div{border-top:1px solid var(--divider)}.kpi-split .num{font-size:26px;font-weight:700}.ic-badge{border-radius:10px;flex-shrink:0;justify-content:center;align-items:center;width:36px;height:36px;display:flex}.ic-badge svg{width:20px;height:20px}.alert-bar{border-radius:var(--radius-card);background:#fffbf2;border:1px solid #eeddb5;flex-wrap:wrap;align-items:center;gap:14px;padding:12px 20px;display:flex}.alert-bar svg{width:20px;height:20px;color:var(--warn)}.alert-bar a.tag{height:28px;font-size:13px}.progress{background:var(--divider);border-radius:99px;min-width:80px;height:6px;overflow:hidden}.progress>div{background:var(--bar);border-radius:99px;height:100%}.progress.high>div{background:var(--out)}.equation{align-items:stretch;gap:18px;display:flex}.eq-box{border-radius:12px;flex-direction:column;flex:1;gap:8px;padding:18px 20px;display:flex}.eq-box .num{font-size:34px;font-weight:700;line-height:1.1}.eq-op{color:var(--muted);align-items:center;font-size:34px;font-weight:300;display:flex}.list{margin:0;padding:0;list-style:none}.list li{border-top:1px solid var(--divider);align-items:center;gap:14px;padding:13px 20px;display:flex}.list li .grow{flex-direction:column;flex-grow:1;gap:3px;min-width:0;display:flex}.list li .grow b{text-overflow:ellipsis;white-space:nowrap;font-weight:600;overflow:hidden}.list li .end{flex-direction:column;align-items:flex-end;gap:3px;display:flex}.grid-2{grid-template-columns:1.3fr 1fr;gap:16px;display:grid}.grid-3{grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;display:grid}.filters{grid-template-columns:repeat(6,minmax(0,1fr));align-items:end;gap:12px;padding:18px 20px;display:grid}.filters .wide{grid-column:span 2}.empty{text-align:center;color:var(--muted);flex-direction:column;align-items:center;gap:10px;padding:40px 20px;display:flex}.empty svg{width:40px;height:40px;color:var(--border-strong)}.spinner{border:3px solid var(--divider);border-top-color:var(--primary);border-radius:50%;width:28px;height:28px;margin:40px auto;animation:.8s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.drop{background:var(--surface-2);text-align:center;border:2px dashed #c9c5bb;border-radius:12px;flex-direction:column;align-items:center;gap:10px;padding:22px 18px;display:flex}.drop.over{border-color:var(--primary);background:#f1f7f4}.files{flex-direction:column;gap:8px;margin:0;padding:0;list-style:none;display:flex}.files li{border:1px solid var(--border);border-radius:10px;align-items:center;gap:12px;padding:8px 10px;display:flex}.thumb{background:var(--divider);object-fit:cover;width:44px;height:56px;color:var(--text-2);border-radius:6px;flex-shrink:0;justify-content:center;align-items:center;font-size:11px;font-weight:700;display:flex}.viewer{border-radius:var(--radius-card);background:#e7e5df;flex-direction:column;min-height:520px;display:flex;overflow:hidden}.viewer-bar{border-bottom:1px solid var(--border);background:#fff;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:10px;padding:10px 14px;display:flex}.viewer-body{flex-grow:1;justify-content:center;align-items:center;padding:24px;display:flex;overflow:auto}.viewer-body img{background:#fff;max-width:100%;max-height:75vh;box-shadow:0 6px 24px #1b1e2024}.viewer-body iframe{background:#fff;border:0;width:100%;height:75vh}dl.kv{margin:0}dl.kv>div{border-bottom:1px solid var(--divider);justify-content:space-between;gap:16px;padding:11px 0;font-size:14px;display:flex}dl.kv dt{color:var(--muted)}dl.kv dd{text-align:left;margin:0;font-weight:600}.timeline{flex-direction:column;display:flex}.tl-day{background:var(--surface-2);color:var(--text-2);border-top:1px solid var(--border);padding:10px 22px;font-size:13px;font-weight:700}.tl-ev{border-top:1px solid var(--divider);align-items:flex-start;gap:14px;padding:14px 22px;display:flex}.tl-ev .grow{flex-direction:column;flex-grow:1;gap:6px;min-width:0;display:flex}.diff{background:var(--surface-2);border:1px solid var(--divider);border-radius:8px;flex-wrap:wrap;align-self:flex-start;align-items:center;gap:8px;padding:6px 12px;font-size:13px;display:inline-flex}.diff .old{color:var(--out);text-decoration:line-through}.diff .new{color:var(--in);font-weight:700}.modal-back{z-index:50;background:#1b1e2073;justify-content:center;align-items:center;padding:16px;display:flex;position:fixed;inset:0}.modal{background:#fff;border-radius:16px;flex-direction:column;width:100%;max-width:560px;max-height:90vh;display:flex;overflow:auto}.modal-head{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;padding:18px 22px;display:flex}.modal-head h2{font-size:18px}.modal-body{flex-direction:column;gap:16px;padding:20px 22px;display:flex}.modal-foot{border-top:1px solid var(--border);background:var(--surface-2);gap:10px;padding:14px 22px;display:flex}.perm{border-bottom:1px solid var(--divider);cursor:pointer;justify-content:space-between;align-items:center;gap:12px;padding:12px 0;font-size:14px;display:flex}.login{background:#fff;min-height:100vh;display:flex}.login-form{flex-direction:column;justify-content:center;gap:30px;width:560px;max-width:100%;padding:40px 80px;display:flex}.login-art{background:var(--primary);color:#fff;border-radius:24px;flex-direction:column;flex-grow:1;justify-content:center;gap:30px;margin:20px 0 20px 20px;padding:0 80px;display:flex}.login-art .big{font-size:36px;font-weight:700;line-height:1.3}.print-only{display:none}@media print{@page{size:A4;margin:14mm}body{background:#fff}.sidebar,.topbar,.mobile-actions,.no-print{display:none!important}.main{padding:0}.print-only{display:block}.card{border:0}.data th{color:#000;background:#fff;border-bottom:2px solid #000}.data td{border-bottom:1px solid #ccc}.tag{border:1px solid #ccc}}.cols-form{grid-template-columns:1.45fr 1fr;align-items:start}.cols-home{grid-template-columns:1fr 1.25fr}.cols-act{grid-template-columns:.9fr 1.7fr}.cols-detail{grid-template-columns:420px 1fr;align-items:start}@media (width<=1200px){.kpis{grid-template-columns:1fr 1fr}.grid-2,.cols-form,.cols-home,.cols-act,.cols-detail{grid-template-columns:minmax(0,1fr)}.filters{grid-template-columns:repeat(3,minmax(0,1fr))}}@media (width<=900px){.sidebar{z-index:40;transition:transform .2s;position:fixed;top:0;right:0;transform:translate(100%);box-shadow:-8px 0 30px #0000001f}.sidebar.open{transform:none}.scrim{z-index:39;background:#0000004d;position:fixed;inset:0}.topbar{z-index:30;border-bottom:1px solid var(--border);background:#fff;align-items:center;gap:10px;padding:10px 14px;display:flex;position:sticky;top:0}.topbar b{flex-grow:1;font-size:16px}.app{flex-direction:column}.main{gap:16px;padding:18px 16px 110px}.page-head h1{font-size:22px}.kpis,.grid-3{grid-template-columns:1fr}.filters{grid-template-columns:1fr 1fr}.filters .wide{grid-column:span 2}.form-grid{grid-template-columns:1fr}.form-grid .span2{grid-column:auto}.equation{flex-direction:column;gap:8px}.eq-op{justify-content:center;font-size:22px}.picker-first>:last-child{order:-1}.mobile-actions{z-index:30;border-top:1px solid var(--border);background:#fff;gap:10px;padding:12px 16px 16px;display:flex;position:fixed;bottom:0;left:0;right:0}.mobile-actions .btn{flex:1;height:50px}.login-art{display:none}.login-form{width:100%;padding:32px 24px}.hide-mobile{display:none!important}.data th,.data td{padding:10px 12px}}.list .strike{text-decoration:line-through}@media print{.data th,.data td{padding:6px 8px;font-size:11px}.card{padding:0!important}}
