/* «إدارة التنفيذ»: الأنماط المشتركة بين منصة مكتبي ومنصة بيتي (assets/js/execreport.js):
   قطاع البيت بألوان الحالات، وتقرير الأسبوع للمالك، والمستند المطبوع (PDF) برأس المكتب وترقيم الصفحات */
:root{--xs-doing:color-mix(in srgb,var(--major) 55%,var(--sheet));--xs-wait:var(--terra);--xs-ok:color-mix(in srgb,var(--ok) 78%,var(--sheet));--xs-rej:var(--stop);--xs-todo:var(--sheet);--xs-edge:var(--line-2)}

/* ===== قطاع البيت ===== */
.xs{width:100%;height:auto;display:block;overflow:visible}
.xs .xs-gl{stroke:var(--ink-2);stroke-width:2}.xs .xs-gl2{stroke:var(--line-2);stroke-width:1;stroke-dasharray:3 5}
.xs .xs-hatch{stroke:var(--line);stroke-width:1.2}.xs .xs-brick{stroke:color-mix(in srgb,var(--ink) 18%,transparent);stroke-width:.8;fill:none}
.xe{cursor:pointer;transition:opacity .25s,filter .2s}
.xs.mini .xe{cursor:default}
.xe rect,.xe path,.xe circle{fill:var(--xs-todo);stroke:var(--xs-edge);stroke-width:1.4;transition:fill .35s,stroke .35s}
.xe .xs-soil{fill:url(#xsH);stroke-dasharray:6 5}
.xe .xs-wall{fill:url(#xsB)}.xe .xs-open{fill:color-mix(in srgb,var(--paper) 80%,transparent);stroke-dasharray:3 3}
.xe .xs-line{fill:none!important;stroke-width:3.4}.xe .xs-line.d{stroke-dasharray:6 6;stroke-width:1.6}
.xe .xs-coat{fill:transparent;stroke-width:3}.xe .xs-thin{stroke-width:1}.xe .xs-tree{opacity:.9}.xe .xs-lean{opacity:.6}.xe .xs-door{fill:color-mix(in srgb,var(--paper) 60%,transparent)}
.xe-doing rect,.xe-doing path,.xe-doing circle{fill:var(--xs-doing);stroke:color-mix(in srgb,var(--major) 80%,var(--ink))}
.xe-wait rect,.xe-wait path,.xe-wait circle{fill:color-mix(in srgb,var(--xs-wait) 55%,var(--sheet));stroke:var(--xs-wait)}
.xe-ok rect,.xe-ok path,.xe-ok circle{fill:var(--xs-ok);stroke:color-mix(in srgb,var(--ok) 70%,var(--ink))}
.xe-rej rect,.xe-rej path,.xe-rej circle{fill:color-mix(in srgb,var(--xs-rej) 62%,var(--sheet));stroke:var(--xs-rej)}
.xe-na rect,.xe-na path,.xe-na circle{fill:transparent;stroke:var(--line);stroke-dasharray:3 4;stroke-width:1}
.xe-doing .xs-line,.xe-wait .xs-line,.xe-ok .xs-line,.xe-rej .xs-line{stroke-width:3.4}
.xe-doing .xs-line{stroke:var(--major)}.xe-wait .xs-line{stroke:var(--terra)}.xe-ok .xs-line{stroke:var(--ok)}.xe-rej .xs-line{stroke:var(--stop)}
.xe-wait .xs-coat,.xe-doing .xs-coat,.xe-ok .xs-coat,.xe-rej .xs-coat{fill:transparent}
.xe-wait .xs-wall,.xe-doing .xs-wall,.xe-ok .xs-wall,.xe-rej .xs-wall{fill:url(#xsB)}
.xe-ok .xs-wall{stroke:var(--ok)}.xe-doing .xs-wall{stroke:var(--major)}.xe-wait .xs-wall{stroke:var(--terra)}.xe-rej .xs-wall{stroke:var(--stop)}
.xe-wait{animation:xsPulse 1.8s ease-in-out infinite}
@keyframes xsPulse{50%{opacity:.62}}
.xs:not(.mini) .xe:hover,.xs .xe:focus-visible{filter:drop-shadow(0 0 4px color-mix(in srgb,var(--terra) 60%,transparent));outline:none}
.xs .xe.dim{opacity:.28}
.xs-lock circle{fill:var(--stop);stroke:var(--sheet);stroke-width:2}.xs-lock path{fill:none;stroke:#fff;stroke-width:1.8;stroke-linejoin:round}
.xs-lock{animation:xsLock 2.4s ease-in-out infinite;pointer-events:none}
@keyframes xsLock{50%{transform-box:fill-box;opacity:.8}}
/* البناء من الأسفل عند أول ظهور */
.xs:not(.mini) .xe{animation:xsIn .55s cubic-bezier(.2,.7,.2,1) both;animation-delay:calc(var(--i) * 45ms)}
.xs:not(.mini) .xe-wait{animation:xsIn .55s cubic-bezier(.2,.7,.2,1) both,xsPulse 1.8s ease-in-out .9s infinite;animation-delay:calc(var(--i) * 45ms),.9s}
@keyframes xsIn{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}
@media (prefers-reduced-motion:reduce){.xe,.xs:not(.mini) .xe,.xs:not(.mini) .xe-wait,.xs-lock{animation:none!important}}

/* ===== تقرير الأسبوع ===== */
.xr{display:flex;flex-direction:column;gap:14px;min-width:0}
.xr-top{display:flex;flex-direction:column;gap:10px}
.xr-nums{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
.xr-n{border:1px solid color-mix(in srgb,var(--line) 72%,var(--sheet));border-radius:14px;padding:10px 12px;display:flex;flex-direction:column;gap:2px;min-width:0;background:var(--sheet)}
.xr-n span{font-size:12px;color:var(--ink-2)}.xr-n b{font-size:22px;line-height:1.3;font-variant-numeric:tabular-nums}.xr-n small{font-size:12px;color:var(--ink-2)}
.xr-n.s b{color:var(--stop)}.xr-n.g b{color:var(--ok)}.xr-n .xr-d{font-size:17px}
@media (min-width:640px){.xr-nums{grid-template-columns:repeat(4,minmax(0,1fr))}}
.xr-bar{position:relative;height:10px;border-radius:9px;background:color-mix(in srgb,var(--ink) 7%,var(--sheet));overflow:hidden}
.xr-bar i{position:absolute;inset-block:0;inset-inline-start:0;border-radius:9px}
.xr-bar i.p{background:color-mix(in srgb,var(--terra) 26%,var(--sheet))}.xr-bar i.a{background:var(--terra);height:6px;top:2px}
.xr-sec{max-width:520px;margin-inline:auto;width:100%}
.xr-stage{margin:0;font-size:14px;color:var(--ink-2)}.xr-stage b{color:var(--ink)}
.xr section,.xd section{padding:0;border-top:0;margin:0}
.xr-b h3{margin:0 0 6px;font-size:14.5px}
.xr-l{margin:0;padding-inline-start:20px;display:flex;flex-direction:column;gap:4px;font-size:14px;line-height:1.75}
.xr-l.s li::marker{color:var(--stop)}
.xr-l small{color:var(--ink-2)}
.xr-r{font-size:11.5px;font-weight:700;border-radius:99px;padding:1px 8px;background:color-mix(in srgb,var(--ink) 7%,var(--sheet));color:var(--ink-2);white-space:nowrap}
.xr-r.ok{color:var(--ok);background:color-mix(in srgb,var(--ok) 13%,var(--sheet))}.xr-r.rejected{color:var(--stop);background:color-mix(in srgb,var(--stop) 12%,var(--sheet))}.xr-r.ok_notes{color:var(--major);background:color-mix(in srgb,var(--major) 12%,var(--sheet))}.xr-r.pending{color:var(--terra);background:color-mix(in srgb,var(--terra) 11%,var(--sheet))}
.xr-p{margin:0;font-size:14px;line-height:1.85}
.xr-pics{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
@media (min-width:640px){.xr-pics{grid-template-columns:repeat(3,minmax(0,1fr))}}
.xr-pic{margin:0;border-radius:12px;overflow:hidden;background:color-mix(in srgb,var(--ink) 6%,var(--sheet));display:flex;flex-direction:column}
.xr-pic img{width:100%;aspect-ratio:4/3;object-fit:cover;display:block;background:color-mix(in srgb,var(--ink) 8%,var(--sheet))}
.xr-pic figcaption{font-size:11.5px;color:var(--ink-2);padding:4px 8px}

/* ===== المستند المطبوع ===== */
.xd{font-family:var(--font);color:#1F1A17;background:#fff;direction:rtl;font-size:12.5px;line-height:1.7}
.xd-h{display:flex;justify-content:space-between;align-items:flex-start;gap:16px;padding-bottom:10px;border-bottom:2px solid #5A3420}
.xd-brand{display:flex;gap:10px;align-items:center}
.xd-logo{width:46px;height:46px;border:1.5px dashed #A65338;border-radius:10px;display:grid;place-items:center;font-size:22px;font-weight:700;color:#A65338}
.xd-brand b{display:block;font-size:15px;color:#5A3420}.xd-brand small{font-size:11px;color:#6B625A}
.xd-t{text-align:left}.xd-t h1{margin:0;font-size:18px;color:#1F1A17}.xd-t small{font-size:11px;color:#6B625A;direction:rtl;display:block;text-align:left}
.xd-meta{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:2px 18px;margin:10px 0 12px;padding:8px 12px;background:#F5EFE8;border-radius:8px}
.xd-meta div{display:flex;gap:6px;min-width:0}.xd-meta dt{color:#6B625A;white-space:nowrap}.xd-meta dt::after{content:":"}.xd-meta dd{margin:0;font-weight:700;overflow-wrap:anywhere}
.xd-h2{font-size:14px;margin:14px 0 6px;color:#5A3420}
.xd-tb{width:100%;border-collapse:collapse;margin:6px 0 10px;font-size:11.5px}
.xd-tb th{background:#5A3420;color:#fff;font-weight:700;padding:5px 6px;text-align:right;border:1px solid #5A3420}
.xd-tb td{padding:4px 6px;border:1px solid #D9D3CB;vertical-align:top}
.xd-tb tr:nth-child(even) td{background:#FBF7F2}
.xd-tb td.n{direction:ltr;text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap}
.xd-tb tfoot td{font-weight:700;background:#F5EFE8}
.xd-sum{width:min(100%,420px);margin:8px 0 8px auto;border-collapse:collapse;font-size:12.5px}
.xd-sum td{padding:5px 8px;border-bottom:1px solid #D9D3CB}.xd-sum td.n{direction:ltr;text-align:left;white-space:nowrap;font-variant-numeric:tabular-nums}
.xd-sum tr.t td{font-weight:700;font-size:14px;border-top:2px solid #5A3420;border-bottom:2px solid #5A3420;background:#F5EFE8}
.xd-lead{font-size:14px;font-weight:700;margin:8px 0}.xd-p{margin:4px 0}.xd-pre{white-space:pre-wrap;font:inherit}
.xd-note{margin:10px 0 0;padding:6px 10px;border-inline-start:3px solid #A65338;background:#FBF7F2;font-size:11.5px;color:#4b433d}
.xd-sign{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px;margin-top:26px;page-break-inside:avoid}
.xd-sign div{display:flex;flex-direction:column;gap:30px;font-size:12px}.xd-sign i{border-bottom:1px solid #1F1A17;display:block}
.xd-f{display:flex;justify-content:space-between;margin-top:18px;padding-top:6px;border-top:1px solid #D9D3CB;font-size:10px;color:#6B625A}
.xd-pics{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin:8px 0}
.xd-pics.sm{grid-template-columns:repeat(4,minmax(0,1fr))}
.xd-pics figure{margin:0}.xd-pics img{width:100%;aspect-ratio:4/3;object-fit:cover;border-radius:4px;display:block}.xd-pics figcaption{font-size:10px;color:#6B625A}
.xd-day{page-break-inside:avoid;border-bottom:1px dashed #D9D3CB;padding:6px 0}.xd-day h3{font-size:13px;margin:4px 0}
.xd-sec{max-width:420px;margin:6px auto}.xd-gantt svg{width:100%;height:auto;max-height:108mm}.xd-chart svg{width:100%;height:auto}.xd-ct{page-break-inside:avoid}
.xd .xr-n{border-color:#D9D3CB}.xd .xr-pics{grid-template-columns:repeat(3,minmax(0,1fr))}.xd .xr-nums{grid-template-columns:repeat(4,minmax(0,1fr))}
@media screen{.xr-printroot{display:none!important}}
@media print{
  @page{size:A4;margin:14mm 12mm 16mm;@bottom-left{content:"صفحة " counter(page) " من " counter(pages);font-size:9px;color:#6B625A}}
  @page land{size:A4 landscape;margin:12mm 12mm 14mm;@bottom-left{content:"صفحة " counter(page) " من " counter(pages);font-size:9px;color:#6B625A}}
  body.xr-print>*:not(.xr-printroot){display:none!important}
  body.xr-print{background:#fff!important}
  body.xr-print .xr-printroot{display:block}
  .xr-printroot .xd.land{page:land}
  .xd{--xs-doing:color-mix(in srgb,var(--major) 55%,#fff);--xs-wait:#A65338;--xs-ok:color-mix(in srgb,#3F6B4E 78%,#fff);--xs-rej:#9B2F22;--xs-todo:#fff;--xs-edge:#B9B0A5;--sheet:#fff;--paper:#F6F5F1;--ink:#1F1A17;--ink-2:#5E554E;--line:#D9D3CB;--line-2:#B9B0A5;--terra:#A65338;--ok:#3F6B4E;--major:#8F4E1E;--stop:#9B2F22;-webkit-print-color-adjust:exact;print-color-adjust:exact}
  .xd-tb thead{display:table-header-group}.xd-tb tr{page-break-inside:avoid}
}

/* ===== منصة بيتي: «التنفيذ مع مكتبك» في محطة التنفيذ (assets/js/opsroom.js) ===== */
.ap-exec{display:flex;flex-direction:column;gap:12px;padding:16px;margin:12px 0}
.ap-exec[aria-busy="true"]{min-height:80px}
.ap-exec-h{display:flex;justify-content:space-between;align-items:flex-start;gap:10px}
.ap-exec-h small{font-size:12.5px;color:var(--terra);font-weight:700}.ap-exec-h h3{margin:2px 0 0;font-size:17px;line-height:1.5}
.ap-exec-w{font-size:12px;color:var(--ink-2);white-space:nowrap}
.ap-exec-g{display:grid;grid-template-columns:minmax(0,1fr);gap:10px;align-items:center}
@media (min-width:640px){.ap-exec-g{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}}
.ap-exec-s{background:linear-gradient(180deg,color-mix(in srgb,#9ec3dc 18%,var(--sheet)),var(--sheet) 70%);border-radius:12px;padding:8px 18px 0}
.ap-exec-n{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px}
.ap-exec-c{padding:8px 10px;border-radius:12px;background:color-mix(in srgb,var(--ink) 5%,var(--sheet));display:flex;flex-direction:column;min-width:0}
.ap-exec-c span{font-size:11.5px;color:var(--ink-2)}.ap-exec-c b{font-size:16px;line-height:1.4}.ap-exec-c small{font-size:11px;color:var(--ink-2);line-height:1.5}
.ap-exec-c.s b{color:var(--stop)}
.ap-exec-d summary{cursor:pointer;font-weight:700;color:var(--terra);font-size:14px;min-height:40px;display:flex;align-items:center}
.ap-exec-r{display:flex;flex-direction:column;gap:12px;padding-top:6px}
.ap-exec-vo{padding:12px 14px;border-radius:14px;border:1.5px solid var(--terra);background:color-mix(in srgb,var(--terra) 6%,var(--sheet));display:flex;flex-direction:column;gap:6px}
.ap-exec-vo small{font-size:12px;color:var(--terra);font-weight:700}.ap-exec-vo b{font-size:15.5px}.ap-exec-vo p{margin:0;font-size:13.5px;line-height:1.75;color:var(--ink-2)}
.ap-exec-vo .ap-exec-imp{color:var(--ink);font-weight:700}
.ap-exec-vo textarea{width:100%;box-sizing:border-box;font:inherit;border:1px solid var(--line);border-radius:10px;padding:8px 10px;background:var(--sheet);color:var(--ink)}
.ap-exec-a{display:flex;gap:8px;flex-wrap:wrap}.ap-exec-a .ap-btn{flex:1 1 120px}
.ap-exec-ct{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px;padding:12px 14px;border-radius:14px;background:color-mix(in srgb,var(--major) 8%,var(--sheet))}
.ap-exec-ct div{display:flex;flex-direction:column;gap:2px;min-width:0}.ap-exec-ct small{font-size:12px;color:var(--major);font-weight:700}.ap-exec-ct b{font-size:14.5px}.ap-exec-ct span{font-size:12px;color:var(--ink-2)}
.ap-exec-ok{font-size:12.5px;color:var(--ok);font-weight:700}
.ap-exec-f{margin:0;font-size:12.5px;color:var(--ink-2)}
.xd-gantt .gn{font-size:11px}.xd-gantt .gt{font-size:10px}
