:root{--bg:#07111f;--card:#0f1b2d;--card2:#132238;--text:#f8fafc;--muted:#93a4bb;--green:#22c55e;--red:#ef4444;--gold:#f2c14e;--blue:#38bdf8;--line:#22324a}*{box-sizing:border-box}body{margin:0;background:linear-gradient(180deg,#07111f,#0a1526 45%,#07111f);color:var(--text);font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Tahoma,Arial,sans-serif;min-height:100vh}.hidden{display:none!important}.topbar{position:sticky;top:0;z-index:20;display:flex;justify-content:space-between;align-items:center;padding:calc(10px + env(safe-area-inset-top)) 18px 10px;background:rgba(7,17,31,.88);backdrop-filter:blur(18px);border-bottom:1px solid rgba(255,255,255,.06)}.brand{display:flex;gap:10px;align-items:center}.brand strong{display:block;font-size:18px}.brand small{color:var(--muted)}main{max-width:880px;margin:auto;padding:18px 14px 110px}.card{background:linear-gradient(160deg,rgba(19,34,56,.98),rgba(13,27,46,.98));border:1px solid rgba(255,255,255,.075);border-radius:22px;padding:18px;margin-bottom:14px;box-shadow:0 16px 40px rgba(0,0,0,.18)}.hero{padding:24px}.eyebrow{font-size:12px;color:var(--gold);font-weight:700}.hero h2{font-size:25px;margin:8px 0 18px}.search-wrap{display:flex;gap:8px}.search-wrap input{flex:1;background:#081424;border:1px solid #293a52;color:#fff;border-radius:14px;padding:15px;font-size:16px;outline:none}.search-wrap input:focus{border-color:var(--blue)}button{border:0;cursor:pointer}.search-wrap button{background:linear-gradient(135deg,#16a34a,#22c55e);color:#04110a;padding:0 18px;border-radius:14px;font-weight:800}.ghost{background:transparent;border:1px solid #33445e;color:#fff;border-radius:12px;padding:8px 12px}.muted{color:var(--muted);line-height:1.7}.suggestions{display:flex;gap:8px;flex-wrap:wrap;margin-top:13px}.suggestions button{background:#152640;color:#dce7f5;padding:8px 11px;border-radius:999px}.empty{text-align:center;padding:40px 20px}.chart-placeholder{height:90px;display:flex;align-items:end;justify-content:center;gap:8px;color:var(--blue);font-size:34px}.loading{text-align:center;padding:45px}.spinner{width:44px;height:44px;border:4px solid #243750;border-top-color:var(--green);border-radius:50%;margin:0 auto 15px;animation:spin .9s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.report-head{display:flex;justify-content:space-between;align-items:center}.ticker{color:var(--blue);font-weight:700}.report-head h2{margin:4px 0}.price-box{text-align:left}.price-box strong{display:block;font-size:26px}.positive{color:var(--green)}.negative{color:var(--red)}.decision{border-color:rgba(242,193,78,.25)}.decision-top{display:flex;justify-content:space-between;align-items:center}.decision h2{font-size:32px;margin:7px 0}.score-ring{width:92px;height:92px;border-radius:50%;display:grid;place-content:center;text-align:center;background:#24344b/* A-1: الافتراض رمادي مسطح؛ الأخضر لا يرسم إلا من الشيفرة بعد وصول درجة */;box-shadow:inset 0 0 0 8px #112035}.score-ring strong{font-size:28px}.score-ring small{color:var(--muted)}.confidence{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:10px;margin:18px 0}.confidence>div{height:8px;background:#263850;border-radius:999px;overflow:hidden}.confidence i{display:block;height:100%;background:linear-gradient(90deg,var(--gold),var(--green));border-radius:999px}.decision-grid,.levels{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.decision-grid div,.levels div{background:#0b1728;border-radius:14px;padding:12px}.decision-grid small,.levels small{display:block;color:var(--muted);margin-bottom:6px}.tabs{display:flex;gap:6px;overflow:auto;margin-bottom:14px}.tab{flex:1;min-width:80px;padding:11px;border-radius:12px;background:#101d31;color:#9fb0c5}.tab.active{background:#213652;color:#fff}.tab-panel{display:none}.tab-panel.active{display:block}.score-cards{display:grid;grid-template-columns:repeat(2,1fr);gap:10px;margin-bottom:14px}.score-card{background:#101e32;border:1px solid #20324a;border-radius:17px;padding:15px}.score-card strong{font-size:25px;display:block;margin-top:7px}.reason-list{display:grid;gap:9px}.reason{display:flex;gap:9px;align-items:flex-start;background:#0c192b;padding:12px;border-radius:13px}.reason b{font-size:18px}.levels{grid-template-columns:repeat(2,1fr)}.section-title{display:flex;justify-content:space-between;align-items:center}.section-title select{background:#0b1728;color:#fff;border:1px solid #2b3e59;border-radius:10px;padding:8px}canvas{width:100%;height:auto;background:#081524;border-radius:14px}.stochastic{display:flex;justify-content:space-between;align-items:center}.stoch-value{width:86px;height:86px;border-radius:50%;display:grid;place-content:center;text-align:center;background:#081524;border:7px solid var(--green)}.stoch-value strong{font-size:28px}.indicator-list{display:grid;gap:8px}.indicator{display:grid;grid-template-columns:1fr auto;align-items:center;background:#0b1728;padding:11px 13px;border-radius:12px}.signal{font-weight:800}.consensus{display:flex;justify-content:space-between;margin-top:16px;padding-top:14px;border-top:1px solid var(--line)}.metric-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:9px}.metric{background:#0b1728;padding:14px;border-radius:13px}.metric small{display:block;color:var(--muted)}.metric strong{display:block;margin-top:7px;font-size:20px}.news-list{display:grid;gap:10px}.news-item{background:#0b1728;border-radius:14px;padding:14px}.news-item header{display:flex;justify-content:space-between;gap:10px}.news-item span{font-size:12px;font-weight:700}.news-item p{color:#c5d0df;line-height:1.6}.disclaimer{font-size:12px;color:#74869d;line-height:1.6;padding:0 5px}.bottom-nav{position:fixed;bottom:0;left:0;right:0;display:flex;padding:9px 10px calc(9px + env(safe-area-inset-bottom));background:rgba(7,17,31,.94);backdrop-filter:blur(18px);border-top:1px solid rgba(255,255,255,.07);z-index:30}.bottom-nav button{flex:1;background:transparent;color:#75869c;font-size:18px}.bottom-nav button span{display:block;font-size:11px;margin-top:4px}.bottom-nav button.active{color:var(--green)}.splash{position:fixed;inset:0;background:#07111f;z-index:100;display:grid;place-content:center;text-align:center;transition:.45s}.splash.hide{opacity:0;pointer-events:none}.splash h1{font-size:42px;margin:18px 0 0}.splash p{color:var(--gold)}.logo-mark{position:relative}.logo-mark.large{width:130px;height:130px;margin:auto}.logo-mark.small{width:46px;height:46px}.lens{position:absolute;inset:0 18% 18% 0;border:5px solid #e7eef8;border-radius:50%;background:#0b192a;overflow:hidden}.handle{position:absolute;width:34%;height:8%;background:#e7eef8;right:0;bottom:9%;transform:rotate(45deg);border-radius:99px}.candle{position:absolute;width:10%;border-radius:2px}.candle:before{content:"";position:absolute;width:2px;height:150%;background:inherit;left:42%;top:-25%}.candle.green{height:38%;left:27%;top:39%;background:var(--green)}.candle.red{height:30%;left:52%;top:26%;background:var(--red)}.trend{position:absolute;color:var(--gold);font-weight:900;font-size:44%;right:12%;bottom:8%}.logo-mark.small .lens{border-width:3px}.logo-mark.small .trend{font-size:17px}.logo-mark.small .handle{height:4px}@media(max-width:600px){.hero h2{font-size:21px}.search-wrap{flex-direction:column}.search-wrap button{padding:14px}.decision-grid{grid-template-columns:1fr}.report-head{align-items:flex-start}.price-box strong{font-size:21px}.score-ring{width:78px;height:78px}.decision h2{font-size:28px}}

.report-tools{display:flex;align-items:center;justify-content:space-between;gap:14px}.report-tools small{display:block;color:var(--muted);margin-top:5px}.export-btn{background:linear-gradient(135deg,#f2c14e,#f59e0b);color:#211600;font-weight:900;padding:13px 16px;border-radius:14px;white-space:nowrap}.print-cover,.watermark-layer{display:none}
@media(max-width:600px){.report-tools{align-items:stretch;flex-direction:column}.export-btn{width:100%;padding:15px}}
@page{size:210mm 297mm;margin:0!important}
@page financialLandscape{size:297mm 210mm;margin:0!important}
.print-document{display:none}
@media print{
  *{-webkit-print-color-adjust:exact!important;print-color-adjust:exact!important;box-sizing:border-box}
  html,body{width:210mm!important;margin:0!important;padding:0!important;background:#fff!important}body{color:#172033!important;font-family:"Janna LT","Janna LT Regular","Geeza Pro",Tahoma,Arial,sans-serif!important}
  body.printing-report>*:not(main){display:none!important}
  body.printing-report main>*{display:none!important}
  body.printing-report #homePage{display:block!important}
  body.printing-report #homePage>*:not(#report){display:none!important}
  body.printing-report #report>*:not(#printDocument){display:none!important}
  body.printing-report #report,body.printing-report #printDocument{display:block!important;margin:0!important;padding:0!important;max-width:none!important}
  .print-page{position:relative;width:210mm;height:297mm;min-width:210mm;max-width:210mm;min-height:297mm;max-height:297mm;padding:17mm 16mm 16mm;background:#fff;overflow:hidden;page-break-after:always;break-after:page;direction:rtl}
  .print-page:last-child{page-break-after:auto}
  .print-landscape{page:financialLandscape;width:297mm!important;min-width:297mm!important;max-width:297mm!important;height:210mm!important;min-height:210mm!important;max-height:210mm!important;padding:13mm 15mm 14mm}
  .print-watermark{position:fixed;inset:0;z-index:0;pointer-events:none;overflow:hidden}
  .print-watermark span{position:absolute;left:-10%;width:120%;text-align:center;transform:rotate(-28deg);font-size:21px;font-weight:800;color:rgba(19,48,77,.055);white-space:nowrap}
  .print-page>*{position:relative;z-index:1}
  .print-page footer{position:absolute;bottom:6mm;right:16mm;left:16mm;border-top:1px solid #d8e1eb;padding-top:3mm;display:flex;justify-content:space-between;align-items:center;font-size:10px;color:#617187}
  .print-cover-page{background:linear-gradient(145deg,#07111f 0%,#10253d 62%,#0c3544 100%);color:#fff;display:flex;flex-direction:column;justify-content:space-between;padding:22mm}
  .print-cover-page:before{content:"";position:absolute;width:140mm;height:140mm;border:1px solid rgba(66,213,128,.18);border-radius:50%;left:-50mm;top:65mm;box-shadow:0 0 0 20mm rgba(66,213,128,.035),0 0 0 42mm rgba(66,213,128,.025)}
  .print-cover-brand{display:flex;align-items:center;gap:12px}.print-cover-brand img{width:29mm;height:29mm}.print-cover-brand h1{font-size:28px;margin:0;color:#fff}.print-cover-brand p{margin:5px 0 0;color:#a8b8ca}
  .print-cover-center{max-width:145mm}.print-cover-center span{color:#f2c14e;font-weight:800}.print-cover-center h2{font-size:34px;line-height:1.4;margin:10px 0;color:#fff}.print-cover-center p{font-size:17px;color:#d7e2ee}
  .print-cover-bottom{border-right:4px solid #22c55e;padding-right:12px}.print-cover-bottom p{color:#a8b8ca}.print-cover-bottom strong{font-size:14px}.print-cover-page footer{color:#a8b8ca;border-color:rgba(255,255,255,.15)}
  .print-section-header{display:flex;align-items:center;gap:10px;border-bottom:3px solid #163a59;padding-bottom:8px;margin-bottom:13px}.print-section-header img{width:18mm;height:18mm}.print-section-header small{color:#b18418;font-weight:800}.print-section-header h2{font-size:23px;color:#102a43;margin:2px 0}
  .print-toc{list-style:none;margin:16mm 0 0;padding:0}.print-toc li{display:flex;align-items:center;gap:8px;border-bottom:1px dotted #aebbc9;padding:8px 2px;font-size:15px}.print-toc li span{flex:1}.print-toc li b{color:#b18418}
  .print-summary-card{display:grid;grid-template-columns:1fr 42mm;gap:12mm;background:#102a43;color:#fff;border-radius:16px;padding:16px;margin:8mm 0}.print-summary-card small{color:#f2c14e}.print-summary-card h1{font-size:32px;margin:5px 0;color:#fff}.print-summary-card p{line-height:1.9}.print-score{width:39mm;height:39mm;border:5px solid #22c55e;border-radius:50%;display:grid;place-content:center;text-align:center}.print-score strong{font-size:28px}.print-score span{font-size:10px;color:#cbd7e5}
  .print-kpi-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin:10px 0}.print-kpi-grid>div{background:#eef3f8;border:1px solid #d6e0ea;border-radius:10px;padding:11px}.print-kpi-grid small{display:block;color:#64748b;margin-bottom:5px}.print-kpi-grid strong{font-size:15px;color:#17324d}
  .print-block{border:1px solid #d6e0ea;border-radius:12px;padding:13px;margin:10px 0;break-inside:avoid;background:rgba(255,255,255,.92)}.print-block h2,.print-block h3{color:#163a59;margin:0 0 8px}.print-block p,.print-block li{line-height:1.85}.print-block.featured{border-right:5px solid #f2c14e;background:#f8fafc}.print-block hr{border:0;border-top:1px solid #d6e0ea;margin:12px 0}
  .print-two-cols{display:grid;grid-template-columns:1fr 1fr;gap:10px}.print-block dl{display:grid;grid-template-columns:auto 1fr;gap:7px 12px}.print-block dt{color:#64748b}.print-block dd{margin:0;font-weight:800}
  .print-scenarios .scenario{border:1px solid #d6e0ea!important;background:#fff!important;color:#172033!important;border-radius:12px;padding:13px;margin:9px 0;break-inside:avoid}.print-scenarios .scenario *{color:inherit!important}.print-scenarios .scenario small{color:#64748b!important}
  .print-page table{width:100%;min-width:0;border-collapse:collapse;font-size:11px;table-layout:auto}.print-page th,.print-page td{padding:7px 8px;border:1px solid #d6e0ea;text-align:right;white-space:normal}.print-page th{background:#eaf0f6;color:#17324d;font-weight:800}.print-page tbody tr:nth-child(even) td{background:#f8fafc}
  .print-financial-table{font-size:10.5px!important}.print-financial-table th:first-child{min-width:38mm}.print-landscape .print-block{padding:9px;margin:6px 0}.print-landscape .print-section-header{margin-bottom:7px}.print-landscape .print-financial-table th,.print-landscape .print-financial-table td{padding:5px 6px;white-space:nowrap}
  .print-page .reason,.print-page .news-item{background:#f8fafc!important;border:1px solid #d6e0ea!important;color:#172033!important;border-radius:9px;padding:9px;margin:6px 0;break-inside:avoid}.print-page .reason *,.print-page .news-item *{color:inherit!important}.print-page .news-item a{display:none!important}
  .disclaimer-block{background:#fff8e5;border-color:#e5c66b}.print-signature{margin-top:16mm;text-align:center}.print-signature span,.print-signature small{display:block;color:#64748b}.print-signature strong{display:block;font-size:20px;margin:7px}
}

.page{display:none}.page.active{display:block}.primary-link{display:inline-block;background:#1f8f4d;color:white;padding:12px 16px;border-radius:12px;text-decoration:none}.notice{background:#0b1728;border:1px dashed #38506f;padding:18px;border-radius:14px;line-height:1.7}.quality{display:flex;justify-content:space-between;border-top:1px solid var(--line);padding-top:14px}.table-wrap{overflow:auto}table{width:100%;border-collapse:collapse;min-width:700px}th,td{padding:12px;border-bottom:1px solid var(--line);text-align:right;white-space:nowrap}th{color:var(--muted)}.news-item a{display:inline-block;margin-top:9px;color:var(--blue)}.setting-row,.saved-row{display:flex;width:100%;justify-content:space-between;align-items:center;background:#0b1728;color:#fff;padding:15px;border:0;border-radius:12px;margin:9px 0;text-align:right}.saved-row span{display:flex;flex-direction:column}.saved-row small{color:var(--muted)}.danger-btn{width:100%;padding:14px;border-radius:12px;background:#3a1520;color:#fecdd3;margin-top:18px}.executive{border-color:#2d4f77}
.market-stats{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin-top:12px}.market-stats div{background:#0b1728;border-radius:12px;padding:10px}.market-stats small{display:block;color:var(--muted);font-size:11px}.market-stats strong{display:block;margin-top:5px}.source-warning{color:var(--gold)}@media(max-width:600px){.market-stats{grid-template-columns:repeat(2,1fr)}}
.tradingview-host{height:520px;width:100%;overflow:hidden;border-radius:18px;background:#081524}.tradingview-host:empty{display:none}.tradingview-widget-container{height:100%!important;width:100%!important}.connection-badge{font-size:.78rem;padding:7px 10px;border-radius:999px;background:#26364d;color:#b8c6d8}.connection-badge.connected{background:rgba(34,197,94,.15);color:#4ade80}.widget-note{margin-top:12px}.connection-card h2{margin:.35rem 0}.toggle-row{display:flex;align-items:center;justify-content:space-between;gap:15px;padding:16px 0;border-bottom:1px solid rgba(148,163,184,.14)}.toggle-row span{display:grid;gap:4px}.toggle-row small{color:#94a3b8}.toggle-row input{position:absolute;opacity:0}.toggle-row i{width:52px;height:30px;border-radius:20px;background:#26364d;position:relative;transition:.2s;flex:none}.toggle-row i:after{content:"";position:absolute;width:24px;height:24px;background:#fff;border-radius:50%;top:3px;right:3px;transition:.2s}.toggle-row input:checked+i{background:#22c55e}.toggle-row input:checked+i:after{transform:translateX(-22px)}.field-label{display:grid;gap:8px;margin:16px 0;color:#b8c6d8}.field-label input,.field-label select{width:100%;background:#081524;border:1px solid #26364d;color:#fff;border-radius:14px;padding:14px;font:inherit}.connection-actions{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:18px}.secondary-btn{border:1px solid #38506f;background:#12233a;color:#e5edf7;border-radius:14px;padding:14px;font-weight:700}@media(max-width:500px){.tradingview-host{height:470px}.connection-actions{grid-template-columns:1fr}}
.report-actions{display:flex;gap:10px;align-items:center}.compact-btn{padding:10px 14px}.watch-remove{background:#351722;color:#fecdd3;border:1px solid #713044;padding:9px 12px;border-radius:11px}.saved-row{gap:10px}.saved-row-main{flex:1;text-align:right;background:transparent;color:inherit;border:0;display:flex;justify-content:space-between;align-items:center}.scan-actions{display:grid;grid-template-columns:1fr auto;gap:10px;margin-top:18px}.scan-actions>button:first-child{padding:14px;border-radius:14px;background:var(--green);color:#04150b;font-weight:900}.scan-meta{display:flex;justify-content:space-between;margin-top:14px;color:var(--muted)}.progress-track{height:8px;background:#081524;border-radius:99px;overflow:hidden;margin-top:10px}.progress-track i{display:block;height:100%;width:0;background:var(--green);transition:.25s}.opportunity-table td,.opportunity-table th{font-size:13px}.signal-pill{display:inline-block;padding:6px 9px;border-radius:999px;font-weight:800;white-space:nowrap}.signal-buy{background:rgba(34,197,94,.15);color:#4ade80}.signal-sell{background:rgba(239,68,68,.15);color:#f87171}.signal-watch{background:rgba(242,193,78,.14);color:#f2c14e}.opportunity-row{cursor:pointer}
@media(max-width:600px){.report-actions{display:grid;grid-template-columns:1fr 1fr}.bottom-nav button{font-size:16px}.bottom-nav button span{font-size:10px}.opportunity-table{min-width:820px}.scan-actions{grid-template-columns:1fr}}

.rights-settings textarea{width:100%;resize:vertical;background:#081524;border:1px solid #26364d;color:#fff;border-radius:14px;padding:14px;font:inherit;line-height:1.7}

/* .print-compact IN THE EXPORT PATH.
   fitPrintPages() measures each page and adds .print-compact when it overflows —
   correctly, and one frame before the capture. But every rule for that class
   lived inside @media print, and the PDF export renders in the SCREEN medium
   (the document is moved to left:-20000px, not printed). So the detector ran,
   the class was added, and nothing changed: the financial page stayed 229.7mm
   against a 210mm landscape limit, was sliced in two, and the exported file came
   out 14 pages against a 13-entry table of contents. The rules are duplicated
   here for the export context so the shrink actually happens. */
.print-document.pdf-exporting .print-page.print-compact{font-size:9px;padding-top:26px;padding-bottom:26px}
.print-document.pdf-exporting .print-page.print-compact .print-block{padding:7px;margin:5px 0}
.print-document.pdf-exporting .print-page.print-compact p,.print-document.pdf-exporting .print-page.print-compact li{line-height:1.45}
.print-document.pdf-exporting .print-page.print-compact .print-section-header{margin-bottom:5px}
.print-document.pdf-exporting .print-page.print-compact table{font-size:8.5px}
.print-document.pdf-exporting .print-page.print-compact th,.print-document.pdf-exporting .print-page.print-compact td{padding:3px 4px}
.print-document.pdf-exporting .print-page.print-compact footer{bottom:10px}
@media print{.print-page.print-compact{font-size:9px;padding-top:12mm;padding-bottom:12mm}.print-page.print-compact .print-block{padding:7px;margin:5px 0}.print-page.print-compact p,.print-page.print-compact li{line-height:1.45}.print-page.print-compact .print-section-header{margin-bottom:5px}.print-page.print-compact footer{bottom:4mm}}

.opportunity-filters{gap:12px;align-items:flex-end}.filter-group{display:flex;gap:9px;align-items:flex-end;flex-wrap:wrap}.filter-group label{display:grid;gap:5px;color:var(--muted);font-size:11px}.filter-group select{min-width:118px}.opportunity-filters h3{margin:0 0 8px}
@media(max-width:600px){.opportunity-filters{align-items:stretch}.filter-group{display:grid;grid-template-columns:1fr 1fr;width:100%}.filter-group select{width:100%;min-width:0}}
@media print{html{-webkit-text-size-adjust:100%;text-size-adjust:100%}.print-document,.print-page,.print-page *{font-family:"Janna LT","Janna LT Regular","Geeza Pro",Tahoma,Arial,sans-serif!important}.print-page{box-shadow:none!important;border:0!important}.print-cover-page{padding:20mm}.print-page footer{line-height:1.2}.print-landscape footer{right:15mm;left:15mm}.print-page img{max-width:100%;height:auto}.print-page h1,.print-page h2,.print-page h3,.print-page p,.print-page li,.print-page td,.print-page th{orphans:3;widows:3}.print-page table{page-break-inside:avoid;break-inside:avoid}.print-page a[href]:after{content:""!important}.print-page{print-color-adjust:exact;-webkit-print-color-adjust:exact}}

/* Direct PDF renderer: fixed A4 canvases, no Safari print headers/footers. */
.print-document.pdf-exporting{display:block!important;position:fixed!important;left:-20000px!important;top:0!important;width:max-content!important;background:#fff!important;z-index:-1!important}
.print-document.pdf-exporting .print-watermark{position:absolute;inset:0;z-index:0;pointer-events:none;overflow:hidden}
.print-document.pdf-exporting .print-watermark span{position:absolute;left:-10%;width:120%;text-align:center;transform:rotate(-28deg);font-size:21px;font-weight:800;color:rgba(19,48,77,.055);white-space:nowrap}
.print-document.pdf-exporting .print-page{font-family:"Janna LT","Janna LT Regular","Geeza Pro",Tahoma,Arial,sans-serif!important;position:relative;width:794px;height:1123px;min-width:794px;max-width:794px;min-height:1123px;max-height:1123px;padding:38px 42px 42px;background:#fff;color:#172033;overflow:hidden;direction:rtl;box-shadow:none;border:0}
.print-document.pdf-exporting .print-page.print-landscape{width:1123px!important;height:794px!important;min-width:1123px!important;max-width:1123px!important;min-height:794px!important;max-height:794px!important;padding:30px 36px 38px!important}
.print-document.pdf-exporting .print-page>*{position:relative;z-index:1}
.print-document.pdf-exporting .print-page footer{position:absolute;bottom:17px;right:42px;left:42px;border-top:1px solid #d8e1eb;padding-top:8px;display:flex;justify-content:space-between;align-items:center;font-size:10px;color:#617187}
.print-document.pdf-exporting .print-landscape footer{right:36px;left:36px}
.print-document.pdf-exporting .print-cover-page{padding:55px;background:linear-gradient(145deg,#07111f 0%,#10253d 62%,#0c3544 100%);color:#fff;display:flex;flex-direction:column;justify-content:space-between}
.print-document.pdf-exporting .print-cover-top{display:flex;align-items:center;gap:14px}.print-document.pdf-exporting .print-cover-logo{width:80px;height:80px;border-radius:18px}.print-document.pdf-exporting .print-cover-title{font-size:20px;color:#f2c14e}.print-document.pdf-exporting .print-cover-center h1{font-size:42px;margin:0 0 14px}.print-document.pdf-exporting .print-cover-center h2{font-size:30px;line-height:1.4;margin:10px 0;color:#fff}.print-document.pdf-exporting .print-cover-center p{font-size:16px;color:#d7e2ee}.print-document.pdf-exporting .print-cover-bottom{border-right:4px solid #22c55e;padding-right:12px}.print-document.pdf-exporting .print-cover-bottom p{color:#a8b8ca}.print-document.pdf-exporting .print-cover-page footer{color:#a8b8ca;border-color:rgba(255,255,255,.15)}
.print-document.pdf-exporting .print-section-header{display:flex;align-items:center;gap:10px;border-bottom:3px solid #163a59;padding-bottom:8px;margin-bottom:12px}.print-document.pdf-exporting .print-section-header img{width:60px;height:60px}.print-document.pdf-exporting .print-section-header small{color:#b18418;font-weight:800}.print-document.pdf-exporting .print-section-header h2{font-size:22px;color:#102a43;margin:2px 0}
.print-document.pdf-exporting .print-toc{list-style:none;margin:38px 0 0;padding:0}.print-document.pdf-exporting .print-toc li{display:flex;align-items:center;gap:8px;border-bottom:1px dotted #aebbc9;padding:9px 2px;font-size:15px}.print-document.pdf-exporting .print-toc li span{flex:1}.print-document.pdf-exporting .print-toc li b{color:#b18418}
.print-document.pdf-exporting .print-summary-card{display:grid;grid-template-columns:1fr 145px;gap:24px;background:#102a43;color:#fff;border-radius:16px;padding:18px;margin:18px 0}.print-document.pdf-exporting .print-summary-card small{color:#f2c14e}.print-document.pdf-exporting .print-summary-card h1{font-size:30px;margin:5px 0;color:#fff}.print-document.pdf-exporting .print-summary-card p{line-height:1.75}.print-document.pdf-exporting .print-score{width:135px;height:135px;border:5px solid #22c55e;border-radius:50%;display:grid;place-content:center;text-align:center}.print-document.pdf-exporting .print-score strong{font-size:28px}.print-document.pdf-exporting .print-score span{font-size:10px;color:#cbd7e5}
.print-document.pdf-exporting .print-kpi-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin:10px 0}.print-document.pdf-exporting .print-kpi-grid>div{background:#eef3f8;border:1px solid #d6e0ea;border-radius:10px;padding:11px}.print-document.pdf-exporting .print-kpi-grid small{display:block;color:#64748b;margin-bottom:5px}.print-document.pdf-exporting .print-kpi-grid strong{font-size:15px;color:#17324d}
.print-document.pdf-exporting .print-block{border:1px solid #d6e0ea;border-radius:12px;padding:13px;margin:9px 0;background:rgba(255,255,255,.96)}.print-document.pdf-exporting .print-block h2,.print-document.pdf-exporting .print-block h3{color:#163a59;margin:0 0 8px}.print-document.pdf-exporting .print-block p,.print-document.pdf-exporting .print-block li{line-height:1.7}.print-document.pdf-exporting .print-block.featured{border-right:5px solid #f2c14e;background:#f8fafc}.print-document.pdf-exporting .print-two-cols{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.print-document.pdf-exporting table{width:100%;min-width:0!important;border-collapse:collapse;font-size:11px;table-layout:fixed}.print-document.pdf-exporting th,.print-document.pdf-exporting td{padding:7px 8px;border:1px solid #d6e0ea;text-align:right;white-space:normal;overflow-wrap:anywhere}.print-document.pdf-exporting th{background:#eaf0f6;color:#17324d;font-weight:800}.print-document.pdf-exporting tbody tr:nth-child(even) td{background:#f8fafc}.print-document.pdf-exporting .print-financial-table{font-size:10px!important;table-layout:fixed!important}.print-document.pdf-exporting .print-financial-table th:first-child{width:165px}.print-document.pdf-exporting .print-landscape .print-block{padding:8px;margin:5px 0}.print-document.pdf-exporting .print-landscape .print-section-header{margin-bottom:6px}.print-document.pdf-exporting .print-landscape .print-financial-table th,.print-document.pdf-exporting .print-landscape .print-financial-table td{padding:5px 6px;white-space:normal!important}
.print-document.pdf-exporting .print-page .reason,.print-document.pdf-exporting .print-page .news-item{background:#f8fafc!important;border:1px solid #d6e0ea!important;color:#172033!important;border-radius:9px;padding:9px;margin:6px 0}.print-document.pdf-exporting .print-page .reason *,.print-document.pdf-exporting .print-page .news-item *{color:inherit!important}.print-document.pdf-exporting .print-page .news-item a{display:none!important}.print-document.pdf-exporting .disclaimer-block{background:#fff8e5;border-color:#e5c66b}.print-document.pdf-exporting .print-signature{margin-top:28px;text-align:center}.print-document.pdf-exporting .print-signature span,.print-document.pdf-exporting .print-signature small{display:block;color:#64748b}.print-document.pdf-exporting .print-signature strong{display:block;font-size:20px;margin:7px}

/* V10: authentication and user management */
body:not(.auth-ready) > header,
body:not(.auth-ready) > main,
body:not(.auth-ready) > nav,
body:not(.auth-ready) > #splash { display:none !important; }
.auth-gate{position:fixed;inset:0;z-index:9999;display:grid;place-items:center;padding:24px;background:radial-gradient(circle at 50% 15%,#102944 0,#07111f 45%,#030912 100%);overflow:auto}
.auth-gate.hidden{display:none!important}.auth-shell{width:min(100%,430px);background:rgba(9,24,40,.96);border:1px solid rgba(119,214,203,.2);border-radius:28px;padding:26px;box-shadow:0 24px 80px rgba(0,0,0,.45)}
.auth-brand{display:flex;align-items:center;gap:14px;margin-bottom:24px}.auth-brand img{width:62px;height:62px;border-radius:18px}.auth-brand h1{margin:0;font-size:30px}.auth-brand p{margin:4px 0 0;color:#9fb0c4}
.auth-form{display:grid;gap:14px}.auth-form h2{margin:0 0 4px}.auth-form label,.invite-user-form label{display:grid;gap:7px;font-weight:700}.auth-form input,.invite-user-form input,.invite-user-form select{width:100%;box-sizing:border-box;border:1px solid #294057;background:#081522;color:#fff;border-radius:14px;padding:14px;font-size:16px}.auth-form button{min-height:48px}.auth-link{background:transparent!important;border:0!important;color:#78d7cd!important}.auth-message{min-height:22px;margin:16px 0 0;color:#b7c5d4}.auth-message.error{color:#ff8f8f}.auth-message.success{color:#6be3b2}
.account-summary{display:flex;align-items:center;justify-content:space-between;gap:14px;margin:12px 0 18px}.account-summary h2,.account-summary p{margin:0}.role-badge{background:#133a3d;color:#79dfd5;padding:8px 12px;border-radius:999px;white-space:nowrap}
.invite-user-form{display:grid;grid-template-columns:1fr 1.4fr .8fr auto;gap:10px;align-items:end;margin:18px 0}.invite-user-form button{height:48px}.users-table select{min-width:95px;background:#091827;color:#fff;border:1px solid #294057;border-radius:9px;padding:8px}.user-status{display:inline-block;padding:6px 10px;border-radius:999px}.user-status.active{background:rgba(45,200,139,.16);color:#65e4b0}.user-status.suspended{background:rgba(255,92,92,.14);color:#ff9191}.user-actions{display:flex;gap:6px}.user-actions button{padding:8px 10px;white-space:nowrap}.danger-mini{background:#5a2027!important;color:#ffd9dc!important}
@media(max-width:760px){.invite-user-form{grid-template-columns:1fr}.users-table{min-width:760px}.auth-shell{padding:22px 18px}}

/* ===== النواة V11 — نظام المستخدمين ===== */
.auth-note{margin-top:10px;font-size:12px;color:#f0b849;line-height:1.7;text-align:center}
.small{font-size:12px}
.row-btns{display:flex;gap:8px;flex-wrap:wrap;margin-top:12px}
.row-btns .danger-btn{flex:1}
.inline-form{margin-top:14px;gap:10px}
.inline-form label{font-size:13px}
.manual-link{margin-top:12px;padding:12px;border-radius:12px;background:rgba(47,155,255,.08);border:1px solid rgba(47,155,255,.25);display:flex;flex-direction:column;gap:8px}
.manual-link code{font-size:11px;word-break:break-all;color:#9fd0ff;background:rgba(0,0,0,.25);padding:8px;border-radius:8px;direction:ltr;text-align:left}
.pending-invites{margin-top:14px}
.pending-invites h3{font-size:14px;margin:0 0 10px;color:#9fb4cd}
.invite-row{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap;padding:10px 12px;border-radius:10px;background:rgba(255,255,255,.03);border:1px solid rgba(255,255,255,.06);margin-bottom:8px}
.activity-body{max-height:340px;overflow-y:auto;margin-top:12px}
.log-row{padding:10px 12px;border-radius:10px;background:rgba(255,255,255,.03);margin-bottom:6px;font-size:13px;line-height:1.7}
.user-actions{display:flex;gap:6px;flex-wrap:wrap}
.user-actions button{font-size:12px;padding:6px 10px;border-radius:8px;cursor:pointer}
.user-actions button:disabled{opacity:.4;cursor:not-allowed}
.user-status.active{color:#4ade80}
.user-status.suspended{color:#f87171}
.diag-box{margin-top:12px;padding:14px;border-radius:12px;background:rgba(255,255,255,.04);border:1px solid rgba(255,255,255,.1);font-size:13px;line-height:2;text-align:right}
.diag-box strong{display:block;margin-bottom:8px;font-size:14px}
.diag-box div{direction:rtl}
.diag-hint{margin-top:10px;padding-top:10px;border-top:1px solid rgba(255,255,255,.1);color:#f0b849;font-size:12px;line-height:1.8}
.source-line{margin:0 0 10px;font-size:11px;color:#7f93ab;line-height:1.7}

/* ===== خطة التداول والدعوم وملف الأحجام ===== */
.plan-head{display:flex;justify-content:space-between;align-items:center;padding:12px 14px;border-radius:12px;margin-bottom:12px;font-size:14px}
.plan-head strong{font-size:16px}
.plan-entry{background:rgba(74,222,128,.12);border:1px solid rgba(74,222,128,.35);color:#4ade80}
.plan-exit{background:rgba(248,113,113,.12);border:1px solid rgba(248,113,113,.35);color:#f87171}
.plan-watch{background:rgba(240,184,73,.10);border:1px solid rgba(240,184,73,.3);color:#f0b849}
.plan-reasons{margin:0 0 14px;padding-right:18px;font-size:13px;line-height:1.9;color:#b9c8dc}
.plan-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:10px}
.plan-grid>div{background:rgba(255,255,255,.03);border:1px solid rgba(255,255,255,.06);border-radius:10px;padding:10px 12px;display:flex;flex-direction:column;gap:2px}
.plan-grid span{font-size:11px;color:#8ea3bd}
.plan-grid strong{font-size:16px}
.plan-grid small{font-size:10px;color:#7f93ab;line-height:1.5}
.plan-grid .lvl-stop strong{color:#f87171}
.plan-grid .lvl-target strong{color:#4ade80}
.plan-note{margin-top:12px;font-size:12px;color:#f0b849;line-height:1.7}
.sr-block h4{font-size:13px;margin:0 0 8px;color:#9fb4cd}
.sr-row{display:flex;justify-content:space-between;align-items:center;gap:10px;padding:9px 12px;border-radius:9px;margin-bottom:6px;font-size:13px;background:rgba(255,255,255,.03)}
.sr-row strong{font-size:15px;min-width:70px}
.sr-row span{flex:1;font-size:11px;color:#8ea3bd}
.sr-res{border-right:3px solid #f87171}
.sr-sup{border-right:3px solid #4ade80}
.sr-current{text-align:center;padding:10px;margin:10px 0;font-size:13px;font-weight:700;color:#7fd1ff;border-top:1px dashed rgba(127,209,255,.35);border-bottom:1px dashed rgba(127,209,255,.35)}
.vp-legend{display:flex;flex-wrap:wrap;gap:12px;font-size:12px;margin-bottom:12px;color:#b9c8dc}
.vp-legend b{color:#f0b849}
.vp-chart{display:flex;flex-direction:column;gap:2px}
.vp-row{display:flex;align-items:center;gap:8px;font-size:10px}
.vp-price{min-width:52px;color:#8ea3bd;text-align:left;direction:ltr}
.vp-bar{flex:1;height:13px;background:rgba(255,255,255,.04);border-radius:3px;overflow:hidden}
.vp-bar i{display:block;height:100%;background:#2f9bff;opacity:.55}
.vp-pct{min-width:36px;color:#7f93ab;text-align:left;direction:ltr}
.vp-va .vp-bar i{opacity:.8;background:#4ade80}
.vp-poc .vp-bar i{background:#f0b849;opacity:1}
.vp-poc .vp-price{color:#f0b849;font-weight:700}
.vp-here .vp-price{color:#fff;font-weight:700}
.vp-here .vp-bar{outline:1px solid rgba(255,255,255,.35)}
.lvl-entry{color:#7fd1ff}
.lvl-stop{color:#f87171}
.lvl-target{color:#4ade80}
.exit-note{font-size:11px;color:#f87171;line-height:1.6}
@media(max-width:520px){.plan-grid{grid-template-columns:1fr}}
.update-dot{display:inline-flex;align-items:center;gap:6px;padding:6px 12px;border-radius:999px;background:rgba(47,155,255,.15);border:1px solid rgba(47,155,255,.4);color:#7fd1ff;font-size:11px;font-weight:700}
.update-dot::before{content:'';width:7px;height:7px;border-radius:50%;background:#2f9bff;animation:pulseDot 1.6s infinite}
@keyframes pulseDot{0%,100%{opacity:1}50%{opacity:.3}}
.mini-tfs{display:flex;gap:4px;margin-top:5px}
.mini-tf{width:19px;height:19px;border-radius:5px;display:inline-flex;align-items:center;justify-content:center;font-size:10px;font-weight:700}
.m-buy{background:rgba(74,222,128,.18);color:#4ade80}
.m-sell{background:rgba(248,113,113,.18);color:#f87171}
.m-watch{background:rgba(240,184,73,.15);color:#f0b849}
.m-none{background:rgba(255,255,255,.05);color:#5a6b83}
.source-warn{color:#f0b849;display:inline-block;margin-top:4px}
.source-line a{color:#7fd1ff;text-decoration:none}

/* ===== board-analysis module styles ===== */
/* ---- score color bands (green / red / gold) ---- */
:root{
  --band-green-bg:rgba(34,197,94,.14);  --band-green-br:rgba(34,197,94,.42);
  --band-red-bg:rgba(239,68,68,.14);    --band-red-br:rgba(239,68,68,.42);
  --band-gold-bg:rgba(242,193,78,.13);  --band-gold-br:rgba(242,193,78,.40);
  --band-blue-bg:rgba(56,189,248,.13);  --band-blue-br:rgba(56,189,248,.40);
}
.band-green{color:var(--green)} .band-red{color:var(--red)}
.band-gold{color:var(--gold)}   .band-blue{color:var(--blue)}
.dband-bar{display:block;height:7px;margin-top:8px;background:rgba(255,255,255,.06);border-radius:999px;overflow:hidden}
.dband-bar b{display:block;height:100%;border-radius:999px;background:var(--muted)}
.dband-bar.band-green b,.dscore-impact.band-green .dband-bar b{background:linear-gradient(90deg,#16a34a,var(--green))}
.dband-bar.band-red b,.dscore-impact.band-red .dband-bar b{background:linear-gradient(90deg,#dc2626,var(--red))}
.dband-bar.band-gold b,.dscore-impact.band-gold .dband-bar b{background:linear-gradient(90deg,#d99e2b,var(--gold))}
.dband-bar.band-blue b{background:linear-gradient(90deg,#0ea5e9,var(--blue))}

/* ---- header ---- */
.board-head{display:flex;justify-content:space-between;align-items:flex-start;gap:16px}
.board-head h3{margin:6px 0}
.board-head-kpis{display:flex;gap:8px;flex-wrap:wrap;justify-content:flex-end}
.small{font-size:12px}

/* ---- sub-tabs (fintech pill bar) ---- */
.bsub-tabs{display:flex;gap:6px;overflow:auto;margin:6px 0 14px;padding:5px;background:#0b1728;border:1px solid var(--line);border-radius:16px;scrollbar-width:none}
.bsub-tabs::-webkit-scrollbar{display:none}
.bsub-tab{flex:1;min-width:96px;padding:11px 12px;border-radius:12px;background:transparent;color:#9fb0c5;font-weight:800;font-size:14px;transition:.18s}
.bsub-tab:hover{color:#dbe6f3}
.bsub-tab.active{background:linear-gradient(160deg,#213652,#182a42);color:#fff;box-shadow:0 6px 16px rgba(0,0,0,.28),inset 0 0 0 1px rgba(242,193,78,.22)}
.bsub-panel{display:none} .bsub-panel.active{display:block;animation:bFade .25s ease}
@keyframes bFade{from{opacity:0;transform:translateY(4px)}to{opacity:1;transform:none}}

/* ---- toolbar / filters ---- */
.bsub-toolbar{display:flex;justify-content:space-between;align-items:flex-end;gap:12px;margin-bottom:12px;flex-wrap:wrap}
.bfilter-group{display:flex;gap:10px;flex-wrap:wrap}
.bfilter-group label{display:grid;gap:5px;color:var(--muted);font-size:11px}
.bfilter-group select{background:#0b1728;color:#fff;border:1px solid #2b3e59;border-radius:10px;padding:9px 11px;min-width:120px}

/* ---- decision list ---- */
.decision-list{display:grid;gap:14px}

/* ---- decision CARD ---- */
.dcard{background:linear-gradient(160deg,rgba(19,34,56,.98),rgba(13,27,46,.98));border:1px solid rgba(255,255,255,.075);border-right:4px solid var(--line);border-radius:20px;padding:17px;box-shadow:0 14px 34px rgba(0,0,0,.20)}
.dcard.band-green{border-right-color:var(--green)}
.dcard.band-red{border-right-color:var(--red)}
.dcard.band-gold{border-right-color:var(--gold)}
.dcard-head{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;flex-wrap:wrap}
.dcard-type{display:inline-block;font-size:11px;font-weight:800;color:var(--gold);background:var(--band-gold-bg);border:1px solid var(--band-gold-br);padding:3px 10px;border-radius:999px;margin-bottom:7px}
.dcard-title h4{margin:0;font-size:16px;line-height:1.5}
.dcard-badges{display:flex;flex-direction:column;gap:6px;align-items:flex-end}
.dpill{font-size:11px;font-weight:800;padding:5px 11px;border-radius:999px;white-space:nowrap;border:1px solid transparent}
.status-active{background:var(--band-blue-bg);border-color:var(--band-blue-br);color:var(--blue)}
.status-done{background:rgba(255,255,255,.05);border-color:var(--line);color:#9fb0c5}
.status-pending{background:var(--band-gold-bg);border-color:var(--band-gold-br);color:var(--gold)}
.imp-high{background:var(--band-red-bg);border-color:var(--band-red-br);color:#fca5a5}
.imp-mid{background:var(--band-gold-bg);border-color:var(--band-gold-br);color:var(--gold)}
.imp-low{background:rgba(255,255,255,.05);border-color:var(--line);color:#9fb0c5}

/* ---- term impact strip ---- */
.dterm-strip{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin:14px 0}
.dterm{background:#0b1728;border:1px solid var(--line);border-radius:13px;padding:11px;text-align:center}
.dterm small{display:block;color:var(--muted);font-size:11px;margin-bottom:5px}
.dterm strong{font-size:14px}
.dterm-pos{border-color:var(--band-green-br);background:var(--band-green-bg)} .dterm-pos strong{color:var(--green)}
.dterm-neg{border-color:var(--band-red-br);background:var(--band-red-bg)}   .dterm-neg strong{color:var(--red)}
.dterm-neu{border-color:var(--band-gold-br);background:var(--band-gold-bg)} .dterm-neu strong{color:var(--gold)}

/* ---- score row ---- */
.dscore-row{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin:14px 0}
.dscore{background:#0b1728;border:1px solid var(--line);border-radius:13px;padding:12px}
.dscore small{display:block;color:var(--muted);font-size:11px;margin-bottom:6px}
.dscore-num{font-size:21px;font-weight:900;color:#fff}
.dscore-num em{font-size:12px;font-weight:700;color:var(--muted);font-style:normal}
.dscore-impact{border-width:1px}
.dscore-impact.band-green{border-color:var(--band-green-br)} .dscore-impact.band-green .dscore-num{color:var(--green)}
.dscore-impact.band-red{border-color:var(--band-red-br)}     .dscore-impact.band-red .dscore-num{color:var(--red)}
.dscore-impact.band-gold{border-color:var(--band-gold-br)}   .dscore-impact.band-gold .dscore-num{color:var(--gold)}

/* ---- opinion ---- */
.dopinion{background:#0c192b;border:1px solid var(--line);border-radius:14px;padding:13px 15px;margin:14px 0}
.dopinion h5{margin:0 0 7px;font-size:13px;color:var(--gold)}
.dopinion p{margin:0;line-height:1.85;color:#e6eef8;white-space:pre-line}

/* ---- investor / trader lenses ---- */
.dlenses{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin:14px 0}
.dlens{background:#0b1728;border:1px solid var(--line);border-radius:14px;padding:13px}
.dlens-tag{display:inline-block;font-size:11px;font-weight:800;padding:3px 10px;border-radius:999px;margin-bottom:8px}
.dlens-invest{border-color:var(--band-green-br)} .dlens-invest .dlens-tag{background:var(--band-green-bg);color:var(--green)}
.dlens-trade{border-color:var(--band-blue-br)}   .dlens-trade .dlens-tag{background:var(--band-blue-bg);color:var(--blue)}
.dlens p{margin:0;line-height:1.75;color:#c5d0df;font-size:13px}

/* ---- watch list ---- */
.dwatch h5{margin:0 0 8px;font-size:13px;color:var(--gold)}
.dwatch-list{list-style:none;margin:0;padding:0;display:grid;gap:7px}
.dwatch-list li{position:relative;background:#0c192b;border:1px solid var(--line);border-radius:11px;padding:10px 34px 10px 12px;line-height:1.6;font-size:13px;color:#dbe6f3}
.dwatch-list li::before{content:"◈";position:absolute;right:12px;top:10px;color:var(--gold)}

/* ---- card footer ---- */
.dcard-foot{margin-top:13px;padding-top:12px;border-top:1px solid var(--line)}
.dcard-src{color:var(--blue);font-size:12px;font-weight:700;text-decoration:none}

/* ---- impact matrix (panel 2) ---- */
.impact-matrix{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin-top:12px}
.impact-matrix .imx-cell{background:#0b1728;border:1px solid var(--line);border-radius:14px;padding:14px;text-align:center}
.impact-matrix .imx-cell small{display:block;color:var(--muted);margin-bottom:7px}
.impact-matrix .imx-cell strong{font-size:22px}

/* ---- scenarios (panel 3) ---- */
.scenario-list{display:grid;gap:11px;margin-top:12px}
.scenario-list .scenario{background:#0b1728;border:1px solid var(--line);border-radius:14px;padding:14px;border-right:4px solid var(--line)}
.scenario-list .scenario.bull{border-right-color:var(--green)}
.scenario-list .scenario.bear{border-right-color:var(--red)}
.scenario-list .scenario.base{border-right-color:var(--gold)}
.scenario-list .scenario header{display:flex;justify-content:space-between;gap:10px;align-items:center;margin-bottom:6px}
.scenario-list .scenario header span{font-size:12px;font-weight:800;color:var(--gold)}
.scenario-list .scenario small{display:block;margin-top:7px;color:var(--muted)}

/* ---- management performance (panel 4) ---- */
.mgmt-head{display:flex;justify-content:space-between;align-items:center;gap:14px;margin-bottom:14px}
.mgmt-score{width:88px;height:88px;flex:none;border-radius:50%;display:grid;place-content:center;text-align:center;background:#081524;border:6px solid var(--gold)}
.mgmt-score strong{font-size:26px;display:block} .mgmt-score small{color:var(--muted)}

/* ---- responsive ---- */
@media(max-width:600px){
  .board-head{flex-direction:column}
  .dscore-row{grid-template-columns:1fr 1fr}
  .dlenses{grid-template-columns:1fr}
  .dterm-strip{grid-template-columns:1fr}
  .impact-matrix{grid-template-columns:1fr}
  .dcard-badges{flex-direction:row;flex-wrap:wrap;align-items:flex-start}
}
/* ===== عقل النواة (Decision Engine panel) ===== */
.brain-card{border:1px solid var(--gold)!important;background:linear-gradient(160deg,rgba(30,40,60,.6),rgba(15,25,40,.6))}
.brain-head h3{margin:4px 0}
.brain-decisions{display:grid;grid-template-columns:repeat(5,1fr);gap:8px;margin:12px 0}
.brain-dec{background:#0b1728;border:1px solid var(--line);border-radius:12px;padding:10px;text-align:center}
.brain-dec small{display:block;color:var(--muted);font-size:11px;margin-bottom:5px}
.brain-dec strong{font-size:16px}
.brain-dec.di strong{color:var(--green)} .brain-dec.dt strong{color:var(--blue)}
.brain-dec em{font-size:11px;color:var(--muted);font-style:normal}
.brain-hard{background:rgba(239,68,68,.14);border:1px solid rgba(239,68,68,.4);color:#fca5a5;padding:10px 12px;border-radius:10px;font-weight:700;margin:10px 0}
.brain-grid{display:grid;grid-template-columns:repeat(6,1fr);gap:6px;margin:12px 0}
.brain-eng{background:#0b1728;border:1px solid var(--line);border-radius:10px;padding:8px 6px;text-align:center}
.brain-eng small{display:block;color:var(--muted);font-size:10px;margin-bottom:4px}
.brain-eng strong{font-size:15px}
.brain-why{margin-top:8px}
.brain-why summary{cursor:pointer;color:var(--gold);font-weight:700;font-size:13px}
.brain-why-list{list-style:none;margin:8px 0 0;padding:0;display:grid;gap:5px}
.brain-why-list li{display:flex;justify-content:space-between;background:#0c192b;border:1px solid var(--line);border-radius:9px;padding:7px 11px;font-size:13px}
@media(max-width:600px){.brain-decisions{grid-template-columns:1fr 1fr}.brain-grid{grid-template-columns:repeat(3,1fr)}}

/* --- report selectors emitted by buildPrintDocument() that had no rule --- */
#printWatermark{position:absolute;inset:0;z-index:0;pointer-events:none;overflow:hidden}
#printWatermark span{position:absolute;right:0;left:0;text-align:center;font-size:26pt;font-weight:800;
  color:#0f3f6b;opacity:.05;transform:rotate(-24deg);white-space:nowrap;letter-spacing:.06em}
.print-footer-rights{font-size:7.5pt;color:#64748b;letter-spacing:.01em}
.print-toc-page ol{list-style:none;counter-reset:toc;padding:0;margin:8mm 0 0}
.print-toc-page ol li{counter-increment:toc;display:flex;align-items:baseline;gap:3mm;
  padding:3.2mm 0;border-bottom:1px dotted #cbd5e1;font-size:11pt;color:#0f172a}
.print-toc-page ol li::before{content:counter(toc);flex:0 0 7mm;height:7mm;border-radius:50%;
  background:#0f3f6b;color:#fff;font-size:8.5pt;font-weight:700;display:flex;align-items:center;justify-content:center}

/* ============================================================
   RESPONSIVE SHELL — added, nothing above is modified.
   Problem measured before this block:
     main{max-width:880px} was the ONLY width rule and there was
     no breakpoint above 600px, so on a 1920px viewport roughly
     375px of usable space was dead on EACH side.
   Approach: widen the shell in steps, scale the gutters with the
   viewport, and stop well short of edge-to-edge so text stays
   readable and cards never look stretched.
   ============================================================ */

/* never allow a sideways scrollbar, at any width.

   `clip`, NOT `hidden`, AND THAT ONE WORD WAS BREAKING THE STICKY HEADER.
   overflow:hidden on the root turns it into a scroll container, and
   position:sticky resolves against the nearest scrolling ancestor — so the top
   bar was sticky against a container that never scrolled, and scrolled away
   with the page. The navigation was unreachable from anywhere below the fold.
   overflow-x:clip prevents the sideways scrollbar exactly as before and does
   NOT create a scroll container, so sticky works again. */
html,body{max-width:100%;overflow-x:clip}
img,svg,canvas,video,table{max-width:100%}

/* fluid gutters: 14px on a phone, up to 32px on a wide desktop */
main{padding-inline:clamp(14px,2.6vw,32px)}

/* --- tablet: same single column, roomier gutters --- */
@media(min-width:601px){
  main{max-width:820px}
  .card{padding:20px;border-radius:20px}
}

/* --- small laptop --- */
@media(min-width:1024px){
  main{max-width:1040px}
  .card{padding:22px;margin-bottom:16px}
}

/* --- laptop / desktop: the width the screenshot showed as wasted --- */
@media(min-width:1280px){
  main{max-width:1180px}
  .card{padding:24px}
}

/* --- large desktop: widen once more, then stop on purpose --- */
@media(min-width:1600px){
  main{max-width:1320px}
}

/* the top bar tracks the same rhythm so the logo lines up with the cards */
@media(min-width:1024px){
  .topbar{padding-inline:clamp(18px,2.6vw,36px)}
}

/* --- phone: comfortable padding, nothing clipped --- */
@media(max-width:600px){
  main{padding:14px 12px 112px}
  .card{padding:16px;border-radius:18px}
}

/* ============================================================
   HEADER LOGO — moderately larger, wordmark and subtitle kept clear.
   .logo-mark.small was 46px; its inner parts are pinned in px, so
   they are bumped with it or the lens ring and handle look thin.
   ============================================================ */
.logo-mark.small{width:56px;height:56px}
.logo-mark.small .lens{border-width:4px}
.logo-mark.small .trend{font-size:21px}
.logo-mark.small .handle{height:5px}
.brand{gap:12px}
.brand strong{font-size:20px;line-height:1.25}
.brand small{font-size:12.5px;line-height:1.35;display:block}

/* الشعار صار زرًّا يعيد إلى البحث. الشكل يبقى كما هو تمامًا، والفرق أنّه صار
   قابلًا للتركيز بلوحة المفاتيح وله حلقة تركيز ظاهرة. الزرّ يرث خلفية ومساحة
   وخطًّا من المتصفح، فتُصفَّر هنا صراحةً لئلا يظهر مستطيل رمادي حول الشعار. */
button.brand{background:transparent;padding:0;margin:0;font:inherit;color:inherit;
  text-align:start;border:0;cursor:pointer;border-radius:14px;
  -webkit-tap-highlight-color:transparent}
button.brand:hover strong{color:var(--blue)}
/* حلقة التركيز لا تُحذف أبدًا: هي الطريقة الوحيدة التي يعرف بها من يتنقّل
   بلوحة المفاتيح أين هو. :focus-visible تُظهرها للوحة المفاتيح دون الفأرة. */
button.brand:focus-visible{outline:2px solid var(--blue);outline-offset:4px}

/* ===== اختيار الشركة: بالرقم أو بالاسم =====
   الحقل والزر داخل غلاف نسبي، والقائمة تطفو فوق ما بعدها بدل أن تدفعه. دفع
   المحتوى يجعل الصفحة تقفز مع كل حرف يُكتب. */
.combo{position:relative;flex:1;display:flex;align-items:stretch}
.combo input{flex:1;min-width:0;padding-inline-end:46px}
.combo-toggle{position:absolute;inset-inline-end:6px;top:50%;transform:translateY(-50%);
  width:38px;height:38px;display:grid;place-items:center;border-radius:10px;
  background:transparent;color:var(--muted);font-size:15px;line-height:1}
.combo-toggle:hover{color:#fff;background:#152640}
.combo-toggle:focus-visible{outline:2px solid var(--blue);outline-offset:2px}
.combo-list{position:absolute;z-index:40;top:calc(100% + 6px);inset-inline:0;margin:0;padding:6px;
  list-style:none;max-height:min(58vh,420px);overflow:auto;overscroll-behavior:contain;
  background:#0b1728;border:1px solid #2b3e59;border-radius:14px;
  box-shadow:0 18px 44px rgba(0,0,0,.45)}
.combo-item{display:flex;gap:10px;align-items:baseline;padding:11px 12px;border-radius:10px;cursor:pointer}
/* اللمس: 44 بكسل هي الحد الأدنى، والحشو أعلاه يبلغها مع ارتفاع السطر */
.combo-item+.combo-item{margin-top:2px}
.combo-item:hover,.combo-item.active{background:#18304d}
/* الاختيار لا يُبلَّغ باللون وحده: الشريط الجانبي يبقى في تدرّج رمادي وفي طباعة */
.combo-item.active{box-shadow:inset 3px 0 0 var(--green)}
.combo-sym{color:var(--blue);font-weight:800;font-variant-numeric:tabular-nums;flex:0 0 auto}
.combo-name{color:#dce7f5;line-height:1.5}
.combo-empty{padding:14px 12px;color:var(--muted);font-size:14px}
@media(max-width:600px){
  /* الحقل والزر يتكدّسان رأسيًّا على الجوّال (search-wrap يقلب الاتجاه)، فتبقى
     القائمة ملتصقة بالحقل لا بالغلاف كلّه */
  .combo-list{max-height:min(50vh,340px)}
  .combo-item{padding:13px 12px}
}

@media(min-width:1024px){
  .logo-mark.small{width:62px;height:62px}
  .logo-mark.small .lens{border-width:4.5px}
  .logo-mark.small .trend{font-size:23px}
  .brand strong{font-size:22px}
  .brand small{font-size:13px}
}

/* phones: keep it clearly larger than before but not dominant */
@media(max-width:600px){
  .logo-mark.small{width:50px;height:50px}
  .logo-mark.small .trend{font-size:19px}
  .brand strong{font-size:19px}
}

/* ============================================================
   BOTTOM NAVIGATION — added block, no rule above is modified.
   Measured before:
     .bottom-nav button      font-size 18px, colour #75869c
     .bottom-nav button span font-size 11px
     buttons had no explicit alignment, no minimum touch height,
     and the bar stretched the full viewport, so on a 1920px screen
     five items floated far apart with nothing tying them together.
   RTL source order is untouched: this block styles only, it never
   reorders, and the markup is not edited.
   ============================================================ */

.bottom-nav{
  /* the bar background still spans edge to edge; the BUTTONS are what
     gets centred, via padding, so no wrapper element is needed */
  padding-inline:10px;
  gap:2px;
  align-items:stretch;
}

.bottom-nav button{
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  gap:5px;                    /* was margin-top:4px on the label only */
  min-height:56px;            /* comfortable touch target */
  padding:6px 2px;
  border-radius:14px;
  font-size:22px;             /* icon: was 18px */
  line-height:1;
  color:#9fb0c6;              /* was #75869c — raises contrast on the dark bar */
  transition:color .15s ease, background-color .15s ease;
}

.bottom-nav button span{
  display:block;
  margin-top:0;               /* spacing now comes from the flex gap */
  font-size:12.5px;           /* label: was 11px */
  line-height:1.2;
  font-weight:600;
  letter-spacing:.1px;
  white-space:nowrap;
}

.bottom-nav button:hover{color:#cfdcea}

.bottom-nav button.active{
  color:var(--green);
  background:rgba(34,197,94,.10);   /* active state readable at a glance,
                                       not colour alone */
}

/* keyboard focus must be visible, and must not shift layout */
.bottom-nav button:focus-visible{
  outline:2px solid var(--green);
  outline-offset:-2px;
}

/* content must clear the taller bar, on every device, including
   phones with a home indicator */
main{padding-bottom:calc(124px + env(safe-area-inset-bottom))}

/* --- phone --- */
@media(max-width:600px){
  .bottom-nav{padding-inline:6px;gap:0}
  .bottom-nav button{min-height:54px;font-size:21px;border-radius:12px}
  .bottom-nav button span{font-size:12px}
  main{padding-bottom:calc(118px + env(safe-area-inset-bottom))}
}

/* --- very narrow phones: keep five labels on one line each --- */
@media(max-width:360px){
  .bottom-nav button{font-size:20px}
  .bottom-nav button span{font-size:11px;letter-spacing:0}
}

/* --- tablet --- */
@media(min-width:601px){
  .bottom-nav button{min-height:58px;font-size:23px}
  .bottom-nav button span{font-size:13px}
  /* centre the five items instead of spreading them to the edges */
  .bottom-nav{padding-inline:max(10px,calc((100% - 560px)/2))}
}

/* --- laptop / desktop: the group tracks the content shell --- */
@media(min-width:1024px){
  .bottom-nav{padding-inline:max(12px,calc((100% - 640px)/2));gap:4px}
  .bottom-nav button{min-height:60px;font-size:24px;border-radius:16px}
  .bottom-nav button span{font-size:13.5px}
  main{padding-bottom:calc(132px + env(safe-area-inset-bottom))}
}

/* ─── قياسات التقييم: سجلّ الطرق والمركز الإرشادي ────────────────────────────
 * تُستعمل على سطحين: بطاقة الفرص وصفحة السهم. كانت الأنماط محلية داخل
 * opportunities.html، فظهرت الكتلتان بلا نمط أول مرة رُكّبتا فيها على صفحة
 * السهم. مولِّد واحد يقتضي ورقة أنماط واحدة. */
.indic{margin-top:8px;padding-top:7px;border-top:1px dashed rgba(148,163,184,.28);font-size:12px}
.indic>b{display:block;font-size:12px;font-weight:600}
.indic>b span{font-size:13px}
.indic .muted{display:block;margin-top:3px;font-size:11px;line-height:1.65}
/* الحاشية ترث حجم نصّها: قاعدة `b{font-size:15px}` في بطاقة الفرص كانت
   تتسرّب فتُرسم «تشتّت 26%» بحجم القيمة العادلة نفسها. */
.indic .muted b,.mledger b{font-size:inherit;font-weight:700}
.mledger{margin-top:8px;font-size:12px}
.mledger>summary{cursor:pointer;color:var(--muted);padding:3px 0;list-style:none}
.mledger>summary::-webkit-details-marker{display:none}
.mledger>summary::before{content:'▾ ';font-size:10px}
.mledger[open]>summary::before{content:'▴ '}
.mledger>summary:hover{color:var(--text)}
.mledger table{width:100%;border-collapse:collapse;margin-top:6px;table-layout:fixed}
.mledger th{padding:4px 6px;text-align:start;font-weight:600;color:var(--muted);font-size:11px;border-bottom:1px solid rgba(148,163,184,.28)}
.mledger th:nth-child(1),.mledger td:nth-child(1){width:26%}
.mledger th:nth-child(2),.mledger td:nth-child(2){width:20%}
.mledger td{padding:4px 6px;border-top:1px solid rgba(148,163,184,.18);vertical-align:top;text-align:start;word-break:break-word}
.mledger td.v{white-space:nowrap}
.mledger td.m{color:var(--muted);font-size:11px;line-height:1.6}
.mledger p{margin:6px 0 0;font-size:11px;line-height:1.6}
/* الأحمر الصغير دون AA عند 11px — درجة أفتح للحواشي وحدها. */
.mledger .neg,.indic .neg{color:#f87171}
/* سجلّ الطرق على الشاشات الضيّقة.
   القاعدة العامّة `table{min-width:700px}` كُتبت لجداول تعيش داخل `.table-wrap`
   ذات التمرير؛ وهذا الجدول وُلد بعدها بلا غلاف، فورثها. النتيجة المقيسة على
   عرض 360: الجدول 700px داخل حاوية 302px، بلا أبٍ قابل للتمرير، فيفيض ثم
   يقصّه `body{overflow-x:hidden}` صامتًا — ويضيع عمود «المرجع والثقة والوزن»،
   أي سبب امتناع كل طريقة وثقتها. الإصلاح يبطل الوراثة ويُلزم الجدول بعرض
   حاويته، ولا يعتمد على إخفاء الفيض. */
.mledger table{min-width:0;max-width:100%}
.mledger td.m{overflow-wrap:anywhere}
@media(max-width:600px){
  /* عمودان فقط بعرض ثابت والثالث يأخذ الباقي ويلتفّ — قراءة كاملة بلا تمرير */
  .mledger table{display:table;table-layout:fixed;width:100%;min-width:0}
  .mledger th:nth-child(1),.mledger td:nth-child(1){width:34%}
  .mledger th:nth-child(2),.mledger td:nth-child(2){width:22%}
  .mledger th:nth-child(3),.mledger td:nth-child(3){width:44%}
  .mledger td.v{white-space:normal}
  .mledger th,.mledger td{padding:4px 4px}
}

/* ── حداثة البيانات ──────────────────────────────────────────────────────────
   الشارة لا تنقل حالتها باللون وحده أبدًا (قاعدة #37، خطورة عالية): لكل حالة
   نصّ ورمز شكلي وتلوين. الرمز يختلف في الشكل لا في التعبئة فقط، لأن تقرير PDF
   الذي تصدّره المنصة يُطبع بتدرّج رمادي — والتلوين وحده يختفي هناك تمامًا.
   التباعد منطقي (inline/block) لا يمين/يسار، فالصفحة RTL.
   التباين مقيس لا مُدّعى: ‎--text على ‎--card2 = 15.28:1، و‎--muted = 6.29:1
   (الحدّ 4.5:1). انظر tests-freshness-badge.js. */
.freshness{
  display:inline-flex;align-items:center;gap:6px;
  padding-inline:9px;padding-block:3px;
  border:1px solid var(--line);border-radius:999px;
  background:var(--card2);
  font-size:12px;line-height:1.5;color:var(--text);
  white-space:nowrap;vertical-align:middle
}
.freshness__glyph{font-size:10px;line-height:1}
.freshness__label{font-weight:600}
.freshness__age,.freshness__cov{color:var(--muted)}
.freshness__age::before,.freshness__cov::before{content:"·";margin-inline-end:6px;color:var(--line)}

.freshness--green{background:var(--band-green-bg);border-color:var(--band-green-br)}
.freshness--green .freshness__glyph{color:var(--green)}
.freshness--gold {background:var(--band-gold-bg); border-color:var(--band-gold-br)}
.freshness--gold  .freshness__glyph{color:var(--gold)}
.freshness--red  {background:var(--band-red-bg);  border-color:var(--band-red-br)}
.freshness--red   .freshness__glyph{color:var(--red)}
.freshness--blue {background:var(--band-blue-bg); border-color:var(--band-blue-br)}
.freshness--blue  .freshness__glyph{color:var(--blue)}

/* الطباعة: التلوين يذهب، فيبقى الرمز والنص — وهما وحدهما كانا يحملان المعنى. */
@media print{
  .freshness{background:none;border-color:#999;color:#000}
  .freshness__age,.freshness__cov{color:#333}
  .freshness__glyph{color:#000}
}

/* ── جداول الملكية ───────────────────────────────────────────────────────────
   الاتجاه لا يُنقل باللون وحده (قاعدة #37): سهم ▲▼ يبقى في تقرير PDF الرمادي
   الذي تصدّره المنصة، والتلوين وحده يختفي هناك. التباعد منطقي لا يمين/يسار. */
.own-table{margin-block:14px}
.own-scroll{overflow-x:auto;-webkit-overflow-scrolling:touch}
.own-grid{width:100%;border-collapse:collapse;font-size:13px;min-width:640px}
.own-grid th,.own-grid td{padding:8px 10px;text-align:start;border-bottom:1px solid var(--line);white-space:nowrap}
.own-grid th{color:var(--muted);font-weight:600;font-size:12px;background:var(--card2);position:sticky;top:0}
.own-grid tbody tr:hover{background:var(--card2)}
.own-row:focus-visible{outline:2px solid var(--blue);outline-offset:-2px}
.own-name{font-weight:600;white-space:normal;min-width:180px}
.own-role,.own-date{color:var(--muted)}
.own-pct,.own-shares,.own-value{font-variant-numeric:tabular-nums}
.own-sub{display:block;font-size:11px;color:var(--muted)}
.own-up{color:var(--green)}
.own-down{color:var(--red)}
.own-flat,.own-unknown{color:var(--muted)}
.own-note{margin-block-start:8px;line-height:1.6}

.own-detail dl{margin:0}
.own-dl-row{display:flex;justify-content:space-between;gap:12px;padding-block:7px;border-bottom:1px solid var(--line)}
.own-dl-row dt{color:var(--muted);font-size:12px}
.own-dl-row dd{margin:0;font-weight:600;font-variant-numeric:tabular-nums}

/* الطباعة: التلوين يذهب ويبقى السهم والنص — وهما وحدهما كانا يحملان المعنى. */
@media print{
  .own-grid{min-width:0;font-size:9px}
  .own-grid th{background:none;color:#333}
  .own-up,.own-down,.own-flat,.own-unknown{color:#000}
  .own-scroll{overflow:visible}
}

/* ===== تنبيهات السهم =====
   البطاقة تحت سطر أدوات التقرير، وتُفتح وتُطوى بالزر. */
.alerts-panel{margin-top:-6px}
.alert-group+.alert-group{margin-top:14px}
.alert-group h4{margin:0 0 8px;font-size:14px;color:var(--gold)}
.alert-row{background:#0b1728;border:1px solid var(--line);border-radius:14px;padding:12px;margin-bottom:8px}
.alert-main{display:flex;gap:10px;align-items:flex-start;cursor:pointer}
.alert-main input[type=checkbox]{width:22px;height:22px;margin-top:2px;flex:0 0 auto;accent-color:var(--green);cursor:pointer}
.alert-main strong{display:block;line-height:1.5}
.alert-main small{display:block;line-height:1.6;margin-top:2px}
.alert-level{margin-top:10px;width:100%;background:#081424;border:1px solid #293a52;color:#fff;
  border-radius:12px;padding:11px;font-size:16px}
.alert-level:focus{outline:none;border-color:var(--blue)}
.alert-why{margin:8px 0 0}
/* محفّز لا يستطيع الإطلاق لهذا السهم اليوم: يبقى ظاهرًا ومقروءًا، ويُقال سببه.
   إخفاؤه يترك القارئ يبحث عن مفتاح غائب، وتركه صامتًا يعده بما لا يأتي.
   الحالة لا تُبلَّغ باللون وحده — الشريط الجانبي يبقى في تدرّج رمادي (UX 37). */
.alert-blocked{opacity:.72;box-shadow:inset 3px 0 0 var(--muted)}
.alert-blocked .alert-why{color:var(--gold)}
@media(max-width:600px){
  .alert-row{padding:14px}
  .alert-main input[type=checkbox]{width:24px;height:24px}
}

/* ===== الآلة الحاسبة ===== */
.calc-comm{display:flex;flex-wrap:wrap;gap:10px;align-items:center;margin-top:10px}
.calc-comm label{font-weight:800;color:var(--gold)}
.calc-comm input{width:110px;background:#081424;border:1px solid #293a52;color:#fff;border-radius:12px;padding:11px;font-size:16px}
.calc-comm input:focus{outline:none;border-color:var(--blue)}
.calc-tool h3{margin:0 0 4px;font-size:18px}
.calc-tool h4{margin:0 0 8px;font-size:14px;color:var(--gold)}
.calc-grid-head,.calc-row{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.calc-grid-head{margin:12px 0 6px}
.calc-grid-head span{color:var(--muted);font-size:13px}
.calc-rows .calc-row+.calc-row{margin-top:8px}
.calc-row input,.calc-fields input{width:100%;background:#081424;border:1px solid #293a52;color:#fff;
  border-radius:12px;padding:12px;font-size:16px;font-variant-numeric:tabular-nums}
.calc-row input:focus,.calc-fields input:focus{outline:none;border-color:var(--blue)}
.calc-fields{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin:12px 0}
.calc-fields label{display:flex;flex-direction:column;gap:6px;color:var(--muted);font-size:13px}
.calc-two{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-top:6px}
.calc-out{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-top:12px}
.calc-out>div{background:#0b1728;border:1px solid var(--line);border-radius:14px;padding:12px}
.calc-out small{display:block;color:var(--muted);margin-bottom:6px;font-size:12.5px}
.calc-out strong{font-size:17px;font-variant-numeric:tabular-nums;line-height:1.4}
.calc-out strong.calc-hero{font-size:22px;color:var(--blue)}
@media(max-width:600px){
  .calc-two{grid-template-columns:1fr}
  .calc-out{grid-template-columns:1fr 1fr}
  .calc-fields{grid-template-columns:1fr}
}

/* ── الطبقة الثانية: حجم مركز قائم ─────────────────────────────────────────
   بطاقة منفصلة تحت قرار المضارب، لا سطر بداخله. الفصل البصري مقصود: الكلمتان
   تجيبان سؤالين مختلفين، وسطران متلاصقان يُقرآن جوابين لسؤال واحد فيأخذ
   القارئ الألين منهما.
   العنوان (eyebrow) شرطي يأتي من الخادم، والكلمة وحدها لا تُعرض بدونه. */
#posLayerCard .pos-action{margin:8px 0 6px}
#posLayerCard .pos-action strong{font-size:20px;font-weight:700;line-height:1.4}
#posLayerNote{margin:6px 2px 0}

/* ── تصفية سجل النشاطات ────────────────────────────────────────────────────
   حقلان وزرّ، يلتفّون إلى عمود على الجوال بدل أن يفيضوا. مساحة اللمس 44px
   لأن هذا شرط الحد الأدنى ولا استثناء له في حقول التصفية. */
.log-filters{display:flex;flex-wrap:wrap;gap:8px;align-items:flex-end;margin-top:12px}
.log-filters.hidden{display:none}
.log-field{display:flex;flex-direction:column;gap:5px;flex:1 1 190px;min-width:0}
.log-field>span{color:var(--muted);font-size:12px}
.log-field select,.log-field input{width:100%;min-height:44px;padding:10px 12px;border-radius:10px;
  border:1px solid var(--line);background:#0b1728;color:var(--text);font:inherit}
.log-field select:focus-visible,.log-field input:focus-visible{outline:2px solid var(--blue);outline-offset:2px}
.log-filters .compact-btn{min-height:44px;flex:0 0 auto}
#logCount{margin:10px 2px 0}
@media(max-width:600px){.log-field{flex:1 1 100%}.log-filters .compact-btn{width:100%}}

/* ── تصريح قسم لكل حساب ────────────────────────────────────────────────────
   المربّع يُعطَّل للمالك لأن تصريحه ضمنيّ: ضابط لا يستطيع تغيير شيء يجب
   ألّا يبدو كضابط يستطيع. */
.feature-toggle{display:inline-flex;align-items:center;gap:8px;min-height:44px;cursor:pointer;font-size:12.5px;line-height:1.6}
.feature-toggle input{width:20px;height:20px;flex:0 0 auto;accent-color:var(--blue);cursor:pointer}
.feature-toggle input:disabled{cursor:default;opacity:.6}
.feature-toggle input:disabled+span{color:var(--muted)}
.feature-toggle input:focus-visible{outline:2px solid var(--blue);outline-offset:2px}

/* ── ملف التملك: جدول الملكية ────────────────────────────────────────────── */
.own-table{width:100%;border-collapse:collapse;font-size:13px}
.own-table th,.own-table td{padding:8px 10px;text-align:right;border-bottom:1px solid var(--line);vertical-align:top}
.own-table th{color:var(--muted);font-size:12px;font-weight:600}
.own-table td{font-variant-numeric:tabular-nums}
#acqIdentityCard h4,#acqOwnCard h4{font-size:14px;font-weight:700}

/* ═══════════════════════════════════════════════════════════════════════════
   الهوية البصرية: أقراص التنقّل والزوايا التقنية

   مأخوذة من تصميم مرجعي: شريط أقراص أفقي، وشارة اسم على شكل قرص، وزوايا
   بخطوط دائرة إلكترونية بأزرق فاتح، ونقاط متتابعة كعنصر زخرفي.

   ثلاثة قيود لم تُكسر لأجل الشكل:
     التباين  — كل نصّ على القرص أبيض على أزرق داكن، محسوب أدناه ومقيس في
                 الحزمة. لم يُخفَّض لون واحد لأجل المظهر.
     اللمس    — 44 بكسل حدًّا أدنى لكل قرص، وهو شرط لا استثناء له.
     الطباعة  — كل ما هنا زخرفة، وكلّها خارج مسار الـPDF (وثيقة الطباعة مبنيّة
                 من عناصر print-page مستقلّة) ومُلغاة صراحةً تحت @media print.
   ═══════════════════════════════════════════════════════════════════════════ */

:root{
  /* قرص التنقّل: أفتح من البطاقة بما يكفي ليُقرأ عنصرًا قابلًا للضغط */
  --pill:#16304e;
  --pill-hover:#1d3e63;
  --pill-active:#24507f;
  /* الأزرق الفاتح للزوايا التقنية والنقاط */
  --accent-line:#7ec8f0;
}

/* ── شارة الاسم كقرص ───────────────────────────────────────────────────── */
.topbar .brand{
  background:var(--pill);
  border:1px solid rgba(126,200,240,.22);
  border-radius:999px;
  padding:7px 16px 7px 10px;
  min-height:44px;
}
.topbar .brand:focus-visible{outline:2px solid var(--accent-line);outline-offset:2px}

/* ── شريط الأقراص ──────────────────────────────────────────────────────── */
.pill-nav{display:none;gap:8px;align-items:center}
.pill{
  min-height:44px;
  padding:10px 20px;
  border-radius:999px;
  background:var(--pill);
  color:var(--text);
  border:1px solid rgba(126,200,240,.18);
  font-size:14px;font-weight:600;line-height:1.2;
  white-space:nowrap;
  transition:background .18s ease,border-color .18s ease;
}
.pill:hover{background:var(--pill-hover)}
.pill:focus-visible{outline:2px solid var(--accent-line);outline-offset:2px}
/* الحالة النشطة ليست لونًا وحده: حدّ أفتح وظلّ داخليّ، فلا تعتمد على تمييز
   اللون وحده (قاعدة الوصولية 10 في مراجعة اللجنة). */
.pill.active{
  background:var(--pill-active);
  border-color:rgba(126,200,240,.55);
  box-shadow:inset 0 0 0 1px rgba(126,200,240,.30);
  font-weight:700;
}

/* العرض المشترك: الأقراص فوق، والشريط السفلي يختفي — وجهتان لنفس الصفحات
   في آنٍ واحد تكرار لا فائدة منه. */
@media(min-width:900px){
  .pill-nav{display:flex}
  .bottom-nav{display:none}
  main{padding-bottom:32px}
}

/* ── الزوايا التقنية ───────────────────────────────────────────────────────
   خطوط زاويّة بأزرق فاتح في زاويتَي الصفحة السفليتين. زخرفة خالصة:
   aria-hidden، ولا تلتقط ضغطة، ولا تدفع أي محتوى. */
.tech-edge{
  position:fixed;bottom:0;width:min(240px,26vw);height:min(150px,18vh);
  pointer-events:none;z-index:0;opacity:.5;
}
.tech-edge::before,.tech-edge::after{
  content:"";position:absolute;border:2px solid var(--accent-line);border-radius:2px;
}
.tech-edge-start{inset-inline-start:0}
.tech-edge-end{inset-inline-end:0}
.tech-edge::before{
  inset-inline-start:8%;bottom:14%;width:70%;height:52%;
  border-width:0 0 2px 2px;
  clip-path:polygon(0 0,22% 0,22% 62%,100% 62%,100% 100%,0 100%);
}
.tech-edge::after{
  inset-inline-start:26%;bottom:34%;width:44%;height:30%;
  border-width:0 0 2px 2px;opacity:.55;
}

/* ── صفّ النقاط ───────────────────────────────────────────────────────────
   العنصر الزخرفي المتكرّر في التصميم المرجعي. */
.dot-row{display:flex;gap:9px;justify-content:center;margin:14px 0;pointer-events:none}
.dot-row span{width:6px;height:6px;border-radius:50%;background:var(--accent-line);opacity:.55}
.dot-row span:nth-child(even){opacity:.3}

/* ── عناوين العرض ─────────────────────────────────────────────────────────
   العناوين الكبيرة في التصميم المرجعي. clamp حتى لا تفيض على 320 بكسل. */
.display-title{
  font-size:clamp(30px,6.4vw,58px);
  font-weight:800;line-height:1.15;letter-spacing:-.01em;
  margin:0 0 10px;
}

/* الزخرفة لا تدخل الطباعة ولا تصدير الـPDF. */
@media print{
  .tech-edge,.dot-row,.pill-nav{display:none!important}
}
.print-document .tech-edge,.print-document .dot-row,
.pdf-exporting .tech-edge,.pdf-exporting .dot-row{display:none!important}

/* من يفضّل حركة أقلّ لا يرى انتقالات القرص. */
@media(prefers-reduced-motion:reduce){
  .pill{transition:none}
}


/* ── خلفية الصفحة: شموع صاعدة وهابطة ───────────────────────────────────────
   نمط SVG مضمَّن، لا صورة خارجية: سياسة الأمن تمنع مضيفًا آخر، والملفّ يبقى
   قابلًا للقراءة والتعديل بدل أن يكون كتلة معتمة.

   الوضوح أوّلًا، والشفافية هي الضمانة:
     البطاقات خلفيّتها صلبة (--card)، فلا يمرّ النمط تحت نصّ مقروء أصلًا.
     وما يظهر منه إنما يظهر في الفراغ بين البطاقات، بشفافية .055 فوق تدرّج
     الخلفية القائم، فلا يقترب من عتبة التباين لأي نصّ.
     وthead المثبَّت والأشرطة الشفّافة كلّها فوقه بترتيب الطبقات.
   وهو fixed لا scroll: خلفية تتحرّك مع التمرير تسحب العين عن النصّ. */
body::before{
  content:"";
  position:fixed;
  inset:0;
  z-index:-1;
  pointer-events:none;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='440' height='260' viewBox='0 0 440 260'%3E%3Crect x='19' y='104' width='2' height='96' fill='%2322c55e'/%3E%3Crect x='14' y='138' width='12' height='62' rx='1.5' fill='%2322c55e'/%3E%3Crect x='45' y='126' width='2' height='74' fill='%23ef4444'/%3E%3Crect x='40' y='156' width='12' height='44' rx='1.5' fill='%23ef4444'/%3E%3Crect x='71' y='88' width='2' height='112' fill='%2322c55e'/%3E%3Crect x='66' y='130' width='12' height='70' rx='1.5' fill='%2322c55e'/%3E%3Crect x='97' y='112' width='2' height='88' fill='%2322c55e'/%3E%3Crect x='92' y='148' width='12' height='52' rx='1.5' fill='%2322c55e'/%3E%3Crect x='123' y='140' width='2' height='60' fill='%23ef4444'/%3E%3Crect x='118' y='164' width='12' height='36' rx='1.5' fill='%23ef4444'/%3E%3Crect x='149' y='100' width='2' height='100' fill='%2322c55e'/%3E%3Crect x='144' y='142' width='12' height='58' rx='1.5' fill='%2322c55e'/%3E%3Crect x='175' y='148' width='2' height='52' fill='%23ef4444'/%3E%3Crect x='170' y='170' width='12' height='30' rx='1.5' fill='%23ef4444'/%3E%3Crect x='201' y='92' width='2' height='108' fill='%2322c55e'/%3E%3Crect x='196' y='134' width='12' height='66' rx='1.5' fill='%2322c55e'/%3E%3Crect x='227' y='120' width='2' height='80' fill='%2322c55e'/%3E%3Crect x='222' y='152' width='12' height='48' rx='1.5' fill='%2322c55e'/%3E%3Crect x='253' y='144' width='2' height='56' fill='%23ef4444'/%3E%3Crect x='248' y='166' width='12' height='34' rx='1.5' fill='%23ef4444'/%3E%3Crect x='279' y='82' width='2' height='118' fill='%2322c55e'/%3E%3Crect x='274' y='128' width='12' height='72' rx='1.5' fill='%2322c55e'/%3E%3Crect x='305' y='132' width='2' height='68' fill='%23ef4444'/%3E%3Crect x='300' y='160' width='12' height='40' rx='1.5' fill='%23ef4444'/%3E%3Crect x='331' y='98' width='2' height='102' fill='%2322c55e'/%3E%3Crect x='326' y='140' width='12' height='60' rx='1.5' fill='%2322c55e'/%3E%3Crect x='357' y='124' width='2' height='76' fill='%2322c55e'/%3E%3Crect x='352' y='154' width='12' height='46' rx='1.5' fill='%2322c55e'/%3E%3Crect x='383' y='146' width='2' height='54' fill='%23ef4444'/%3E%3Crect x='378' y='168' width='12' height='32' rx='1.5' fill='%23ef4444'/%3E%3Crect x='409' y='90' width='2' height='110' fill='%2322c55e'/%3E%3Crect x='404' y='132' width='12' height='68' rx='1.5' fill='%2322c55e'/%3E%3C/svg%3E");
  background-repeat:repeat;
  background-size:440px 260px;
  opacity:.055;
}
/* من يفضّل تباينًا أعلى لا يرى النمط إطلاقًا. */
@media(prefers-contrast:more){ body::before{display:none} }
/* ولا يدخل الطباعة ولا تصدير الـPDF. */
@media print{ body::before{display:none!important} }
.pdf-exporting body::before{display:none!important}

/* ── الزاوية اليمنى معكوسة ─────────────────────────────────────────────────
   الزاويتان كانتا بالشكل نفسه، فبدتا مكرّرتين لا متقابلتين. المقلوبة أفقيًا
   تجعلهما متناظرتين حول منتصف الصفحة، وهو ما يفعله التصميم المرجعي.
   inset-inline-start في صفحة RTL هو الحافة اليمنى. */
.tech-edge-start{transform:scaleX(-1)}

/* ═══════════════════════════════════════════════════════════════════════════
   التقرير: صفحة واحدة لكل قسم، مهما طال المحتوى

   .print-compact وحدها لم تكن تكفي أحيانًا، فتبقى الصفحة أطول من A4، ويلتقط
   المُصدِّر scrollHeight فيخرج ورقة ثانية فارغة تقريبًا. قِيس على تقرير 1213:
   ورقتان فارغتان من خمس عشرة، وفهرس يقول ثلاث عشرة، وسطر مقطوع في منتصفه.

   fitPrintPages() يقيس بعد التضغيط، فإن بقيت الصفحة أطول ضبط --print-fit
   بالنسبة المطلوبة بالضبط. والتحجيم من الأعلى (transform-origin) حتى ينزل
   المحتوى نحو أسفل الصفحة لا أن يتوسّطها.
   ═══════════════════════════════════════════════════════════════════════════ */
.print-document.pdf-exporting .print-page{ --print-fit:1 }
.print-document.pdf-exporting .print-page > *:not(footer):not(.print-watermark){
  transform:scale(var(--print-fit));
  transform-origin:top right;      /* الوثيقة RTL: المنشأ من أعلى اليمين */
  width:calc(100% / var(--print-fit));
}
/* التذييل لا يُصغَّر: رقم الصفحة وحقوقها يبقيان بحجم واحد في كل الأوراق. */
.print-document.pdf-exporting .print-page > footer{transform:none;width:auto}

/* ── التذييل العربي ──────────────────────────────────────────────────────────
   نصّ الحقوق كان يخرج مشوّهًا من الصفحة الثانية فصاعدًا («جميع الجقوق مهـوظ…»)
   بينما يخرج سليمًا في الغلاف. الفارق أن نصّ الغلاف عنصر مستقلّ، ونصّ التذييل
   عنصر داخل حاوية flex تحمل الرقم اللاتيني بجانبه: يقع النصّ العربي والرقم في
   مجرى ثنائي الاتجاه واحد، فيعيد المُصدِّر ترتيب المقاطع.
   isolate يفصل مجرى كلٍّ منهما، وembed يثبّت اتجاه العربية داخله. */
.print-page footer > span{unicode-bidi:isolate;direction:rtl;text-align:right}
.print-page footer > b{unicode-bidi:isolate;direction:ltr;font-variant-numeric:tabular-nums}

/* ── فراغات لا تحتاج بطاقة ──────────────────────────────────────────────────
   «لم تُجمع بيانات هذا القسم بعد» كانت تُرسَم ثلاث مرّات في صناديق بارتفاع
   بطاقة كاملة، فتأكل ثلث صفحة لتقول لا شيء ثلاثًا. الرسالة تبقى — الغياب
   يُقال — لكن بارتفاع سطر. */
.print-document .own-empty,.print-document .axis-chip:empty{min-height:0;padding:6px 9px}
.print-document .own-empty + .own-empty{display:none}

/* ══════════════════════════════════════════════════════════════════════════
   المؤشرات الفنية
   --------------------------------------------------------------------------
   قاعدتان في هذا القسم:

   ١· اللون مساعد لا حامل. كل حالة مكتوبة بالحروف داخل .ind-state، واللون
      يزيدها سرعةَ التقاط ولا يحملها وحده. قارئٌ لا يميّز الأحمر من الأخضر
      يقرأ نفس المعلومة كاملة، وهذا شرط لا تحسين.

   ٢· البطاقة تحتمل الغياب. .is-off ليست حالة خطأ بل حالة عادية: مؤشر لا
      تكفي بياناته على فاصل ما يبقى في مكانه بترتيبه، مطفأً ومعلّلًا، ولا
      يختفي. اختفاؤه يجعل القارئ يظنّ أن المؤشر غير موجود أصلًا.
   ══════════════════════════════════════════════════════════════════════════ */

/* الإطار الزمني */
#techFrames{display:flex;align-items:center;gap:14px;flex-wrap:wrap}
.tf-label{color:var(--muted);font-size:13px;flex:0 0 auto}
.tf-row{display:flex;gap:7px;overflow-x:auto;flex:1;padding-bottom:2px;scrollbar-width:thin}
.tf-chip{flex:0 0 auto;background:#101d31;color:#9fb0c5;border:1px solid #22324a;
  border-radius:999px;padding:9px 15px;font-weight:700;font-size:14px;white-space:nowrap}
.tf-chip:hover{background:#18304d;color:#dce7f5}
.tf-chip:focus-visible{outline:2px solid var(--blue);outline-offset:2px}
.tf-chip.active{background:#1c3a5c;color:#fff;border-color:var(--blue);box-shadow:0 0 0 1px var(--blue) inset}

/* الأقسام والشبكة */
.ind-section .section-title{margin-bottom:14px}
.ind-section h3{margin:0;font-size:19px}
.ind-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(268px,1fr));gap:11px}

/* البطاقة */
.ind-card{background:#0b1728;border:1px solid #1d2d45;border-radius:16px;padding:14px;
  display:flex;flex-direction:column;gap:9px}
.ind-card.is-off{opacity:.72;border-style:dashed}
.ind-head{display:flex;justify-content:space-between;align-items:flex-start;gap:8px}
.ind-head h4{margin:0;font-size:15.5px;line-height:1.45}
.ind-en{color:var(--muted);font-size:11.5px;display:block;margin-top:3px;unicode-bidi:isolate;direction:ltr}
.ind-info{flex:0 0 auto;width:26px;height:26px;border-radius:50%;background:#16273f;color:#9fb0c5;
  font-weight:900;font-size:13px;line-height:1;border:1px solid #22324a}
.ind-info:hover{background:#1e3452;color:#fff}
.ind-info:focus-visible{outline:2px solid var(--blue);outline-offset:2px}
.ind-help{background:#081524;border:1px solid #1d2d45;border-radius:11px;padding:11px;font-size:13px;line-height:1.75}
.ind-help p{margin:0 0 8px}
.ind-help p:last-child{margin:0}
.ind-help b{color:var(--gold)}

/* القراءة */
.ind-readings{display:flex;flex-wrap:wrap;gap:7px}
.ind-reading{background:#081524;border-radius:10px;padding:8px 11px;min-width:82px;flex:1 1 auto}
.ind-reading small{display:block;color:var(--muted);font-size:11px;margin-bottom:4px;unicode-bidi:isolate}
.ind-reading b{font-size:18px;font-variant-numeric:tabular-nums;unicode-bidi:isolate;direction:ltr;display:inline-block}
.ind-off{margin:0;padding:11px;background:#0d1a2c;border:1px dashed #33455f;border-radius:10px;
  color:var(--muted);font-size:13.5px;text-align:center}

/* الحالة */
.ind-state{align-self:flex-start;padding:6px 12px;border-radius:999px;font-weight:800;font-size:13px;
  border:1px solid transparent}
.tone-up{background:rgba(34,197,94,.14);color:#4ade80;border-color:rgba(34,197,94,.3)}
.tone-down{background:rgba(239,68,68,.13);color:#f87171;border-color:rgba(239,68,68,.28)}
.tone-warn{background:rgba(242,193,78,.13);color:#f2c14e;border-color:rgba(242,193,78,.3)}
.tone-flat{background:rgba(56,189,248,.1);color:#7dd3fc;border-color:rgba(56,189,248,.24)}
.tone-off{background:rgba(148,163,184,.1);color:#94a3b8;border-color:rgba(148,163,184,.24)}

.ind-interp{margin:0;color:#cbd8e8;font-size:13.5px;line-height:1.85}

/* القياسات الجانبية */
.ind-details{display:grid;grid-template-columns:repeat(auto-fill,minmax(118px,1fr));gap:6px;
  border-top:1px solid #1d2d45;padding-top:9px}
.ind-details>div{display:flex;flex-direction:column;gap:2px}
.ind-details small{color:var(--muted);font-size:10.5px}
.ind-details span{font-size:13px;font-variant-numeric:tabular-nums}

.ind-foot{display:flex;flex-wrap:wrap;gap:8px;align-items:center;justify-content:space-between;
  border-top:1px solid #1d2d45;padding-top:9px;color:var(--muted);font-size:11px}
.ind-compare{background:transparent;color:var(--blue);border:1px solid #23405f;border-radius:9px;
  padding:6px 10px;font-size:11.5px;font-weight:700}
.ind-compare:hover{background:#132a44;color:#fff}
.ind-compare:focus-visible{outline:2px solid var(--blue);outline-offset:2px}

/* مقارنة الفواصل */
.ind-compare-out{border-top:1px solid #1d2d45;padding-top:9px}
.cmp-table{width:100%;min-width:0;border-collapse:collapse;font-size:12.5px}
.cmp-table th,.cmp-table td{padding:7px 8px;border-bottom:1px solid #1a2940;text-align:right;white-space:nowrap}
.cmp-table th{color:var(--muted);font-weight:700;font-size:11px}
.cmp-table td:nth-child(2){font-variant-numeric:tabular-nums;unicode-bidi:isolate;direction:ltr;text-align:right}

/* مصدر البيانات */
.prov summary{cursor:pointer;color:var(--blue);font-weight:700;font-size:14px;padding:2px 0}
.prov summary:focus-visible{outline:2px solid var(--blue);outline-offset:3px}
.prov-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(158px,1fr));gap:8px;margin:13px 0 4px}
.prov-grid>div{background:#0b1728;border-radius:11px;padding:10px}
.prov-grid small{display:block;color:var(--muted);font-size:11px;margin-bottom:5px}
.prov-grid strong{font-size:13px;font-weight:700;unicode-bidi:isolate}

@media(max-width:600px){
  .ind-grid{grid-template-columns:1fr}
  #techFrames{flex-direction:column;align-items:stretch;gap:9px}
  .tf-row{gap:6px}
  .ind-foot{font-size:10.5px}
}

/* ===========================================================================
 * منع الطباعة                                        (قرار المالك 2026-08-12)
 * ---------------------------------------------------------------------------
 * كل ما على الشاشة يختفي عند الطباعة، ويبقى سطرٌ واحد يقول لماذا. وهذه
 * الكتلة آخر الملفّ عمدًا: قبلها كتلُ @media print كثيرة تُنسّق صفحات التقرير
 * للطباعة، ولو وُضعت هذه قبلها لغلبتها الأخيرةُ في التتالي.
 *
 * وتصدير PDF لا يتأثّر بحرف. html2canvas يصوّر عناصر .print-page في وسط
 * الشاشة لا في وسط الطباعة (السبب مشروح عند السطر 53 من هذا الملف)، فلا تراه
 * هذه القاعدة أصلًا، ويبقى الزرّ يعمل لمن يملك تصريح report وحده.
 *
 * وليست حاجزًا مطلقًا: من يعطّل الأنماط في أدوات المطوّر يطبع. هي تغلق
 * الطريق الذي يسلكه الناس (Ctrl+P وأمر الطباعة)، لا الطريق الذي يبحث عنه من
 * يقصد الالتفاف، وذاك يُحاسَب بالإسناد لا بالمنع (watermark.js).
 * ========================================================================= */
@media print{
  html,body{background:#fff!important;height:auto!important}
  body>*{display:none!important}
  body::before{
    content:"طباعة هذه الصفحة غير متاحة. لاستخراج تقرير، استعمل زر «تقرير PDF» داخل المنصة.";
    display:block;direction:rtl;text-align:center;
    font:16px/2 "Segoe UI",Tahoma,Arial,sans-serif;color:#111;
    padding:40mm 20mm;
  }
}

/* ===========================================================================
 * ملف قرار الاستحواذ                                (أمر الرئيس 2026-08-14)
 * ---------------------------------------------------------------------------
 * لغة البوابات تمتد من صفحة الفرص إلى هنا: كل محور وكل خبيئة بطاقة تحمل
 * رمز حكمها ولونه معًا (قاعدة المشروع: الاتجاه لا يُنقل باللون وحده)، وعدد
 * البطاقات ثابت فيتعلمه القارئ. الحكم نفسه 32px بلون رمزه من الخادم، بعد أن
 * كان 16px رماديًا بينما قرارا المستثمر والمضارب 32px ملوّنان.
 * وخريطة الألوان القديمة كانت مقلوبة: المعاكس رمادي والمقيس أخضر — أصلحت:
 * لا أخضر إلا للمؤيِّد، والمعاكس أحمر بخلفية، والمقيس أزرق.
 * ========================================================================= */
.acqbar h2{font-size:32px;margin:7px 0}
.acqbar.v-yes{border-color:rgba(34,197,94,.45)}   .acqbar.v-yes h2{color:var(--green)}
.acqbar.v-cond{border-color:rgba(242,193,78,.5)}  .acqbar.v-cond h2{color:var(--gold)}
.acqbar.v-watch{border-color:rgba(56,189,248,.45)}.acqbar.v-watch h2{color:var(--blue)}
.acqbar.v-no{border-color:rgba(239,68,68,.5)}     .acqbar.v-no h2{color:#fca5a5}
.acqbar.v-unset{border-color:var(--line)}         .acqbar.v-unset h2{color:var(--muted)}
.acq-speak{text-align:center;background:#0b1728;border:1px solid #20324a;border-radius:14px;padding:10px 16px}
.acq-speak strong{display:block;font-size:24px;font-variant-numeric:tabular-nums}
.acq-speak small{color:var(--muted);font-size:11px}
.acqbar .whyline{margin:10px 0 0;padding:9px 12px;border-radius:9px;background:#0b1728;
  border-inline-start:3px solid rgba(56,189,248,.5);font-size:12.5px;line-height:1.8}

.acqgates{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:8px;margin:14px 0 0}
.ag{position:relative;background:#0b1728;border:1px solid #20324a;border-radius:12px;
    padding:26px 12px 11px;text-align:start}
.ag small{display:block;color:var(--muted);font-size:12px;line-height:1.45;min-height:1.5em}
.ag b{display:block;font-size:17px;font-weight:800;line-height:1.4;font-variant-numeric:tabular-nums;min-height:1.4em}
.ag i{display:block;font-style:normal;color:var(--muted);font-size:11.5px;line-height:1.55;margin-top:3px;
      min-height:3.1em;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}
.ag .agmark{position:absolute;top:8px;inset-inline-start:11px;font-size:13px;font-weight:800}
.ag .agstate{font-size:13px}
.ag.favourable{border-color:rgba(34,197,94,.45)} .ag.favourable b,.ag.favourable .agmark{color:var(--green)}
.ag.adverse{border-color:rgba(239,68,68,.55);background:rgba(239,68,68,.07)}
.ag.adverse b,.ag.adverse .agmark{color:#fca5a5}
.ag.measured{border-color:rgba(56,189,248,.4)}   .ag.measured b,.ag.measured .agmark{color:var(--blue)}
.ag.partial{border-color:rgba(242,193,78,.45)}   .ag.partial b,.ag.partial .agmark{color:var(--gold)}
.ag.inputonly b,.ag.inputonly .agmark{color:var(--muted)}
.ag.unmeasured{border-style:dashed}              .ag.unmeasured b,.ag.unmeasured .agmark{color:var(--muted)}
@media(min-width:1180px){.acqgates{grid-template-columns:repeat(auto-fit,minmax(140px,1fr))}}
@media(max-width:600px){.acqgates{grid-template-columns:repeat(2,1fr)}.ag b{font-size:15px}.acqbar h2{font-size:26px}}

/* dl.kv كانت بلا نمط شاشة إطلاقًا: 34 صفًّا بشكل قائمة متصفح خام بإزاحة 40px
   (لجنة التصميم 1-أ). شبكة تسمية/قيمة بمحاذاة أرقام. */
dl.kv{display:grid;grid-template-columns:minmax(9rem,auto) 1fr;gap:6px 14px;margin:8px 0 0;font-size:13.5px}
dl.kv dt{color:var(--muted)}
dl.kv dd{margin:0;font-variant-numeric:tabular-nums}
.acq-blocked td{background:rgba(239,68,68,.06)}

/* ═══ د6 (2026-09-04): مكونات لوحة المستثمر السباعية ═══════════════════════
   حكم لجنة التصميم: شكل خلية المحور واحد على السطحين، والأخضر محجوز لرقم
   مقيس باتجاهه المعلن، والغياب بجملة لا شرطة عارية، ولا بطاقة داخل بطاقة. */
.axcell{background:#0b1728;border-radius:12px;padding:11px;border:1px solid var(--line);position:relative}
.axcell small{display:block;color:var(--muted);margin-bottom:5px;font-size:10.5px}
.axcell b{font-size:15px;font-weight:800}
.axcell b.pos{color:var(--green)}.axcell b.neg{color:var(--red)}.axcell b.neu{color:var(--gold)}.axcell b.muted{color:var(--muted);font-weight:600}
.axcell .band{display:block;font-size:10px;color:var(--muted);margin-top:3px}
.axcell .why{display:block;font-size:10.5px;line-height:1.5;margin-top:2px}
.opp-chip{display:inline-block;margin-top:6px;padding:3px 12px;border-radius:999px;font-size:12.5px;font-weight:800;border:1px solid var(--line);background:#0b1728;color:#dce7f5}
.opp-chip.oc-dv{border-color:rgba(34,197,94,.45);color:var(--green)}
.opp-chip.oc-garp{border-color:rgba(56,189,248,.45);color:var(--blue)}
.opp-chip.oc-div{border-color:rgba(242,193,78,.45);color:var(--gold)}
.opp-chip.oc-asset{border-color:rgba(148,163,184,.5);color:#cbd5e1}
.thesisbox{background:#0b1728;border:1px solid var(--line);border-radius:14px;padding:12px 14px;margin:10px 0}
.thesisbox p{margin:6px 0;line-height:1.8}
.compo{background:#0b1728;border:1px solid var(--line);border-radius:14px;padding:12px 14px;margin:12px 0;display:block}
.compo .compo-word{display:block;font-size:20px;font-weight:800;margin:4px 0}
.compo.cp-good .compo-word{color:var(--green)}
.compo.cp-mid .compo-word{color:var(--gold)}
.compo.cp-warn .compo-word{color:var(--gold)}
.compo.cp-warn{border-color:rgba(242,193,78,.4)}
.compo.cp-bad .compo-word{color:var(--red)}
.compo.cp-muted .compo-word{color:var(--muted)}
.compo .why{display:block;margin-top:3px;line-height:1.6}
.subdetails{margin:10px 0;border:1px solid var(--line);border-radius:12px;background:#0b1728}
.subdetails>summary{cursor:pointer;padding:11px 14px;color:#c9d6e6;font-size:13px;list-style:none}
.subdetails>summary::-webkit-details-marker{display:none}
.subdetails>summary:before{content:'▸';color:var(--muted);margin-inline-end:8px;font-size:11px}
.subdetails[open]>summary:before{content:'▾'}
.subdetails>*:not(summary){padding:0 14px 12px}
dl.kv .kvrow,#invIncomeList .kvrow,#invStressList .kvrow{display:grid;grid-template-columns:minmax(120px,38%) 1fr;gap:8px;padding:8px 0;border-bottom:1px solid rgba(255,255,255,.05);margin:0}
.kvrow dt small{color:var(--muted)}
.kvrow dd{margin:0}
.kvrow dd strong{font-size:14.5px}
.kvrow .why{display:block;margin-top:2px;line-height:1.6}
.kvrow[data-state="NOT_APPLICABLE"] dd strong,.kvrow[data-state="UNAVAILABLE"] dd strong,.kvrow[data-state="NOT_MEASURED_YET"] dd strong{color:var(--muted);font-weight:600}
#invExitRules .gaterow{display:grid;grid-template-columns:minmax(110px,30%) 1fr auto;gap:8px;align-items:start;background:#0b1728;border:1px solid var(--line);border-radius:12px;padding:10px 12px;margin-bottom:8px}
#invExitRules .gaterow small{color:var(--muted)}
#invExitRules .gaterow strong{font-size:13.5px;line-height:1.7;font-weight:600}
#invExitRules .gaterow .state{font-size:11.5px;font-weight:800;white-space:nowrap;padding:2px 10px;border-radius:999px;border:1px solid var(--line)}
#invExitRules .gaterow .state.neg{color:var(--red);border-color:rgba(239,68,68,.45)}
#invExitRules .gaterow .state.muted{color:var(--muted)}
@media(max-width:600px){#invExitRules .gaterow{grid-template-columns:1fr;gap:4px}}
/* المحفزات المعلنة: وقائع بتاريخها، ولا لون حكم عليها */
#invCatalystsLine{display:block;margin:10px 0}
#invCatalystsLine .catlist{display:flex;flex-wrap:wrap;gap:6px;margin-top:6px}
#invCatalystsLine .cat{background:#0b1728;border:1px solid var(--line);border-radius:999px;padding:3px 11px;font-size:12px;color:#dce7f5}
#invCatalystsLine .cat i{color:var(--muted);font-style:normal;font-size:11px}
#invCatalystsLine .why{display:block;margin-top:5px;line-height:1.6}
