:root{--g:#3d7a0a;--gl:#74b816;--gt:#eef6e3;--gd:#2f6006;--ink:#14213d;--mut:#5d6885;--line:#e3e8f4;--bg:#f4f6fc}
*{box-sizing:border-box}
body{margin:0;font-family:"IBM Plex Sans Arabic",system-ui,sans-serif;background:linear-gradient(180deg,var(--bg),#fff);color:var(--ink);min-height:100vh}
button,input,select{font:inherit}
.layout{display:flex;min-height:100vh}
.side{width:240px;background:#fff;border-left:1px solid var(--line);padding:24px 16px;display:flex;flex-direction:column;gap:4px;flex-shrink:0}
.brand{display:flex;align-items:center;gap:12px;padding:0 8px 6px}
.brand b{font-size:22px;display:block;line-height:1.1}.brand small{color:var(--mut);font-size:12px}
.office{font-size:13px;color:var(--mut);padding:6px 8px 20px}
.nav{display:block;width:100%;text-align:right;background:none;border:0;padding:12px 14px;border-radius:14px;font-size:15px;color:#3b4666;cursor:pointer}
.nav.on{background:var(--gt);color:var(--gd);font-weight:600}
.nav:focus-visible,.btn:focus-visible,input:focus-visible,select:focus-visible{outline:3px solid var(--gl);outline-offset:2px}
.who{margin-top:auto;padding:14px 8px;font-size:13px;color:var(--mut);border-top:1px solid var(--line)}
.who button{background:none;border:0;color:var(--gd);cursor:pointer;padding:0;font-weight:600}
main{flex-grow:1;padding:28px 32px;display:flex;flex-direction:column;gap:20px;min-width:0}
h1{margin:0;font-size:28px}.sub{font-size:14px;color:var(--mut);margin-top:4px}
.head{display:flex;align-items:center;gap:16px}.head>div{flex-grow:1}
.card{background:#fff;border-radius:20px;border:1px solid var(--line);box-shadow:0 6px 20px rgba(20,33,61,.05);padding:22px}
.stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px}
.stat small{font-size:13px;color:var(--mut)}.stat b{display:block;font-size:34px;margin-top:4px}
.btn{display:inline-block;border:0;padding:14px 26px;border-radius:999px;background:var(--g);color:#fff;font-size:16px;font-weight:600;cursor:pointer;text-decoration:none}
.btn.ghost{background:#fff;color:var(--gd);border:1px solid var(--g)}
.btn:disabled{opacity:.5;cursor:default}
table{width:100%;border-collapse:collapse}
th{font-size:13px;color:var(--mut);font-weight:500;text-align:right;padding:10px 12px;border-bottom:1px solid var(--line)}
td{padding:14px 12px;border-bottom:1px solid #eef1f8;font-size:15px}
.pill{display:inline-block;padding:4px 12px;border-radius:999px;font-size:13px;font-weight:600;background:var(--gt);color:var(--gd)}
.pill.late{background:#fbe1dd;color:#9c2416}.pill.warn{background:#fdf0d5;color:#7a4d00}
.grid3{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}
label{display:flex;flex-direction:column;gap:6px;font-size:13px;color:var(--mut)}
input,select{height:48px;border:1px solid #d5dbeb;border-radius:14px;padding:0 16px;font-size:16px;color:var(--ink);background:#fff}
h2{margin:0;font-size:16px}.form{display:flex;flex-direction:column;gap:16px}
.two{display:flex;gap:20px;align-items:flex-start}.two>.form{flex-grow:1}.two>aside{width:320px;flex-shrink:0;display:flex;flex-direction:column;gap:16px}
.big{font-size:42px;font-weight:700;color:var(--gd)}
.row{display:flex;justify-content:space-between;font-size:15px;padding:6px 0}.row>span:first-child{color:var(--mut)}
.err{background:#fbe1dd;color:#9c2416;border-radius:14px;padding:10px 16px;font-size:14px}
.note{background:#eef6e3;color:var(--gd);border-radius:14px;padding:10px 16px;font-size:14px}
#toast{position:fixed;bottom:24px;left:50%;transform:translateX(-50%);background:var(--ink);color:#fff;padding:12px 22px;border-radius:999px;display:none;font-size:15px}
.login{max-width:380px;margin:12vh auto;display:flex;flex-direction:column;gap:16px;padding:0 16px}
dialog{max-height:92vh;overflow:auto;border:0;border-radius:20px;padding:26px;width:min(460px,92vw);box-shadow:0 20px 60px rgba(20,33,61,.25)}
dialog::backdrop{background:rgba(20,33,61,.45)}


.linkbtn{background:none;border:0;padding:0;color:inherit;text-decoration:underline;font:inherit;cursor:pointer;opacity:.85}
.bottom{display:none}
.acts{white-space:nowrap}.acts .btn{padding:8px 16px;font-size:14px}.acts .btn+.btn{margin-inline-start:6px}
tr.off td{opacity:.55}
.secret{font-size:44px;font-weight:700;letter-spacing:.3em;text-align:center;background:var(--gt);color:var(--gd);border-radius:16px;padding:16px 8px;user-select:all}
@media(prefers-reduced-motion:no-preference){main{animation:fade .18s ease-out}dialog[open]{animation:pop .16s ease-out}@keyframes fade{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}@keyframes pop{from{opacity:0;transform:scale(.97)}to{opacity:1;transform:none}}}
@media(max-width:800px){
  body{padding-bottom:calc(72px + env(safe-area-inset-bottom))}
  .layout{flex-direction:column}.side{display:none}
  main{padding:16px 16px 24px;gap:16px}h1{font-size:23px}
  .stats,.grid3{grid-template-columns:1fr 1fr}.grid3{grid-template-columns:1fr}.two{flex-direction:column}.two>aside{width:100%}
  .head{flex-wrap:wrap}.head .btn{width:100%;text-align:center}
  .btn{min-height:48px;padding:12px 20px}.acts .btn{min-height:44px}
  input,select{height:52px}
  .stat b{font-size:26px}.card{padding:16px;border-radius:18px}
  .bottom{display:flex;position:fixed;inset-inline:0;bottom:0;background:#fff;border-top:1px solid var(--line);padding:6px 6px calc(6px + env(safe-area-inset-bottom));gap:4px;z-index:20}
  .bottom button{flex:1;background:none;border:0;border-radius:14px;padding:10px 2px;font-size:13px;color:#3b4666;min-height:48px}
  .bottom button.on{background:var(--gt);color:var(--gd);font-weight:700}
  #toast{bottom:calc(84px + env(safe-area-inset-bottom));max-width:92vw;text-align:center}
  dialog{width:100vw!important;max-width:100vw;max-height:94vh;margin:auto 0 0;border-radius:22px 22px 0 0;padding:20px 16px calc(24px + env(safe-area-inset-bottom))}
  dialog.sheet .btn{width:100%}
  /* الجداول تتحول إلى بطاقات */
  .tablewrap table:not(.wide),.tablewrap table:not(.wide) tbody,.tablewrap table:not(.wide) tr,.tablewrap table:not(.wide) td{display:block;width:100%}
  .tablewrap table:not(.wide) thead{display:none}
  .tablewrap table:not(.wide) tr{border:1px solid var(--line);border-radius:16px;padding:8px 12px;margin-bottom:10px;background:#fff}
  .tablewrap table:not(.wide) td{border:0;padding:6px 0;display:flex;justify-content:space-between;gap:12px;text-align:left}
  .tablewrap table:not(.wide) td[data-l]::before{content:attr(data-l);color:var(--mut);font-size:13px;flex-shrink:0}
  .tablewrap table:not(.wide) td.acts{flex-wrap:wrap;justify-content:flex-start;white-space:normal;gap:8px}
  .tablewrap table:not(.wide) td:empty{display:none}
  .tablewrap{overflow-x:auto}
}
@media print{
  body{background:#fff}.side,.bottom,.noprint,#toast,button,.btn,.head label,dialog{display:none!important}
  .layout{display:block}main{padding:0;animation:none}.card{box-shadow:none;border:0;padding:0}
  .tablewrap table,.tablewrap tbody,.tablewrap tr,.tablewrap td{display:revert!important}.tablewrap thead{display:table-header-group!important}
  td[data-l]::before{content:none!important}h1{font-size:20px}
}
.sysbar>div{border-radius:14px;padding:10px 16px;font-size:14px;margin-bottom:10px}.sysbar .warn{background:#fdf0d5;color:#7a4d00}.sysbar .critical{background:#fbe1dd;color:#9c2416;font-weight:700}
/* تحسينات تجربة الاستخدام */
.btn.danger{background:#fff;color:#9c2416;border:1px solid #d9796c}
a.btn{text-align:center}
hr.sep{border:0;border-top:1px solid var(--line);margin:4px 0;width:100%}
.stat.link{text-align:right;cursor:pointer;font:inherit;color:inherit;width:100%}.stat.link:hover{border-color:var(--gl)}.stat.link small::after{content:" ←";color:var(--gd)}
.calc{display:flex;flex-direction:column;gap:2px;background:#f7f9fd;border:1px solid var(--line);border-radius:14px;padding:12px 16px}
aside .calc{background:#fff;padding:22px;border-radius:20px}
.calc h2{margin-bottom:6px}.calc .row{padding:4px 0}.calc .row.sum{border-top:1px dashed #cfd6e6;margin-top:4px;padding-top:8px}
.calc .row.big-due{border-top:1px solid #cfd6e6;margin-top:6px;padding-top:10px;font-size:17px}.calc .row.big-due b{font-size:22px;color:var(--gd)}.calc .row.neg b{color:#9c2416}
.calc.due{background:var(--gt);border-color:#cfe3b4}
.chips{display:flex;gap:6px;flex-wrap:wrap}.chips button{border:1px solid #d5dbeb;background:#fff;border-radius:999px;padding:6px 12px;font-size:13px;color:var(--gd);cursor:pointer;min-height:34px}
.suggest{display:flex;flex-direction:column;gap:6px}.suggest:empty{display:none}
.suggest button{text-align:right;border:1px solid var(--line);background:#fff;border-radius:12px;padding:10px 14px;font-size:14px;cursor:pointer;color:var(--ink)}.suggest button:hover,.suggest button:focus-visible{border-color:var(--g);background:var(--gt)}
.suggest small{color:var(--mut)}
.office-pick{font-size:13px;color:var(--mut)}.office-pick summary{cursor:pointer;padding:4px 0}.office-pick label{margin-top:8px}
.okmark{width:64px;height:64px;border-radius:50%;background:var(--gt);color:var(--gd);font-size:34px;line-height:64px;margin:0 auto}
@media(max-width:800px){.acts .btn{flex:1}.chips button{min-height:40px;padding:8px 14px}}
.card.attn{border-color:#f0c77a;background:#fffaf0}
.vr{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:12px 0;border-top:1px solid var(--line)}.card h2+.vr{border-top:0}
.vr .acts{display:flex;gap:8px}
textarea{border:1px solid #d5dbeb;border-radius:14px;padding:12px 16px;font:inherit;font-size:16px;color:var(--ink);resize:vertical}
@media(max-width:800px){.vr{flex-direction:column;align-items:stretch}.vr .acts .btn{flex:1}}
/* صندوق القرارات، إقفال اليوم، المستندات */
.badge{display:inline-block;min-width:20px;height:20px;line-height:20px;padding:0 6px;margin-inline-start:6px;border-radius:999px;background:#c0392b;color:#fff;font-size:12px;font-weight:700;text-align:center;vertical-align:middle}
.badge[hidden]{display:none}
.inboxlink{display:flex;align-items:center;gap:12px;flex-wrap:wrap;text-align:right;font:inherit;color:inherit;cursor:pointer;width:100%}.inboxlink .go{margin-inline-start:auto;color:var(--gd);font-weight:600}
.bad{background:#fbe1dd;color:#9c2416;border-radius:14px;padding:10px 16px;font-size:14px}
.warnbox{background:#fdf0d5;color:#7a4d00}
.pillbtn{border:0;cursor:pointer;font:inherit;font-size:13px;font-weight:600}
.vh{position:absolute;width:1px;height:1px;opacity:0;overflow:hidden}
.pick{display:flex;gap:10px;flex-wrap:wrap}.pick label{position:relative;display:inline-flex;align-items:center;justify-content:center;flex-direction:row;font-size:15px}
.pick label.btn:not(.ghost){color:#fff}.pick label.ghost{color:var(--gd)}
.docprev{display:flex;align-items:center;gap:12px;font-size:14px}.docprev img{width:72px;height:72px;object-fit:cover;border-radius:12px;border:1px solid var(--line)}
@media(max-width:800px){.pick label{flex:1}}
/* الحسابات */
.links{text-align:center;font-size:14px}.links a{color:var(--gd)}
.linkbox{background:#f7f9fd;border:1px dashed #cfd6e6;border-radius:12px;padding:10px 14px;font-size:14px;word-break:break-all;user-select:all}
details.card summary{cursor:pointer;font-weight:600}
.demobar{background:#e8f1ff;color:#1d4e9e;border:1px solid #bcd3f5;border-radius:14px;padding:10px 16px;font-size:14px;font-weight:600}
.badtxt{color:#9c2416}
/* محادثة طلب المساعدة */
.thread{display:flex;flex-direction:column;gap:10px;max-height:46vh;overflow:auto;padding:4px}
.msg{border-radius:16px;padding:10px 14px;max-width:85%;white-space:pre-wrap;line-height:1.7;font-size:15px}
.msg small{display:block;color:var(--mut);font-size:12px;margin-bottom:4px}
.msg.office{background:#eef6e3;align-self:flex-start}.msg.sup{background:#e3ecfb;align-self:flex-end}
tr.click{cursor:pointer}tr.click:hover td{background:#f7f9fd}
/* الاشتراك */
.kvl{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:12px}.kvl small{color:var(--mut);display:block;font-size:12px}.kvl b{font-size:18px}
.meter{height:10px;border-radius:999px;background:#eef1f8;overflow:hidden;margin-top:6px}.meter span{display:block;height:100%;background:var(--g)}
.sysbar .info{background:#e8f1ff;color:#1d4e9e}
.updbar{position:fixed;top:0;inset-inline:0;z-index:50;border:0;background:#1d4e9e;color:#fff;font:inherit;font-size:15px;font-weight:600;padding:12px 16px;cursor:pointer;text-align:center}
/* لوحة المالك والعملاء والتقييم */
.stars{color:#e0a800;letter-spacing:1px}
tr.newrow td{background:#fffaf0}
.starpick{display:flex;gap:4px}.starpick button{border:0;background:none;font-size:34px;line-height:1;color:#d5dbeb;cursor:pointer;padding:2px}.starpick button.on{color:#e0a800}
.tagpick button.on{background:var(--gt);border-color:var(--g);color:var(--gd);font-weight:600}
.ratebox{display:flex;flex-direction:column;gap:10px}
.head .tabs{justify-content:flex-end}
