/* محرك العطاءات — واجهة v2 «المظروف» (UI_REDESIGN_PLAN.md · أمر أحمد 31511/31514/31522)
   مفهوم واحد: مظروفان يمتلئان ويُختمان. لا Cairo. Readex Pro للعناوين · IBM Plex Sans Arabic للنص. */
@import url('https://fonts.googleapis.com/css2?family=Readex+Pro:wght@400;500;600;700&family=IBM+Plex+Sans+Arabic:wght@400;500;600&display=swap');

:root{
  --night:#161A3F; --night-2:#1E2350; --night-3:#272C5E;
  --paper:#F6F3EC; --paper-2:#EEE9DD; --paper-3:#E4DCC9;
  --ink:#171A2E; --ink-2:#4A4F6B; --ink-3:#7C8199;
  --gold:#D4A017; --gold-2:#F2C94C; --gold-bg:rgba(212,160,23,.14);
  --thread:#C0392B; --thread-bg:rgba(192,57,43,.12);
  --agree:#2E8B57; --agree-bg:rgba(46,139,87,.13);
  --brain:#7B61FF; --brain-bg:rgba(123,97,255,.12);
  --warn:#D28A1D; --warn-bg:rgba(210,138,29,.13);
  --line:rgba(23,26,46,.12); --card:#FFFFFF; --card-2:#FBF9F4;
  --r:14px; --r-s:9px; --shadow:0 1px 2px rgba(23,26,46,.05),0 10px 30px rgba(23,26,46,.07);
  --font-h:'Readex Pro','IBM Plex Sans Arabic',system-ui,sans-serif; --font-b:'IBM Plex Sans Arabic',system-ui,sans-serif;
  --ease:cubic-bezier(.2,.7,.2,1); --t:.28s;

  /* ═══ مرتكزاتٌ مضافةٌ بأمر أحمد 2026-08-30 (ملاحظةُ المراجعة: النظامُ يُوثَّق
     قاعدةً لا يبقى ذوقاً). المرجع: DESIGN_SYSTEM.md بجذر المشروع. ═══ */
  /* المسافات — سلّمٌ واحد، لا أرقامٌ عشوائيةٌ بكل ملف */
  --s-1:4px; --s-2:8px; --s-3:12px; --s-4:16px; --s-5:24px; --s-6:32px; --s-7:48px;
  /* الخطوط — سبعُ درجاتٍ تغطي كلَّ نصٍّ بالمنصة */
  --fs-display:clamp(1.7rem,2.4vw,2.1rem); --fs-h1:1.5rem; --fs-h2:1.2rem; --fs-h3:1.05rem;
  --fs-body:.95rem; --fs-sm:.88rem; --fs-meta:.78rem;
  /* الحركة — أربعُ سرعاتٍ لا أكثر */
  --t-instant:.1s; --t-fast:.18s; --t-normal:.28s; --t-slow:.9s;
  /* الأيقونات — ثلاثةُ مقاساتٍ فقط */
  --ic-sm:16px; --ic-md:20px; --ic-lg:24px;
  /* الأنصاف — ثلاثة */
  --r-l:20px;
}
*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth}
body{font-family:var(--font-b);background:var(--paper);color:var(--ink);font-size:15px;line-height:1.65;-webkit-font-smoothing:antialiased;min-height:100vh}
h1,h2,h3,.h{font-family:var(--font-h);letter-spacing:-.01em;text-wrap:balance}
h1{font-size:1.55rem;font-weight:700}h2{font-size:1.15rem;font-weight:600;margin:1.4rem 0 .6rem}h3{font-size:1rem;font-weight:600;margin:.9rem 0 .4rem}
a{color:inherit}
.num{font-variant-numeric:tabular-nums}
.muted{color:var(--ink-3);font-size:.9rem}
::selection{background:var(--gold-bg)}
@media (prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important;scroll-behavior:auto!important}}

/* ---------- الإطار ---------- */
.topbar{position:sticky;top:0;z-index:20;background:var(--night);color:#fff;display:flex;align-items:center;gap:1rem;padding:.6rem 1.2rem;box-shadow:0 6px 24px rgba(22,26,63,.25)}
.topbar .brand{display:flex;align-items:center;gap:.6rem;font-family:var(--font-h);font-weight:700;font-size:1.05rem}
.topbar .brand .env{width:34px;height:24px;border:2px solid var(--gold);border-radius:4px;position:relative;background:rgba(255,255,255,.04)}
.topbar .brand .env:before{content:"";position:absolute;inset:0;border-top:12px solid var(--gold);border-left:15px solid transparent;border-right:15px solid transparent;opacity:.9}
.topbar .brand small{font-weight:400;opacity:.65;font-size:.72rem;margin-inline-start:.2rem}
.topbar .grow{flex:1}
.topbar .chip{background:rgba(255,255,255,.1);border-radius:999px;padding:.25rem .75rem;font-size:.82rem;display:inline-flex;gap:.4rem;align-items:center}
.topbar .chip.gold{background:var(--gold);color:#241a05;font-weight:600}
.topbar a{text-decoration:none;opacity:.9}
.wrap{max-width:none;margin:0 auto;padding:1.2rem 1.2rem 5rem}
.wrap.narrow{max-width:820px}

/* ---------- البطاقات ---------- */
.card{background:var(--card);border:1px solid var(--line);border-radius:var(--r);padding:1rem 1.1rem;box-shadow:var(--shadow)}
.card.soft{background:var(--card-2);box-shadow:none}
.grid{display:grid;gap:.9rem}.g2{grid-template-columns:repeat(auto-fit,minmax(min(260px,100%),1fr))}.g3{grid-template-columns:repeat(auto-fit,minmax(min(200px,100%),1fr))}.g4{grid-template-columns:repeat(auto-fit,minmax(min(160px,100%),1fr))}
.stat{display:flex;flex-direction:column;gap:.15rem}.stat b{font-family:var(--font-h);font-size:1.5rem;font-weight:700}.stat small{color:var(--ink-3)}
.pill{display:inline-flex;align-items:center;gap:.35rem;border-radius:999px;padding:.15rem .65rem;font-size:.8rem;font-weight:600;background:var(--paper-2);color:var(--ink-2)}
.pill.gold{background:var(--gold-bg);color:#7a5a08}.pill.thread{background:var(--thread-bg);color:var(--thread)}.pill.agree{background:var(--agree-bg);color:var(--agree)}.pill.brain{background:var(--brain-bg);color:var(--brain)}.pill.warn{background:var(--warn-bg);color:#8a5a0f}
.note{border-inline-start:4px solid var(--gold);background:var(--gold-bg);border-radius:var(--r-s);padding:.7rem 1rem;margin:.8rem 0}
.note.thread{border-color:var(--thread);background:var(--thread-bg)}.note.agree{border-color:var(--agree);background:var(--agree-bg)}.note.brain{border-color:var(--brain);background:var(--brain-bg)}

/* ---------- الأزرار (جديدة — لا أزرار قديمة) ---------- */
.btn{appearance:none;border:0;cursor:pointer;font:inherit;font-weight:600;border-radius:999px;padding:.6rem 1.15rem;background:var(--night);color:#fff;display:inline-flex;align-items:center;gap:.5rem;transition:transform var(--t) var(--ease),box-shadow var(--t) var(--ease),background var(--t);box-shadow:0 6px 16px rgba(22,26,63,.18);text-decoration:none}
.btn:hover{transform:translateY(-2px);box-shadow:0 12px 26px rgba(22,26,63,.25)}.btn:active{transform:translateY(0) scale(.98)}
.btn.gold{background:linear-gradient(135deg,var(--gold-2),var(--gold));color:#241a05}.btn.ghost{background:transparent;color:var(--ink);border:1.5px solid var(--line);box-shadow:none}.btn.thread{background:var(--thread)}
.btn.lg{padding:.85rem 1.5rem;font-size:1.05rem}.btn:disabled{opacity:.5;cursor:not-allowed;transform:none}
.btn:focus-visible,.tab:focus-visible,input:focus-visible,select:focus-visible{outline:3px solid var(--gold-2);outline-offset:2px}
label{display:block;font-size:.85rem;color:var(--ink-2);margin-bottom:.25rem}
input,select,textarea{font:inherit;width:100%;border:1.5px solid var(--line);border-radius:var(--r-s);padding:.55rem .7rem;background:#fff;transition:border-color var(--t)}
input:focus,select:focus{border-color:var(--night)}
.table{overflow-x:auto}table{border-collapse:collapse;width:100%;font-size:.9rem}th{text-align:right;font-family:var(--font-h);font-weight:600;color:var(--ink-2);padding:.55rem .6rem;border-bottom:2px solid var(--line);white-space:nowrap}td{padding:.5rem .6rem;border-bottom:1px solid var(--line);vertical-align:top}tr:hover td{background:var(--card-2)}

/* ---------- السكة: 14 محطة ---------- */
.rail{position:relative;margin:1rem 0 .4rem;padding:1.2rem 0 .6rem;overflow-x:auto;overflow-y:hidden}
.rail ol{display:flex;gap:0;list-style:none;min-width:900px;position:relative}
.rail ol:before{content:"";position:absolute;top:22px;right:28px;left:28px;height:3px;background:var(--paper-3);border-radius:3px}
.rail .fill{position:absolute;top:22px;right:28px;height:3px;background:linear-gradient(90deg,var(--gold),var(--gold-2));border-radius:3px;transition:width .9s var(--ease);box-shadow:0 0 12px rgba(212,160,23,.5)}
.st{flex:1;min-width:64px;text-align:center;position:relative;cursor:pointer;padding-top:0}
.st .dot{width:22px;height:22px;border-radius:50%;background:#fff;border:3px solid var(--paper-3);margin:11px auto 0;position:relative;z-index:2;transition:all var(--t) var(--ease);display:flex;align-items:center;justify-content:center;font-size:.7rem}
.st.done .dot{background:var(--gold);border-color:var(--gold);color:#241a05}
.st.human .dot{background:#fff;border-color:var(--gold);box-shadow:0 0 0 6px var(--gold-bg);animation:pulse 1.6s infinite}
.st.blocked .dot{background:var(--thread);border-color:var(--thread);color:#fff}
.st.active .dot{background:var(--brain);border-color:var(--brain);color:#fff;animation:spin-ring 1.2s linear infinite}
.st.locked .dot{opacity:.45}
.st .lbl{display:block;font-size:.72rem;margin-top:.35rem;color:var(--ink-2);line-height:1.2;padding:0 .2rem}
.st .code{position:absolute;top:-6px;right:50%;transform:translateX(50%);font-size:.62rem;color:var(--ink-3);font-family:var(--font-h)}
.st:hover .dot{transform:scale(1.15)}
.st.selected .lbl{color:var(--ink);font-weight:600}
@keyframes pulse{0%,100%{box-shadow:0 0 0 6px var(--gold-bg)}50%{box-shadow:0 0 0 12px rgba(212,160,23,.05)}}
@keyframes spin-ring{to{transform:rotate(360deg)}}
/* القطعة الحية على السكة */
.rail .piece{position:absolute;top:8px;width:34px;height:24px;border:2px solid var(--gold);border-radius:4px;background:#fff;z-index:3;transition:right .9s var(--ease);transform:translateX(50%)}
.rail .piece:before{content:"";position:absolute;inset:0;border-top:11px solid var(--gold);border-left:15px solid transparent;border-right:15px solid transparent}

/* ---------- التبويبات (view transitions) ---------- */
.tabs{display:flex;gap:.3rem;flex-wrap:wrap;border-bottom:1.5px solid var(--line);margin:.4rem 0 1rem;position:sticky;top:52px;background:var(--paper);z-index:10;padding-top:.3rem}
.tab{appearance:none;border:0;background:transparent;font:inherit;font-weight:600;color:var(--ink-3);padding:.55rem .8rem;border-radius:var(--r-s) var(--r-s) 0 0;cursor:pointer;position:relative;transition:color var(--t)}
.tab:hover{color:var(--ink)}.tab[aria-selected="true"]{color:var(--ink)}
.tab[aria-selected="true"]:after{content:"";position:absolute;left:8px;right:8px;bottom:-2px;height:3px;background:var(--gold);border-radius:3px;view-transition-name:tab-ink}
.tab .cnt{background:var(--paper-2);border-radius:999px;padding:0 .45rem;font-size:.72rem;margin-inline-start:.3rem}
.tab .cnt.thread{background:var(--thread-bg);color:var(--thread)}.tab .cnt.gold{background:var(--gold-bg);color:#7a5a08}
.panel{display:none;animation:panelin .32s var(--ease) both}.panel[data-active]{display:block}
@keyframes panelin{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}
::view-transition-old(root),::view-transition-new(root){animation-duration:.25s}

/* ---------- البث الحي ---------- */
.live{background:var(--night);color:#fff;border-radius:var(--r);padding:.9rem 1.1rem;margin:.6rem 0 1rem;display:none;box-shadow:0 14px 34px rgba(22,26,63,.25)}
.live[data-on]{display:block;animation:panelin .4s var(--ease) both}
.live .who{font-family:var(--font-h);font-weight:600;display:flex;align-items:center;gap:.6rem}
.live .who i{width:10px;height:10px;border-radius:50%;background:var(--gold-2);box-shadow:0 0 0 0 rgba(242,201,76,.6);animation:beat 1.4s infinite}
@keyframes beat{0%{box-shadow:0 0 0 0 rgba(242,201,76,.6)}70%{box-shadow:0 0 0 10px rgba(242,201,76,0)}100%{box-shadow:0 0 0 0 rgba(242,201,76,0)}}
.live ul{list-style:none;margin-top:.5rem;display:flex;flex-direction:column;gap:.25rem;font-size:.88rem;max-height:220px;overflow:auto}
.live li{display:flex;gap:.6rem;align-items:baseline;opacity:.85;animation:panelin .3s var(--ease) both}.live li b{color:var(--gold-2);font-family:var(--font-h);font-weight:500;min-width:66px;font-size:.78rem}
.live li.err{color:#ffb4ad}

/* ---------- المظروف ---------- */
.envelope{position:relative;width:100%;max-width:420px;aspect-ratio:1.45;margin:.4rem auto 1rem;border:2.5px solid var(--night);border-radius:10px;background:linear-gradient(180deg,#fff,var(--card-2));box-shadow:var(--shadow);overflow:hidden}
.envelope .flap{position:absolute;inset:0 0 auto 0;height:52%;background:linear-gradient(180deg,var(--night-2),var(--night));clip-path:polygon(0 0,100% 0,50% 100%);transform-origin:top;transition:transform 1s var(--ease);z-index:3}
.envelope.sealed .flap{transform:rotateX(0)}.envelope.open .flap{transform:rotateX(-160deg)}
.envelope .sheets{position:absolute;inset:auto 8% 6% 8%;height:74%;display:flex;flex-direction:column;justify-content:flex-end;gap:2px}
.envelope .sheet{height:0;background:#fff;border:1px solid var(--line);border-radius:3px;transition:height .8s var(--ease);box-shadow:0 -2px 6px rgba(0,0,0,.05)}
.envelope .sheet.in{height:9%}
.envelope .seal{position:absolute;left:50%;top:48%;width:64px;height:64px;border-radius:50%;background:radial-gradient(circle at 35% 35%,var(--gold-2),var(--gold) 60%,#8a6a0f);transform:translate(-50%,-50%) scale(0);z-index:4;display:flex;align-items:center;justify-content:center;color:#241a05;font-family:var(--font-h);font-weight:700;font-size:.8rem;box-shadow:0 6px 16px rgba(0,0,0,.25)}
.envelope.sealed .seal{animation:stamp .7s var(--ease) forwards}
@keyframes stamp{0%{transform:translate(-50%,-50%) scale(2.2);opacity:0}60%{transform:translate(-50%,-50%) scale(.9);opacity:1}100%{transform:translate(-50%,-50%) scale(1)}}
.envelope .thread{position:absolute;inset:0;border:3px dashed var(--thread);border-radius:10px;opacity:.55;pointer-events:none;transition:opacity 1s}
.envelope.clean .thread{opacity:0}

/* ---------- الاحتفال ---------- */
canvas.confetti{position:fixed;inset:0;pointer-events:none;z-index:50}
.toast{position:fixed;bottom:1.2rem;left:50%;transform:translateX(-50%) translateY(20px);background:var(--night);color:#fff;padding:.75rem 1.2rem;border-radius:999px;box-shadow:0 14px 34px rgba(22,26,63,.3);opacity:0;transition:all .4s var(--ease);z-index:60;font-weight:600;display:flex;gap:.5rem;align-items:center}
.toast[data-on]{opacity:1;transform:translateX(-50%) translateY(0)}.toast.gold{background:linear-gradient(135deg,var(--gold-2),var(--gold));color:#241a05}

/* ---------- العقول ---------- */
.brains{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(220px,100%),1fr));gap:.8rem}
.brain{border:1px solid var(--line);border-radius:var(--r);padding:.9rem 1rem;background:var(--card);position:relative;overflow:hidden}
.brain:before{content:"";position:absolute;inset:0 0 auto 0;height:4px;background:var(--brain)}
.brain .two{display:flex;gap:.4rem;flex-wrap:wrap;margin:.3rem 0}.brain .two span{font-size:.72rem;background:var(--brain-bg);color:var(--brain);border-radius:999px;padding:.05rem .5rem}
.score{font-family:var(--font-h);font-size:1.6rem;font-weight:700}.score small{font-size:.85rem;color:var(--ink-3);font-weight:400}

/* ---------- الاختيارات (أشارك) ---------- */
.choice{display:inline-flex;align-items:center;gap:.4rem;border:1.5px solid var(--line);border-radius:999px;padding:.4rem .8rem;cursor:pointer;transition:all var(--t);background:#fff;font-size:.9rem}
.choice:hover{border-color:var(--night)}.choice input{display:none}.choice.on,.choice:has(input:checked){background:var(--night);color:#fff;border-color:var(--night)}
.choice small{opacity:.75}
.delta.up{color:var(--thread)}.delta.down{color:var(--agree)}

/* ---------- السحب للختم ---------- */
.seal-track{position:relative;height:56px;border-radius:999px;background:var(--paper-2);border:1.5px solid var(--line);overflow:hidden;user-select:none;margin:.6rem 0}
.seal-track .knob{position:absolute;top:3px;right:3px;width:48px;height:48px;border-radius:50%;background:linear-gradient(135deg,var(--gold-2),var(--gold));display:flex;align-items:center;justify-content:center;font-weight:700;color:#241a05;cursor:grab;box-shadow:0 4px 12px rgba(0,0,0,.2);touch-action:none}
.seal-track .hint{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;color:var(--ink-3);font-size:.9rem;pointer-events:none}
.seal-track.done{background:var(--gold-bg)}.seal-track.done .hint{color:#7a5a08;font-weight:600}

/* ---------- الرئيسية: مظاريف صغيرة ---------- */
.envs{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(240px,100%),1fr));gap:.9rem}
.envcard{display:block;text-decoration:none;color:inherit;border:1.5px solid var(--line);border-radius:var(--r);background:#fff;padding:1rem;transition:transform var(--t) var(--ease),box-shadow var(--t);position:relative;overflow:hidden}
.envcard:hover{transform:translateY(-3px);box-shadow:var(--shadow)}
.envcard .mini{width:42px;height:30px;border:2px solid var(--night);border-radius:4px;position:relative;margin-bottom:.5rem}
.envcard .mini:before{content:"";position:absolute;inset:0;border-top:14px solid var(--night);border-left:19px solid transparent;border-right:19px solid transparent}
.envcard.sealed .mini{border-color:var(--gold)}.envcard.sealed .mini:before{border-top-color:var(--gold)}
.envcard .prog{height:4px;background:var(--paper-2);border-radius:3px;margin-top:.6rem;overflow:hidden}.envcard .prog i{display:block;height:100%;background:linear-gradient(90deg,var(--gold),var(--gold-2))}
.drop{border:2px dashed var(--line);border-radius:var(--r);padding:2rem;text-align:center;transition:all var(--t);background:#fff}
.drop.over{border-color:var(--gold);background:var(--gold-bg)}
.drop .big{font-family:var(--font-h);font-size:1.15rem;font-weight:600}

/* ---------- الويزارد ---------- */
.steps{display:flex;gap:.4rem;margin:.6rem 0 1rem;flex-wrap:wrap}.steps .s{flex:1;min-width:120px;padding:.5rem .6rem;border-radius:var(--r-s);background:var(--paper-2);text-align:center;font-size:.85rem;color:var(--ink-3);cursor:pointer;transition:all var(--t)}
.steps .s.on{background:var(--night);color:#fff}.steps .s.ok{background:var(--agree-bg);color:var(--agree)}
.wstep{display:none}.wstep[data-active]{display:block;animation:panelin .3s var(--ease) both}

/* ---------- الدخول ---------- */
.login{min-height:100vh;display:grid;grid-template-columns:1.1fr 1fr}
.login .story{background:var(--night);color:#fff;padding:3rem;display:flex;flex-direction:column;justify-content:center;gap:1rem;position:relative;overflow:hidden}
.login .story h1{font-size:2.2rem;line-height:1.2}
.login .story .env-big{width:260px;height:180px;border:3px solid var(--gold);border-radius:12px;position:relative;margin:1rem 0;background:rgba(255,255,255,.03);animation:float 6s ease-in-out infinite}
.login .story .env-big:before{content:"";position:absolute;inset:0;border-top:90px solid var(--gold);border-left:130px solid transparent;border-right:130px solid transparent;opacity:.9}
@keyframes float{0%,100%{transform:translateY(0) rotate(-2deg)}50%{transform:translateY(-10px) rotate(1deg)}}
.login .form{display:flex;align-items:center;justify-content:center;padding:2rem}
.login .form .card{width:100%;max-width:400px}
@media(max-width:820px){.login{grid-template-columns:1fr}.login .story{padding:2rem}.tabs{top:48px}}

/* دفتر راسي */
.journal{list-style:none;padding:0;margin:.8rem 0 0;display:flex;flex-direction:column;gap:.35rem;font-size:.95rem;line-height:1.7}
.journal li{display:grid;grid-template-columns:5.2rem 1fr;gap:.6rem;padding:.35rem .5rem;border-radius:.5rem;background:var(--paper-2,rgba(0,0,0,.03))}
.journal li b{font-variant-numeric:tabular-nums;opacity:.7;font-weight:500}
.journal li.error{background:color-mix(in srgb,var(--thread) 12%,transparent)}
.journal li.done{border-inline-start:3px solid var(--agree)}
.journal li.progress span{opacity:.85}

/* اسأل راسي — الصندوق بهوية v2 */
#chatfab{position:fixed;inset:auto 1.2rem 1.2rem auto;width:58px;height:58px;border-radius:50%;border:0;background:radial-gradient(circle at 35% 35%,var(--gold-2),var(--gold) 65%);color:#241a05;font-size:1.5rem;box-shadow:0 10px 24px rgba(0,0,0,.28);cursor:pointer;z-index:60;transition:transform .25s var(--ease)}
#chatfab:hover{transform:translateY(-2px) scale(1.04)}
#chatpanel{position:fixed;inset:auto 1.2rem 5.6rem auto;width:min(380px,calc(100vw - 2.4rem));max-height:min(560px,calc(100vh - 7rem));display:none;flex-direction:column;background:var(--card);color:var(--ink);border:1px solid var(--line);border-radius:16px;box-shadow:0 18px 48px rgba(0,0,0,.28);overflow:hidden;z-index:60;direction:rtl}
#chatpanel.open{display:flex;animation:chat-in .28s var(--ease)}
@keyframes chat-in{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}
#chatpanel .chead{display:flex;justify-content:space-between;align-items:center;padding:.7rem 1rem;background:linear-gradient(180deg,var(--night-2),var(--night));color:#fff;font-family:var(--font-h)}
#chatpanel .cx{cursor:pointer;opacity:.75;padding:.2rem .4rem}#chatpanel .cx:hover{opacity:1}
#chatpanel .cbody{flex:1;overflow:auto;padding:.8rem;display:flex;flex-direction:column;gap:.5rem;background:var(--paper)}
#chatpanel .cmsg{max-width:88%;padding:.55rem .8rem;border-radius:12px;line-height:1.7;font-size:.92rem;white-space:pre-wrap;word-break:break-word}
#chatpanel .cmsg.bot{align-self:flex-start;background:var(--card);border:1px solid var(--line);border-start-end-radius:4px}
#chatpanel .cmsg.me{align-self:flex-end;background:var(--night);color:#fff;border-start-start-radius:4px}
#chatpanel .cmsg.wait{opacity:.6;animation:pulse 1s infinite}
#chatpanel .cfoot{display:flex;gap:.5rem;padding:.6rem;border-top:1px solid var(--line);background:var(--card)}
#chatpanel .cfoot input{flex:1;min-width:0}
@media (prefers-reduced-motion:reduce){#chatpanel.open{animation:none}}

/* تبويب التحليل — وضع القراءة */
.rd-bar{position:sticky;top:0;z-index:5;background:var(--paper);padding:.5rem 0;border-bottom:1px solid var(--line);display:flex;flex-direction:column;gap:.5rem}
.rd-chips{display:flex;gap:.4rem;overflow-x:auto;padding-bottom:.2rem;scrollbar-width:thin}
.rd-chips .chip{white-space:nowrap;text-decoration:none}
.rd-chips .chip b{font-variant-numeric:tabular-nums;margin-inline-start:.25rem;opacity:.75}
.rd-chips .chip.on{background:var(--night);color:#fff}
.rd-tools{display:flex;gap:.8rem;align-items:center;flex-wrap:wrap}
.rd-search{max-width:280px}
.rd-list{display:flex;flex-direction:column;gap:.5rem;max-width:min(72ch,100%)}
.rd-item{background:var(--card);border:1px solid var(--line);border-radius:12px;padding:.7rem .9rem;transition:box-shadow .2s}
.rd-item:hover{box-shadow:var(--shadow)}
.rd-item[hidden]{display:none}
.rd-head{display:flex;justify-content:space-between;gap:.8rem;align-items:flex-start;flex-wrap:wrap}
.rd-head b{font-weight:600;line-height:1.6}
.rd-meta{display:flex;gap:.3rem;flex-wrap:wrap;min-width:0;max-width:100%;align-items:center}
.rd-sub{color:var(--muted);font-size:.9rem;margin-top:.2rem}
.rd-q{display:block;margin-top:.45rem;padding:.35rem .6rem;border-inline-start:3px solid var(--gold);background:var(--paper);color:var(--ink);font-size:.88rem;line-height:1.7;quotes:"«" "»"}
.pill.pg{cursor:pointer;border:1px solid var(--line);background:var(--card);font:inherit;font-size:.8rem}
.pill.pg:hover{background:var(--gold-2)}
.rd-more{margin:.4rem 0 .8rem}
.cf-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(320px,100%),1fr));gap:.7rem}
.cf{background:var(--card);border:1px solid var(--line);border-radius:12px;padding:.8rem;border-inline-start:4px solid var(--thread)}
.cf-t{margin-bottom:.5rem}
.cf-ab{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(180px,100%),1fr));gap:.5rem;font-size:.9rem}
.cf-ab>div{background:var(--paper);border-radius:8px;padding:.5rem;line-height:1.6}
.cf-ab small{display:block;font-weight:700;color:var(--gold);margin-bottom:.2rem}
.cf-act{margin-top:.5rem;font-size:.85rem;color:var(--muted)}
.pagepane{position:fixed;inset:0 auto 0 0;width:min(520px,92vw);background:var(--card);border-inline-end:1px solid var(--line);box-shadow:0 0 40px rgba(0,0,0,.25);z-index:70;display:flex;flex-direction:column;animation:chat-in .25s var(--ease)}
.pagepane[hidden]{display:none}
.pp-head{display:flex;justify-content:space-between;align-items:center;padding:.7rem 1rem;background:var(--night);color:#fff}
.pp-x{background:none;border:0;color:#fff;font-size:1.1rem;cursor:pointer}
.pp-body{flex:1;overflow:auto;padding:1rem;white-space:pre-wrap;font:inherit;font-size:.9rem;line-height:1.9;direction:rtl}
.pp-body mark{background:var(--gold-2)}

.rd-item.thread{border-inline-start:3px solid var(--thread)}.rd-item.warn{border-inline-start:3px solid var(--gold)}.rd-item.agree{border-inline-start:3px solid var(--agree)}

/* ===== الشريط الجانبي للموقع (أمر أحمد 31616/31619) ===== */
:root{--sb-w:248px}
.sidebar{position:fixed;inset:0 0 0 auto;width:var(--sb-w);background:var(--night);color:#fff;display:flex;flex-direction:column;gap:1rem;padding:1rem .9rem;z-index:40;box-shadow:-6px 0 24px rgba(22,26,63,.25);overflow-y:auto}
.sidebar .brand{display:flex;align-items:center;gap:.6rem;font-family:var(--font-h);font-weight:700;font-size:1.1rem;text-decoration:none;color:#fff;padding:.3rem .4rem}
.sidebar .brand small{display:block;font-weight:400;opacity:.65;font-size:.7rem}
.sidebar .brand .env{width:34px;height:24px;border:2px solid var(--gold);border-radius:4px;position:relative;flex-shrink:0}
.sidebar .brand .env:before{content:"";position:absolute;inset:0;border-top:12px solid var(--gold);border-left:15px solid transparent;border-right:15px solid transparent;opacity:.9}
.sb-nav{display:flex;flex-direction:column;gap:.2rem}
.sb-nav a{display:flex;align-items:center;gap:.6rem;padding:.6rem .7rem;border-radius:10px;color:#fff;text-decoration:none;opacity:.85;font-weight:600;transition:background .2s,opacity .2s}
.sb-nav a:hover{background:rgba(255,255,255,.08);opacity:1}
.sb-nav a.on{background:rgba(255,255,255,.12);opacity:1;box-shadow:inset 3px 0 0 var(--gold)}
.sb-foot{margin-top:auto;display:flex;flex-direction:column;gap:.4rem}
.sb-foot .chip{background:rgba(255,255,255,.1);border-radius:999px;padding:.35rem .8rem;font-size:.82rem;color:#fff;text-decoration:none;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.sb-foot .chip.gold{background:var(--gold);color:#241a05;font-weight:600}
.wrap.with-sb{margin-right:var(--sb-w);max-width:none;padding:1.2rem 1.6rem 5rem}
.wrap.with-sb.narrow{max-width:900px;margin-left:auto}
.sb-toggle{display:none;position:fixed;top:.7rem;right:.7rem;z-index:45;width:44px;height:44px;border-radius:12px;border:0;background:var(--night);color:#fff;font-size:1.3rem;box-shadow:var(--shadow);cursor:pointer}
.sb-scrim{display:none;position:fixed;inset:0;background:rgba(0,0,0,.4);z-index:39}
@media (max-width:900px){
  .sidebar{transform:translateX(100%);transition:transform .28s var(--ease)}
  body.sb-open .sidebar{transform:none} body.sb-open .sb-scrim{display:block}
  .sb-toggle{display:block} .wrap.with-sb{margin-right:0;padding-top:4.2rem} .rd-bar{top:3.4rem}
  .tabs{top:0}
}
@media (prefers-reduced-motion:reduce){.sidebar{transition:none}}
/* ===== تبويبات الكراسة كقائمة جانبية ===== */
.tab-layout{display:grid;grid-template-columns:200px minmax(0,1fr);gap:1.2rem;align-items:start;margin-top:.6rem}
.tabs.side{flex-direction:column;flex-wrap:nowrap;border-bottom:0;border-inline-end:1.5px solid var(--line);margin:0;padding:.2rem .4rem .2rem 0;position:sticky;top:1rem;gap:.15rem;background:transparent}
.tabs.side .tab{text-align:start;border-radius:10px;padding:.55rem .7rem;width:100%;display:flex;justify-content:space-between;align-items:center}
.tabs.side .tab[aria-selected="true"]{background:var(--card);box-shadow:var(--shadow)}
.tabs.side .tab[aria-selected="true"]:after{left:auto;right:-2px;top:8px;bottom:8px;width:3px;height:auto;view-transition-name:tab-ink}
.tab-content{min-width:0}
@media (max-width:900px){.tab-layout{grid-template-columns:1fr}.tabs.side{position:static;flex-direction:row;flex-wrap:wrap;border:0;border-bottom:1.5px solid var(--line)}.tabs.side .tab{width:auto}}

@media (min-width:901px){#chatfab{right:calc(1.2rem + var(--sb-w))}#chatpanel{right:calc(1.2rem + var(--sb-w))}.pagepane{inset:0 auto 0 0}}
.tabs{top:0}

/* ---------- زر إيقاف المحرك + لوحة «أُوقف/تعثّر» (أمر أحمد 32431 · 32436) ---------- */
.live .who{flex-wrap:wrap}
.live .stopform{margin-inline-start:auto}
.live .stopform .btn{padding:.4rem .9rem;font-size:.85rem;box-shadow:none}
.card.halted{border-inline-start:4px solid var(--ink-3);background:var(--card-2)}
.card.halted.thread{border-inline-start-color:var(--thread)}
.card.halted .journal{max-height:190px;overflow:auto}

/* الختم يجب أن يُرى حتى مع تعطيل الحركة (الاحترام لا يعني الاختفاء) */
@media (prefers-reduced-motion:reduce){
  .envelope.sealed .seal{transform:translate(-50%,-50%) scale(1);opacity:1}
}

/* ================= المشهد المتصل: الزبدة على السطح لا خلف تبويب (أمر أحمد 32435) ================= */
.tab-layout.flow .panel{display:block;animation:none;scroll-margin-top:1rem;padding-bottom:1.5rem;margin-bottom:1.3rem;border-bottom:1px dashed var(--line)}
.tab-layout.flow .panel:last-of-type{border-bottom:0}
.sec-h{display:flex;align-items:center;gap:.55rem;font-size:1.22rem;margin:.2rem 0 .8rem}
.sec-h .sh-env{width:22px;height:16px;border:2px solid var(--night);border-radius:3px;position:relative;flex:0 0 auto}
.sec-h .sh-env:before{content:"";position:absolute;inset:0;border-top:8px solid var(--night);border-left:9px solid transparent;border-right:9px solid transparent;opacity:.9}
.tabs.side.jump{gap:.12rem}
.jump-h{padding:.15rem .7rem .4rem;font-size:.74rem}

/* المظروف المفتوح يحمل الخلاصة — لا يخفيها */
.board-env{position:relative;border:2.5px solid var(--night);border-radius:16px;background:linear-gradient(180deg,#fff,var(--card-2));box-shadow:var(--shadow);overflow:hidden;margin:.3rem 0 1rem}
.board-env .be-flap{height:30px;background:linear-gradient(180deg,var(--night-2),var(--night));clip-path:polygon(0 0,100% 0,50% 100%)}
.board-env.sealed{border-color:var(--gold)}
.board-env.sealed .be-flap{background:linear-gradient(180deg,var(--gold-2),var(--gold))}
.board-env.threaded:after{content:"";position:absolute;inset:5px;border:2px dashed var(--thread);border-radius:12px;opacity:.32;pointer-events:none}
.be-head{display:flex;align-items:baseline;gap:.6rem;flex-wrap:wrap;padding:.1rem 1rem .6rem}
.be-head b{font-family:var(--font-h);font-size:1.05rem}
.be-seal{margin-inline-start:auto;background:linear-gradient(135deg,var(--gold-2),var(--gold));color:#241a05;border-radius:999px;padding:.15rem .75rem;font-weight:700;font-size:.8rem}
.be-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(215px,100%),1fr));gap:.7rem;padding:0 1rem 1rem}
.be-t{display:flex;flex-direction:column;gap:.12rem;text-decoration:none;color:inherit;background:#fff;border:1px solid var(--line);border-inline-start:4px solid var(--ink-3);border-radius:10px;padding:.7rem .85rem;transition:transform var(--t) var(--ease),box-shadow var(--t)}
.be-t:hover{transform:translateY(-2px);box-shadow:var(--shadow)}
.be-t small{color:var(--ink-3);font-size:.78rem}
.be-t b{font-family:var(--font-h);font-size:1.05rem}
.be-t b.dim{color:var(--ink-3);font-weight:500}
.be-t .be-n{font-family:var(--font-h);font-size:1.7rem;font-weight:700;line-height:1.2}
.be-t .be-n i{font-size:.78rem;font-style:normal;color:var(--ink-3);margin-inline-start:.25rem;font-weight:500}
.be-t .muted{font-size:.78rem;line-height:1.5}
.be-t.agree{border-inline-start-color:var(--agree)}
.be-t.thread{border-inline-start-color:var(--thread)}
.be-t.warn{border-inline-start-color:var(--warn)}

@media (max-width:900px){
  .tab-layout.flow .tabs.side.jump{position:sticky;top:0;z-index:12;background:var(--paper);padding:.45rem 0;padding-inline-start:3.4rem;overflow-x:auto;flex-wrap:nowrap;gap:.35rem;border-bottom:1px solid var(--line)}
  .tab-layout.flow .rd-bar{top:3.1rem}
  .tabs.side.jump .tab{white-space:nowrap;border:1.5px solid var(--line);border-radius:999px;padding:.35rem .8rem;font-size:.85rem;width:auto}
  .tabs.side.jump .tab[aria-selected="true"]{background:var(--night);color:#fff;box-shadow:none}
  .tabs.side.jump .tab[aria-selected="true"]:after{display:none}
  .jump-h{display:none}
  .be-grid{grid-template-columns:1fr}
}

/* أسماء ملفات طويلة بلا مسافات كانت تدفع الصفحة أفقياً بالجوال — الكسر عند الحاجة لا تمرير الجسد */
h1,h2,h3,.sec-h,.be-t,.envcard b,.rd-head b{overflow-wrap:anywhere}
body{overflow-x:hidden}

/* ================= إصلاح الجوال الحقيقي (بلاغ أحمد 32448 · لقطة 13:41) =================
   السبب الأول: «شارة» طويلة (مصدر بند التدقيق) لا تلتف ⇒ تدفع الصفحة إلى 523px على شاشة 390
   فيُصغّر المتصفح كل شيء ويقصّ الكلمات (صناديق بيضاء بكلمات مقطوعة).
   السبب الثاني: متصفح داخل تطبيق أندرويد يتجاهل viewport meta ويبلّغ عرضاً 980px على جهاز 412
   ⇒ @media (max-width:900px) لا تنطبق أصلاً ⇒ الشريط الجانبي ينفتح فوق المحتوى. */
.pill{max-width:100%;white-space:normal;overflow-wrap:anywhere;text-align:start}
.rd-item,.card,.be-t,.note,.brain,.cf{min-width:0;overflow-wrap:anywhere}
.journal li>span,.live li>span{min-width:0;overflow-wrap:anywhere}
.live li{flex-wrap:wrap}
.rd-q,.rd-sub,.cf-ab>div{overflow-wrap:anywhere}
.envcard,.envcard *{min-width:0}
.stat b{overflow-wrap:anywhere}

/* شبكة ضيقة حقيقية: نفس قواعد @media (max-width:900px) لكن ببوابتين إضافيتين —
   عرض الجهاز الفعلي (يعمل بلا جافاسكربت) وصنف is-narrow (يضعه سكربت الرأس من screen.width). */
@media (max-device-width:900px){
  .sidebar{transform:translateX(100%)}
  body.sb-open .sidebar{transform:none} body.sb-open .sb-scrim{display:block}
  .sb-toggle{display:block} .wrap.with-sb{margin-right:0;padding-top:4.2rem}
}
html.is-narrow .sidebar{transform:translateX(100%);transition:transform .28s var(--ease)}
html.is-narrow body.sb-open .sidebar{transform:none}
html.is-narrow body.sb-open .sb-scrim{display:block}
html.is-narrow .sb-toggle{display:block}
html.is-narrow .wrap.with-sb{margin-right:0;padding:4.2rem .9rem 5rem}
html.is-narrow .wrap.with-sb.narrow{max-width:none}
html.is-narrow .rd-bar{top:3.4rem}
html.is-narrow .tabs{top:0}
html.is-narrow .tab-layout{grid-template-columns:1fr}
html.is-narrow .tabs.side{position:static;flex-direction:row;flex-wrap:wrap;border:0;border-bottom:1.5px solid var(--line)}
html.is-narrow .tabs.side .tab{width:auto}
html.is-narrow .tab-layout.flow .tabs.side.jump{position:sticky;top:0;z-index:12;background:var(--paper);padding:.45rem 0;padding-inline-start:3.4rem;overflow-x:auto;flex-wrap:nowrap;gap:.35rem;border-bottom:1px solid var(--line)}
html.is-narrow .tabs.side.jump .tab{white-space:nowrap;border:1.5px solid var(--line);border-radius:999px;padding:.35rem .8rem;font-size:.85rem;width:auto}
html.is-narrow .tabs.side.jump .tab[aria-selected="true"]{background:var(--night);color:#fff;box-shadow:none}
html.is-narrow .tabs.side.jump .tab[aria-selected="true"]:after{display:none}
html.is-narrow .jump-h{display:none}
html.is-narrow .tab-layout.flow .rd-bar{top:3.1rem}
html.is-narrow .be-grid{grid-template-columns:1fr}
html.is-narrow .login{grid-template-columns:1fr}
html.is-narrow .login .story{padding:2rem}
html.is-narrow #chatfab{right:1.2rem}
html.is-narrow #chatpanel{right:1.2rem}
html.is-narrow .rail ol{min-width:640px}
@media (prefers-reduced-motion:reduce){html.is-narrow .sidebar{transition:none}}

/* حقل اختيار الملفات عرضه ذاتي (زر + نص «لم يتم اختيار أي ملف») ≈ 398px ⇒ يوسّع الصفحة على 360/390 */
.drop input[type=file]{max-width:100%;font-size:.86rem}


/* ── رسائل الخطأ داخل الصفحة (لقطة أحمد 32463: JSON خام على صفحة سوداء) ──────
   قاعدتان: الرسالة **بجانب الزر الذي سبّبها** لا برأس الصفحة (وقاص وأحمد يضغطان
   بالجوال فلا يريان أعلاها)، وتبقى الصفحة كما هي فلا يُفقد ما كُتب بالنموذج. */
.flash-err,.form-err{background:#3b0d0d;border:1px solid #7f1d1d;color:#fecaca;
  border-radius:.6rem;padding:.7rem .9rem;margin:.6rem 0;font-size:.92rem;line-height:1.7}
.flash-err[hidden],.form-err[hidden]{display:none}
.form-err{margin:.5rem 0 0}
.form-err b{color:#fff}
.seal-track.locked{opacity:.5;pointer-events:none}
.seal-track.locked .hint::after{content:" — أكمل التبرير أولاً"}

/* ═══ إصلاحات مراجعة الواجهة (أمر أحمد 2026-08-30، رسالة 2065) ═══
   المبدأ الحاكم للنقد: الشاشة كانت «نظام معلومات» أكثر منها «أداة قرار».
   وهذه تصحّح الهرمية لا الهوية — الهوية (Navy + Gold) بقيت كما هي. */

/* ① الشريط الجانبي أضيق وأهدأ — كان 248px لوظائف ثلاث */
:root{--sb-w:196px}
.sidebar{padding:.9rem .7rem;gap:.8rem}
.sidebar .brand{font-size:1rem}
.sidebar .brand small{font-size:.66rem;opacity:.55}
.sb-nav a{padding:.5rem .6rem;font-weight:500;font-size:.93rem}
.sb-foot .chip{font-size:.76rem;padding:.3rem .7rem;opacity:.9}

/* ② هرمية النص بكتل السؤال/الجواب — كانت كلها بحجمٍ واحدٍ رمادي
   فيقرأ المستخدم السؤالَ والجوابَ والمصدرَ والحالةَ بعينٍ واحدةٍ معاً */
.rd-item .rd-head b{font-size:1.02rem;font-weight:700;line-height:1.5;color:var(--ink)}
.rd-item .rd-sub{font-size:.95rem;line-height:1.75;color:var(--ink)}
.rd-item .rd-meta,.rd-item .rd-meta *{font-size:.78rem;color:var(--ink-2)}

/* ③ الذهبي للفعل والمهم وحدَه — كان على الحدود والعدادات والخطوط فيفقد معناه */
.pill.gold{background:transparent;color:var(--ink-2);border:1px solid var(--line)}
.rail .fill{box-shadow:none}
.note{border-inline-start-width:3px}

/* ④ بطاقة القرار هي البطل بالشاشة — لا بطاقةٌ وسط بطاقات */
.card.decision{background:linear-gradient(180deg,var(--card),var(--card-2));
  border:1px solid var(--line);box-shadow:0 8px 28px rgba(22,26,63,.10);padding:1.1rem 1.2rem}
.card.decision .muted{opacity:.85}

/* ⑤ سكة المحطات: المحطة الحالية بارزة والباقي هادئ — كانت الأربع عشرة بوزنٍ واحد */
.st.locked{opacity:.55}
.st.locked .lbl{color:var(--ink-2);opacity:.7}
.st.human .lbl,.st.active .lbl{font-weight:700;font-size:.8rem;color:var(--ink)}

/* ═══ الدفعة الثانية — بقية المراجعة (أمر أحمد 2026-08-30، رسالة 2067) ═══ */

/* ⑥ لا بطاقةَ داخلَ بطاقة: الداخليةُ تصير قسماً — كان التصميمُ يتجانس حتى يذوب */
.card .card,.panel .card .card{border:0;box-shadow:none;background:transparent;padding:.2rem 0}
.card .card + .card{border-top:1px solid var(--line);border-radius:0;padding-top:.7rem;margin-top:.7rem}

/* ⑦ التبويبات تنزلق أفقياً بدل أن تلتفّ سطرين — أحدَ عشرَ تبويباً تضغط حتى على 1920 */
.tabs{flex-wrap:nowrap;overflow-x:auto;scrollbar-width:thin;-webkit-overflow-scrolling:touch}
.tabs::-webkit-scrollbar{height:4px}
.tabs::-webkit-scrollbar-thumb{background:var(--line);border-radius:4px}
.tab{white-space:nowrap;flex:0 0 auto}

/* ⑧ العدّادات مؤشراتٌ ثانوية لا أرقامٌ تنافس القرار — كانت ثمانيةَ أرقامٍ بوزنٍ واحد */
.tab .cnt{font-size:.72rem;font-weight:600;opacity:.65;background:var(--paper-2,rgba(0,0,0,.05));
  border-radius:999px;padding:.05rem .4rem;margin-inline-start:.25rem}
.tab .cnt.thread{opacity:1}
.tab[aria-selected="true"] .cnt{opacity:.9}

/* ⑨ لوحة «آخر نشاط» تملأ الفراغ بما ينفع لا بحشو */
.recent{margin-top:.9rem}
.recent h3{font-size:.92rem;color:var(--ink-2);font-weight:600;margin:0 0 .5rem}
.recent ol{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.15rem}
.recent li{display:grid;grid-template-columns:4.6rem 1fr;gap:.6rem;padding:.32rem .5rem;
  border-radius:.5rem;font-size:.88rem;line-height:1.6}
.recent li:nth-child(odd){background:var(--paper-2,rgba(0,0,0,.03))}
.recent li b{color:var(--ink-2);font-weight:600;font-variant-numeric:tabular-nums}
.recent li.err span{color:var(--thread)}

/* ═══ جولة P1 بعد إعادة تقييم جي بي تي (8.6/10) — أمر أحمد 2026-08-30 ═══
   لا P0 باقية؛ وهذه الأربع التي حدّدها، بترتيبه. */

/* P1.1 — استغلالُ عرضِ الشاشة: المحتوى كان بعمودٍ ضيّقٍ (72ch) على شاشةٍ عريضة،
   وهذه منصةُ عملٍ يجلس عليها المستخدم ساعاتٍ لا مقالٌ يُقرأ مرة. */
@media (min-width:1400px){ .wrap{max-width:1480px} }
@media (min-width:1750px){ .wrap{max-width:1680px} }
.rd-list{max-width:100%}
@media (min-width:1200px){
  .rd-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(460px,100%),1fr));
    gap:.6rem;align-items:start}
}
@media (min-width:1500px){ .tab-layout{grid-template-columns:216px minmax(0,1fr)} }

/* P1.2 — سطحُ القرار مستقلٌّ بصرياً عن الأرقامِ المساندة: كان بطاقةً وسط بطاقات،
   والمستخدمُ لا يدخل ليسأل «كم عدد الأشياء» بل «هل ندخل المناقصة وما يمنعنا». */
.card.decision{border:0;border-inline-start:6px solid var(--night);
  background:linear-gradient(135deg,#fff,var(--card-2) 60%);box-shadow:0 10px 34px rgba(22,26,63,.13);
  padding:1.25rem 1.4rem;border-radius:var(--r)}
.card.decision .verdict{font-size:2.9rem;font-weight:800;letter-spacing:-1px;line-height:1.05}
.card.decision .verdict.no{color:var(--thread)} .card.decision .verdict.go{color:var(--agree)}
.card.decision .lbl{font-size:.78rem;color:var(--ink-2);text-transform:none;letter-spacing:.2px}
.card.decision .sup{font-size:1.05rem;font-weight:600}
/* الأرقامُ المساندةُ أخفتُ وزناً من القرار — تُقرأ بعده لا معه */
.board-env .card b,.board-env .card strong{font-weight:600}

/* P1.3 — فصلُ تنقلِ المنصة عن تنقلِ الكراسة: الأولُ داكنٌ ثابت، والثاني فهرسٌ للكراسة. */
.tabs.side{background:transparent}
.tabs.side .railhead{font-size:.72rem;color:var(--ink-3);font-weight:700;letter-spacing:.3px;
  padding:.1rem .7rem .45rem;border-bottom:1px dashed var(--line);margin-bottom:.35rem}
.tabs.side .tab{font-weight:500;color:var(--ink-2)}
.tabs.side .tab[aria-selected="true"]{font-weight:700;color:var(--ink);
  box-shadow:inset 3px 0 0 var(--gold),var(--shadow)}

/* P1.4 — إظهارُ الدليلِ عند الطلب: البندُ أولاً، والمصدرُ بنقرة. */
.rd-item details>summary{cursor:pointer;font-size:.82rem;color:var(--ink-2);list-style:none;
  padding:.25rem 0;user-select:none}
.rd-item details>summary::-webkit-details-marker{display:none}
.rd-item details>summary:before{content:"عرض الدليل ▾";}
.rd-item details[open]>summary:before{content:"إخفاء الدليل ▴";}

/* ═══ جولة P1/P2 بعد تقييم 9.1 — أمر أحمد «عالج كل شيء» ═══ */

/* درجُ الدليل: المصدرُ والصفحةُ والنصُّ وإجراءان — لأن المنتجَ يقوم على تتبّعِ الأثر:
   العقلُ يقول شيئاً، والإنسانُ يجب أن يصل مصدرَه بنقرةٍ لا ببحث. */
.ev-drawer{border-inline-start:3px solid var(--gold);background:var(--card-2);
  border-radius:0 var(--r-s) var(--r-s) 0;padding:.6rem .8rem;margin-top:.35rem}
.ev-src{font-size:.76rem;color:var(--ink-2);font-weight:600;margin-bottom:.35rem}
.ev-acts{display:flex;gap:.4rem;margin-top:.5rem;flex-wrap:wrap}
.ev-acts .pill{cursor:pointer;border:1px solid var(--line);background:#fff}
.ev-acts .pill:hover{background:var(--paper-2,rgba(0,0,0,.04))}

/* عرضٌ بحسب نوع المحتوى: الجداولُ والشبكاتُ تتمدد، والنصُّ السرديُّ يبقى مقروءاً.
   (تحفّظُ جي بي تي على P1.1: توسيعُ كلِّ شيءٍ ليس تحسيناً.) */
.rd-item .rd-sub,.rd-item .rd-q,.recent li span,.note{max-width:92ch}
.board-env .card .muted{max-width:78ch}

/* إيقاعٌ منتظمٌ لشبكة المتطلبات: البطاقةُ المطويّة بارتفاعٍ متقارب فيمسحها البصرُ
   صفّاً صفّاً، وتتمدد عند فتحِ دليلها. */
@media (min-width:1200px){
  .rd-list .rd-item{min-height:5.6rem;display:flex;flex-direction:column;justify-content:flex-start}
  .rd-list .rd-item:has(details[open]){min-height:0}
}

/* تدرّجُ خطورةِ مخرجاتِ العقول: ليست كلُّ ملاحظةٍ بوزنٍ واحد. */
.rd-item.sev-hi{border-inline-start:3px solid var(--thread)}
.rd-item.sev-md{border-inline-start:3px solid var(--gold)}
.rd-item.sev-lo{border-inline-start:3px solid var(--line)}

/* التدقيقُ يجيب سؤالَ القرار: كم يمنع التسليم · كم يحتاج نظرة · كم اكتمل. */
.audit-sum{display:flex;gap:.6rem;flex-wrap:wrap;margin:.2rem 0 .8rem}
.audit-sum .b{flex:1 1 9rem;border:1px solid var(--line);border-radius:var(--r-s);
  padding:.6rem .8rem;background:var(--card)}
.audit-sum .b b{display:block;font-size:1.6rem;line-height:1.2;font-weight:700}
.audit-sum .b.blk{border-inline-start:4px solid var(--thread)}
.audit-sum .b.wrn{border-inline-start:4px solid var(--gold)}
.audit-sum .b.ok{border-inline-start:4px solid var(--agree)}

/* ═══ الجولة الأخيرة (تقييم 9.5 · لا P0) ═══ */
.card.decision .jump{color:inherit;text-decoration:none;border-bottom:2px solid var(--gold);padding-bottom:1px;transition:color var(--t)}
.card.decision .jump:hover{color:var(--night);border-bottom-color:var(--night)}
.rail .st.locked .lbl{opacity:.42;font-size:.68rem}
.rail .st.done .lbl{opacity:.62}
.rail .st.human .lbl,.rail .st.active .lbl{opacity:1;font-weight:700}
.rail .st.locked .dot{opacity:.3;border-width:2px}
.rail .st .lbl{max-width:7.5rem;margin-inline:auto;overflow:hidden;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}
.rail .st.human .lbl,.rail .st.active .lbl{-webkit-line-clamp:3}
@media (min-width:1200px){
  .rd-list .rd-item{box-shadow:none;border:1px solid var(--line);background:transparent}
  .rd-list .rd-item:hover{background:var(--card)}
  .rd-list .rd-item .rd-head b{font-size:1.0rem}
}

/* ═══ طبقةُ الحركة (أمر أحمد: «الحركة داخل الموقع أهم شي» + «العرضُ الحيّ يبيّن
   للعميل الشغلَ جارياً بلا فضحِ الجانب التقني») ═══
   كلُّ حركةٍ هنا تحمل معنى: تقول «يعمل الآن» أو «هذا جديد» أو «هذا يُجلب».
   ولا حركةَ زخرفية — ومن اختار تقليلَ الحركة بنظامه يُعفى منها كلِّها (أسفل). */

/* ① شريطُ عملٍ حيٌّ أعلى اللوحة — يقول «جارٍ» بلا كلمات */
.live[data-on]{position:relative;overflow:hidden}
.live[data-on]:before{content:"";position:absolute;top:0;right:0;height:3px;width:38%;
  background:linear-gradient(90deg,transparent,var(--gold-2),transparent);animation:sweep 2.1s linear infinite}
@keyframes sweep{from{transform:translateX(120%)}to{transform:translateX(-260%)}}

/* ② السطرُ الجديد يدخل من أسفل ويضيء لحظةً ثم يهدأ — العينُ تلتقط الجديدَ بلا بحث */
.live li{animation:linein .45s var(--ease) both}
@keyframes linein{from{opacity:0;transform:translateY(8px)}to{opacity:.85;transform:none}}
.live li:last-child{opacity:1}
.live li:last-child b{color:#fff}
/* 🔴 خُفِّف بملاحظةِ المراجعة: الوميضُ القويُّ بمجرى أحداثٍ سريعٍ يتحوّل من
   «وصل جديد» إلى «شيءٌ يزعج العين». تأكيدٌ جانبيٌّ قصيرٌ يكفي. */
.live li:last-child:after{content:"";position:absolute;inset-inline-start:-.5rem;top:.15rem;
  bottom:.15rem;width:2px;border-radius:2px;background:var(--gold-2);
  animation:emph 1.6s var(--ease) forwards;pointer-events:none}
@keyframes emph{0%{opacity:1}70%{opacity:.55}100%{opacity:0}}
.live li{position:relative}

/* ③ نبضةُ «يكتب الآن» بعد آخر سطر — إشارةُ استمرارٍ لا نصّ */
.live[data-on] ul:after{content:"";display:block;width:6px;height:6px;border-radius:50%;
  background:var(--gold-2);margin:.35rem 0 0 .2rem;animation:typing 1.2s infinite}
@keyframes typing{0%,100%{opacity:.25;transform:scale(.8)}50%{opacity:1;transform:scale(1.25)}}

/* ④ المحطةُ الجارية تنبض بالسكة، والمكتملةُ تستقر */
.rail .st.active .dot{animation:spin-ring 1.2s linear infinite,glow 1.8s ease-in-out infinite}
@keyframes glow{0%,100%{box-shadow:0 0 0 0 rgba(90,120,255,.35)}50%{box-shadow:0 0 0 9px rgba(90,120,255,0)}}
.rail .fill{transition:width 1.1s var(--ease)}

/* ⑤ هيكلٌ وامضٌ أثناء جلبِ الدفعة — الانتظارُ يُرى بدل أن يبدو تجمّداً */
.rd-skel{height:5.4rem;border-radius:var(--r-s);border:1px solid var(--line);
  background:linear-gradient(100deg,var(--card) 30%,var(--card-2) 50%,var(--card) 70%);
  background-size:220% 100%;animation:shimmer 1.25s linear infinite}
@keyframes shimmer{from{background-position:220% 0}to{background-position:-20% 0}}

/* ⑥ حركةٌ عامةٌ هادئة: البطاقةُ ترتفع قليلاً، والأزرارُ تستجيب، والأقسامُ تدخل بسلاسة */
.card,.rd-item,.audit-sum .b{transition:transform .18s var(--ease),box-shadow .18s var(--ease),background .18s}
.card:hover,.audit-sum .b:hover{transform:translateY(-2px)}
.rd-item:hover{transform:translateY(-1px)}
.btn{transition:transform .14s var(--ease),filter .14s}
.btn:hover{transform:translateY(-1px);filter:brightness(1.04)}
.btn:active{transform:translateY(0) scale(.985)}
.tab{transition:background .18s,color .18s,box-shadow .18s}
details.rd-ev>div{animation:linein .28s var(--ease) both}

/* ⑦ من يطلب تقليلَ الحركة لا يُجبَر عليها — قاعدةُ وصولٍ لا رفاهية */
@media (prefers-reduced-motion:reduce){
  .live[data-on]:before,.live[data-on] ul:after,.rd-skel,.rail .st.active .dot{animation:none}
  .card:hover,.rd-item:hover,.btn:hover,.audit-sum .b:hover{transform:none}
}

/* ═══ الأيقونات (أمر أحمد: «راجع الأيقونات والشكل يكون مودرن») ═══
   المقياسُ 47 رمزاً ملوّناً بالصفحة — تزاحم هويةَ الأزرقِ والذهبي وتُشتّت العين.
   والقاعدةُ المطبَّقة: **رمزُ البنيةِ يهدأ، ورمزُ المعنى يبقى ملوّناً**؛
   فاللونُ يعني شيئاً حين لا يكون كلُّ شيءٍ ملوّناً. ولا حذفَ لرمزٍ — تهدئةٌ فقط. */
.tabs .tab,.sec-h,.rd-bar .chip,.sb-nav a,.rail .st .lbl{
  font-variant-emoji:text}
.tabs .tab::first-letter,.sec-h::first-letter,.sb-nav a::first-letter{
  filter:grayscale(1) opacity(.55)}
h3[id^="sec-"]::first-letter{filter:grayscale(1) opacity(.5)}
/* رموزُ الحالةِ تبقى بلونها: هي معلومةٌ لا زينة */
.pill,.rd-item .rd-meta,.audit-sum .b,.live li,.st .dot{font-variant-emoji:emoji}
.pill::first-letter,.audit-sum .b::first-letter{filter:none}
/* مقاسٌ وارتفاعٌ موحّدان فلا ترقص الأسطر */
.sec-h,.tabs .tab,.sb-nav a{line-height:1.5}

/* ═══ إتاحةُ الوصول — أكبرُ فجوةٍ بين 9.7 و10 بحسب المراجعة ═══ */

/* ① التركيزُ يُرى دائماً وبوضوح — لا يُلغى بأيِّ حال */
:where(a,button,summary,[tabindex]):focus-visible{outline:3px solid var(--gold-2);
  outline-offset:3px;border-radius:6px}
.tabs .tab:focus-visible{outline-offset:-2px}
/* ② «عرض الدليل» عنصرٌ يُركَّز عليه بلوحة المفاتيح ويُفتح بالمسافة/الإدخال (سلوكُ details الأصلي) */
.rd-item details>summary{outline-offset:2px}
.rd-item details>summary:focus-visible{background:var(--gold-bg);border-radius:6px}
/* ③ روابطُ القفزِ داخل بطاقة القرار تُرى بالتركيز لا بالمرور فقط */
.card.decision .jump:focus-visible{color:var(--night);border-bottom-color:var(--night)}

/* ④ تقليلُ الحركة ≠ إلغاءُ الإفادةِ البصرية: الحالةُ تبقى، الحركةُ تسكن. */
@media (prefers-reduced-motion:reduce){
  .live[data-on]:before{content:"";animation:none;width:100%;opacity:.5}
  .live[data-on] ul:after{animation:none;opacity:.9}
  .rd-skel{animation:none;background:var(--card-2)}
  .rail .st.active .dot{animation:none;box-shadow:0 0 0 6px rgba(90,120,255,.25)}
  .live li:last-child:after{animation:none;opacity:.8}
}

/* ⑤ لا يُعتمد اللونُ وحدَه للمعنى — لكلِّ لونٍ نصُّه (مطبَّقٌ أصلاً بالمحتوى،
   وهذا يضمنه بصرياً بعلامةٍ صغيرةٍ قبل الشارات الحرجة). */
.pill.thread:before{content:"● ";font-size:.7em;vertical-align:middle}
.pill.warn:before{content:"▲ ";font-size:.7em;vertical-align:middle}
.pill.agree:before{content:"✓ ";font-size:.8em}

/* أيقوناتُ النظامِ الموحّدة — مقاسٌ من المرتكزات ولونٌ موروثٌ من النص */
.ico{display:inline-block;vertical-align:-.18em;flex:0 0 auto}
.ico-sm{width:var(--ic-sm);height:var(--ic-sm)}
.ico-md{width:var(--ic-md);height:var(--ic-md)}
.ico-lg{width:var(--ic-lg);height:var(--ic-lg)}
.sb-nav a .ico,.sec-h .ico,h3[id^="sec-"] .ico{opacity:.72}
.sb-nav a.on .ico{opacity:1;color:var(--gold-2)}

/* اسمُ المحطة: القصيرُ افتراضاً، والكاملُ للحاليةِ وعند المرورِ أو التركيز */
.rail .st .l-full{display:none}
.rail .st .l-short{display:inline}
.rail .st.human .l-full,.rail .st.active .l-full,
.rail .st:hover .l-full,.rail .st:focus-within .l-full{display:inline}
.rail .st.human .l-short,.rail .st.active .l-short,
.rail .st:hover .l-short,.rail .st:focus-within .l-short{display:none}

/* 🔴 حقلُ مبرّرِ الاعتماد: حدُّه كان بلون `--line` الفاتح فلا يُرى إلا عند النقر،
   فيظنّه القارئُ نصَّ مثالٍ لا خانةَ كتابة (رصدُ أحمد 2026-08-31 بالتجربة الحية).
   وهو **إلزاميٌّ** لا اختياري، فيجب أن يُرى أنه خانةٌ تُملأ قبل أن يُسحب الختم. */
.need-note{border:2px solid var(--night);background:#fffdf5;box-shadow:0 0 0 3px rgba(0,0,0,.04)}
.need-note::placeholder{color:#6b6b6b;opacity:1}
.need-note:focus{outline:2px solid var(--gold,#d4a017);outline-offset:1px}

/* وسمُ قائلِ السطر بالسجل: يُقرأ كأنه اسمُ متحدّثٍ لا جزءٌ من الجملة. */
.who{color:var(--gold,#d4a017);font-weight:700;margin-inline-end:.15rem}
.who::after{content:" —";color:inherit;opacity:.7}

/* بطاقتا الناقدين: «ما ينقص» بنودٌ مستقلةٌ لا فقرةٌ ملحومة (رصده أحمد 2026-09-01) */
.crit-card{margin-bottom:.9rem}
.crit-top{display:flex;align-items:center;gap:.5rem}
.crit{border:1px solid var(--line);border-radius:10px;padding:.6rem .85rem;margin-top:.6rem}
.crit-head{display:flex;justify-content:space-between;align-items:center;gap:.6rem;flex-wrap:wrap}
.crit .gaps{margin:.55rem 0 0;padding-inline-start:1.15rem}
.crit .gaps li{margin:.3rem 0;line-height:1.75;color:var(--muted)}
/* 🔴 الطيُّ كان بلا أثرٍ خارجَ لوحةِ التحليل: applyFilters محصورةٌ بها، ولا قاعدةَ
   تُخفي [data-folded]. فكان زرُّ «أظهر الباقي» يَعِد ببنودٍ ظاهرةٍ سلفاً.
   لوحةُ التحليل تُترك لـapplyFilters كي لا يُكسر البحثُ داخلَ المطويّ. */
.panel:not([data-panel="analysis"]) .rd-item[data-folded]{display:none}

/* ── شاشةُ الفرص (تصميم كودكس · أمر أحمد «زي شاشات البورصة» 2026-09-01) ──
   الهويةُ هي هويةُ راسي نفسِها: الكحليُّ والذهبيُّ ومتغيراتُ اللوحةِ القائمة،
   لا لوحةً ثانيةً تُنبت داخلَ المنتج. الكثافةُ هي الفكرة: القرارُ يُتخذ بمسحِ
   عشراتِ الصفوفِ بالعين، فالصفُّ ضيقٌ واللونُ يحمل معنىً واحداً — ضغطُ الموعد. */
.mkt-strip{display:flex;gap:.5rem;flex-wrap:wrap;margin:.9rem 0 .6rem}
.tk{flex:1 1 8.5rem;background:var(--card);border:1px solid var(--line);
    border-radius:10px;padding:.5rem .7rem;display:flex;flex-direction:column;gap:.1rem}
.tk-l{font-size:.72rem;color:var(--muted)}
.tk-v{font-size:1.35rem;line-height:1.1;font-variant-numeric:tabular-nums}
.tk-n{font-size:.68rem;color:var(--muted)}
.tk.primary{border-inline-start:3px solid var(--gold)}
.tk.danger .tk-v{color:#B91C1C}.tk.warning .tk-v{color:#B45309}.tk.success .tk-v{color:#15803D}

.mkt-wrap{overflow-x:auto}
table.mkt{width:100%;border-collapse:collapse;font-size:12px}
table.mkt thead th{position:sticky;top:0;background:var(--navy,#3B3F8F);color:#fff;
    font-size:11px;font-weight:600;padding:.45rem .5rem;text-align:start;white-space:nowrap}
table.mkt tbody tr{height:44px;border-bottom:1px solid var(--line)}
table.mkt tbody tr:hover{background:rgba(59,63,143,.05)}
table.mkt td{padding:.3rem .5rem;vertical-align:middle}
.c-name b{font-size:13px;font-weight:700;display:block;max-width:26rem;
    overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.c-ag{max-width:13rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.c-date,.c-num{white-space:nowrap;font-variant-numeric:tabular-nums;color:var(--muted)}
.c-price b{font-variant-numeric:tabular-nums}
.mkt .sm{display:block;font-size:11px;color:var(--muted)}
.only-narrow{display:none}

/* شارةُ الإلحاح — المعنى الوحيدُ الذي يحمله اللونُ بهذه الشاشة */
.u{display:inline-block;padding:.12rem .5rem;border-radius:999px;font-size:11px;
   font-weight:700;white-space:nowrap}
.u-red{background:#FEE2E2;color:#B91C1C}
.u-amber{background:#FEF3C7;color:#B45309}
.u-green{background:#DCFCE7;color:#15803D}
.band{font-size:11px}
.b-free{color:#15803D}.b-low{color:#15803D}.b-mid{color:#B45309}.b-high{color:#B91C1C}
.btn.go{padding:.22rem .6rem;font-size:11px;background:var(--navy,#3B3F8F);color:#fff;
        border-radius:7px;text-decoration:none;white-space:nowrap}
@media (max-width:900px){
  .c-act,.c-type,.c-num,.c-date:nth-of-type(8){display:none}
  table.mkt tbody tr{height:52px}
  .c-name b{white-space:normal;max-width:none;
            display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}
  .only-narrow{display:block}
}

/* 🔴 الكثافةُ هي التصميمُ نفسُه: أسماءُ الأنشطةِ الرسميةِ طويلةٌ جداً
   («التشغيل والصيانة والنظافة للمنشآت - التشغيل وصيانة الطرق») فالتفَّت لسبعةِ
   أسطرٍ وصار الصفُّ 110px بدل 44 — فانهارت فكرةُ المسحِ البصري. تُقصُّ بحدٍّ
   وتبقى كاملةً بالتلميح، فلا تضيع معلومة. */
table.mkt td{max-width:0}
.c-act{max-width:9rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.c-type{max-width:6rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.c-price{white-space:nowrap;max-width:11rem}
.c-price .band{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:11rem}
.c-days,.c-go{white-space:nowrap;width:1%}
.c-name{max-width:28rem}

/* 🔴 الزرُّ الأساسيُّ كان يُقصُّ خارجَ الإطار: مجموعُ الأعمدةِ تجاوز العرض.
   الإجراءُ يُثبَّت بطرفِ الجدولِ فيبقى مرئياً مهما ضاقت الشاشة — لأنه الفعلُ
   الوحيدُ بالصفحة، وزرٌّ لا يُرى كأنه غيرُ موجود. */
table.mkt{table-layout:auto}
.c-name{max-width:19rem}
.c-ag{max-width:10rem}
.c-go{position:sticky;inset-inline-start:0;background:var(--card);z-index:2;
      box-shadow:-6px 0 6px -6px rgba(0,0,0,.18)}
table.mkt tbody tr:hover .c-go{background:#EEF0FB}

/* 🔴 عمودا التاريخِ أخذا 363px والزرُّ انضغط إلى 16px فاختفى. تُثبَّت عروضُ
   الأعمدةِ الثابتةِ الطولِ (تاريخٌ ورقمٌ وشارةٌ وزر) ويبقى الفائضُ للاسمِ والجهة. */
table.mkt th.c-date,table.mkt td.c-date{width:5.6rem;max-width:5.6rem;font-size:11px}
table.mkt th.c-num,table.mkt td.c-num{width:6rem;max-width:6rem;font-size:11px}
table.mkt th.c-days,table.mkt td.c-days{width:4.2rem}
table.mkt th.c-go,table.mkt td.c-go{width:6.2rem;min-width:6.2rem}
.tk.gold{border-inline-start:3px solid var(--gold)}
.tk.gold .tk-v{color:#B45309}
/* وسمُ «جديد» — كلمةٌ لا زخرفة: تُقرأ بالمسحِ ولا تُزاحم الاسم */
.nw{background:var(--gold);color:#231a00;font-size:10px;font-weight:700;
    padding:.05rem .35rem;border-radius:4px;vertical-align:middle}
.opp-filters{display:flex;gap:.6rem;align-items:center;flex-wrap:wrap;margin:.2rem 0 .7rem;
  background:var(--card);border:1px solid var(--line);border-radius:10px;padding:.5rem .7rem}
.opp-filters input[type=search]{flex:1 1 18rem;min-width:12rem;padding:.35rem .6rem;
  border:1px solid var(--line);border-radius:8px;font-size:12px}
.opp-filters label{display:flex;align-items:center;gap:.3rem;font-size:12px;white-space:nowrap}
.opp-filters select{padding:.25rem .4rem;border:1px solid var(--line);border-radius:7px;font-size:12px}

/* 🔴 معيارُ اللمسِ باستاندر ألارا: الأزرارُ 54px فأكثر بالجوال (كانت 25px).
   الشاشةُ تُقرأ بسطحِ المكتبِ وتُستعمل باليدِ على الهاتف — والمقاسُ ليس ذوقاً. */
@media (max-width:900px){
  .btn.go{min-height:54px;display:flex;align-items:center;justify-content:center;
          padding:.5rem .8rem;font-size:13px}
  .opp-filters input[type=search]{min-height:48px;font-size:14px}
  .opp-filters select{min-height:44px;font-size:13px}
  .opp-filters label{min-height:44px}
  table.mkt tbody tr{height:auto;min-height:64px}
}

/* 🔴 خانةُ البحثِ كانت بيضاءَ على بطاقةٍ بيضاءَ بحدٍّ شعريّ — موجودةٌ ولا تُرى
   (رصدَها أحمد بلمحة). الحقلُ يُرى بحدِّه وأرضيتِه لا بمكانِه. */
.opp-filters{background:#F1F2F7}
.opp-filters input[type=search]{background:#fff;border:1.5px solid #C7CBDA;
  min-height:40px;padding-inline-start:2.1rem;
  background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%236B7280' stroke-width='2'><circle cx='11' cy='11' r='7'/><path d='M20 20l-3.5-3.5'/></svg>");
  background-repeat:no-repeat;background-position:right .6rem center}
.opp-filters input[type=search]:focus{outline:none;border-color:var(--gold);
  box-shadow:0 0 0 3px rgba(201,162,39,.18)}
.opp-filters input[type=search]::placeholder{color:#6B7280}
.opp-filters select{background:#fff;border:1.5px solid #C7CBDA}

/* 🔴 زرُّ الإجراءِ الأساسيِّ يتبع حلَّ المنصةِ المعتمدَ لا حلاً جديداً:
   تدرّجٌ ذهبيٌّ ونصٌّ داكنٌ #241a05 — نفسُ ما حُلَّ به زرُّ البوابةِ الذهبية.
   (أمر أحمد: الحلُّ يُطبَّق على الكلِّ حتى الجديد.) اخترعتُ كحلياً على أبيضَ
   فخالفتُ نمطاً قائماً — والاتساقُ هنا وظيفةٌ لا ذوق. */
.btn.go{background:linear-gradient(135deg,var(--gold-2),var(--gold));
        color:#241a05;font-weight:700;border:none}
.btn.go:hover{filter:brightness(1.06)}
table.mkt tbody tr:hover .c-go{background:#FBF7EA}

/* ── درجُ تفاصيلِ الفرصة — الاسمُ كاملاً لا مقصوصاً، وكلُّ حقلٍ جُمع يُعرض.
   (أحمد: «حتى الكلام بيطلع ناقص» — القصُّ بالجدولِ ضرورةُ كثافة، والدرجُ يردُّه.) */
.drw{position:fixed;inset:0;z-index:60}
.drw-bg{position:absolute;inset:0;background:rgba(17,20,45,.45);backdrop-filter:none}
.drw-panel{position:absolute;inset-block:0;inset-inline-start:0;width:min(30rem,94vw);
  background:var(--card);box-shadow:0 0 40px rgba(0,0,0,.25);overflow-y:auto;
  padding:1.1rem 1.2rem 2rem;animation:drwin .22s ease both}
@keyframes drwin{from{transform:translateX(-14px);opacity:.6}to{transform:none;opacity:1}}
.drw-x{position:absolute;inset-inline-end:.7rem;top:.7rem;border:none;background:transparent;
  font-size:1.1rem;cursor:pointer;color:var(--muted);min-width:44px;min-height:44px}
.drw-top{margin-bottom:.5rem}
.drw-h{font-size:1.05rem;line-height:1.6;margin:.2rem 0 .35rem}
.drw-ag{color:var(--muted);font-size:.85rem;margin-bottom:.9rem}
.drw-grid,.drw-cost{border-top:1px solid var(--line);padding-top:.7rem;margin-bottom:.8rem}
.dl{display:flex;justify-content:space-between;gap:.8rem;padding:.32rem 0;font-size:.84rem;
  border-bottom:1px dashed var(--line);flex-wrap:wrap}
.dl span{color:var(--muted)}
.dl b{font-weight:600;text-align:end}
.dl i{flex-basis:100%;font-style:normal;font-size:.76rem}
.drw-act{display:flex;flex-direction:column;gap:.5rem;margin-top:1rem}
.drw-act .btn{min-height:54px;display:flex;align-items:center;justify-content:center;font-size:.9rem}
.drw-note{color:var(--muted);font-size:.76rem;margin-top:.7rem;line-height:1.7}
table.mkt tbody tr{cursor:pointer}

/* زرٌّ مقفولٌ يُقرأ قفلاً لا عطلاً — الشفافيةُ وحدَها أبقته يبدو ذهبياً جاهزاً
   (فحصٌ بصريٌّ 2026-09-01). رماديٌّ صريحٌ بحدٍّ متقطّعٍ ومؤشرٍ يمنع. */
.btn.locked{background:var(--paper,#f3f1ec);color:#8a8579;border:1.5px dashed #cfc9bb;box-shadow:none}
.btn.locked:disabled{opacity:1;cursor:not-allowed}

/* DEC-420ب (أمر أحمد 33613): نصوص جدولي المشاريع والمعدات كانت مقصوصة — الأعمدة النصية
   تنضغط تحت 8 أعمدة. عرض أدنى لكل عمود نصي + الحقول تملأ خلاياها، والحاوية تتمرر أفقياً. */
#prjTable input:not([type=checkbox]), #eqbody input{width:100%;min-width:0;box-sizing:border-box}
#prjTable td:nth-child(1) input{min-width:200px}
#prjTable td:nth-child(2) input{min-width:130px}
#prjTable td:nth-child(3) input{min-width:170px}
#prjTable td:nth-child(4) input{min-width:100px}
#prjTable td:nth-child(5) input, #prjTable td:nth-child(6) input{min-width:70px}
#eqbody td:first-child input{min-width:240px}
/* «كبرها» (33619): حقول جدولي المشاريع والمعدات أكبر خطاً وأرحب */
#prjTable input:not([type=checkbox]), #eqbody input{font-size:1.05rem;padding:.55rem .6rem}
#prjTable th, #eqbody+* th, table thead th{font-size:1rem}
#prjTable input[type=checkbox]{width:22px;height:22px}
#prjTable td, #eqbody td{padding:.55rem .5rem}
/* شريط الخطوات يستفيد من العرض (33620): يمتد كاملاً وكل خطوة تاخذ حصتها */
.steps{display:flex;width:100%;gap:.6rem}
.steps .s{flex:1;text-align:center;font-size:1.02rem;padding:.6rem .4rem}
