@import url("/assets/fonts/vazirmatn/index.css");

/* ======================================
   DESIGN TOKENS
====================================== */
:root{
  --gold-500:#D9A62E;
  --gold-600:#B9841C;
  --gold-700:#96690E;
  --gold-100:#FBF1DA;
  --gold-050:#FCF7EB;

  --graphite-950:#161B22;
  --graphite-900:#1E2530;
  --graphite-800:#252D38;
  --graphite-700:#323C4A;
  --steel-500:#61728A;
  --steel-300:#A7B4C2;

  --paper:#F5F6F8;
  --card:#FFFFFF;
  --ink-900:#161B22;
  --ink-600:#4B5563;
  --ink-400:#8A93A0;
  --line:#E4E7EC;

  --green:#2F9E5C;
  --red:#D1483F;

  --radius:14px;
  --radius-sm:10px;
  --shadow:0 4px 18px rgba(30,37,48,0.08);
}

*{box-sizing:border-box; margin:0; padding:0;}
html,body{height:100%;}
body{
  font-family:'Vazirmatn', sans-serif;
  background:var(--paper);
  color:var(--ink-900);
  font-feature-settings:"ss01";
  -webkit-font-smoothing:antialiased;
}
::selection{background:var(--gold-500); color:#fff;}
img{max-width:100%;}
button{font-family:inherit;}

.app{display:flex; min-height:100vh;}

/* ======================================
   SIDEBAR
====================================== */
.sidebar{
  width:292px; flex:0 0 292px;
  background:linear-gradient(180deg, var(--graphite-950), var(--graphite-900) 55%, #1b222c);
  color:#EEF1F4;
  padding:26px 18px 18px;
  position:sticky; top:0; height:100vh; overflow-y:auto;
  overflow-x:hidden; /* v0.7.2: Sidebar فقط اسکرول عمودی دارد */
  z-index:20;
  scrollbar-width:thin;
}
.sidebar::-webkit-scrollbar{width:6px;}
.sidebar::-webkit-scrollbar-thumb{background:rgba(255,255,255,0.12); border-radius:6px;}

.brand{display:flex; align-items:center; gap:12px; margin-bottom:24px; cursor:pointer;}
.brand-mark{
  width:84px; height:46px;
  background:transparent;
  box-shadow:none;
  padding:0;
  border-radius:0;
  display:flex; align-items:center; justify-content:center;
  flex:0 0 84px;
}
.brand-mark img{
  width:100%; height:100%; object-fit:contain;
  filter:drop-shadow(0 1px 3px rgba(0,0,0,0.45));
}
.brand-name{font-size:14.5px; font-weight:800; line-height:1.4; color:#fff;}
.brand-sub{font-size:10.3px; color:#9AA8B8; margin-top:3px; letter-spacing:.3px;}

.nav-home{
  all:unset; cursor:pointer; display:flex; align-items:center; gap:10px;
  padding:11px 12px; border-radius:10px; font-size:13.2px; color:#C3CCD6;
  font-weight:700; margin-bottom:10px; transition:background .15s, color .15s;
  width:100%; box-sizing:border-box; /* v0.7.2: all:unset باعث content-box می‌شد */
}
.nav-home:hover{background:rgba(255,255,255,0.06); color:#fff;}
.nav-home.active{background:var(--gold-500); color:#241b06;}
.nav-home .ic{width:16px; height:16px; flex:0 0 16px;}

.nav-sep{height:1px; background:rgba(255,255,255,0.08); margin:6px 0 12px;}

/* Generic recursive nav tree */
nav.tree{display:flex; flex-direction:column; gap:2px; min-width:0; max-width:100%;}
.nav-item{display:flex; flex-direction:column; min-width:0; max-width:100%;}

.nav-toggle{
  all:unset; cursor:pointer; display:flex; align-items:center; gap:10px;
  padding:10.5px 12px; border-radius:10px; font-size:12.9px; color:#C3CCD6;
  font-weight:600; transition:background .15s, color .15s;
  width:100%; max-width:100%; min-width:0;
  box-sizing:border-box; /* v0.7.2: all:unset باعث می‌شد padding به عرض ۱۰۰٪ اضافه شود */
}
/* v0.7.2: برچسب کامل و چندخطی؛ بدون برش و بدون ellipsis */
.nav-toggle .lbl{flex:1 1 auto; min-width:0; white-space:normal; overflow-wrap:anywhere; word-break:normal; line-height:1.7;}
.nav-toggle:hover{background:rgba(255,255,255,0.06); color:#fff;}
.nav-item.level-1 > .nav-toggle{font-size:13.3px; font-weight:700;}
.nav-item.level-2 > .nav-toggle{padding-right:26px; font-size:12.6px;}
.nav-item.level-3 > .nav-toggle{padding-right:40px; font-size:12.2px;}

.nav-toggle .chevron{
  width:9px; height:9px; flex:0 0 9px; margin-inline-start:auto;
  border-right:1.8px solid currentColor; border-bottom:1.8px solid currentColor;
  transform:rotate(45deg); transition:transform .2s ease; opacity:.65;
}
.nav-item.open > .nav-toggle .chevron{transform:rotate(-135deg);}
.nav-toggle .dot{
  width:6px; height:6px; border-radius:50%; background:currentColor; opacity:.55; flex:0 0 6px;
}
.nav-toggle.leaf.active{background:var(--gold-500); color:#241b06; font-weight:700;}
.nav-toggle.leaf.active .dot{background:#241b06; opacity:1;}
.nav-item.has-active-child > .nav-toggle{color:#F5D98A;}
/* v0.7: تفکیک بصری گره‌های دارای زیرمجموعه و برگ‌های سطح ریشه */
.nav-item.is-parent > .nav-toggle{font-weight:700; color:#D9E0E8;}
.nav-item.level-2.is-parent > .nav-toggle{font-size:12.9px;}
.nav-toggle.root-leaf{font-weight:700;}

.nav-children{display:grid; grid-template-columns:minmax(0,1fr); grid-template-rows:0fr; transition:grid-template-rows .25s ease; min-width:0; max-width:100%;}
.nav-item.open > .nav-children{grid-template-rows:1fr;}
.nav-children-inner{overflow:hidden; display:flex; flex-direction:column; gap:2px; min-width:0;}

.sidebar-foot{margin-top:22px; padding-top:14px; border-top:1px solid rgba(255,255,255,0.08); font-size:10.2px; color:#7D8B9A; line-height:1.9;}

/* Mobile drawer */
.menu-toggle{display:none;}
.sidebar-backdrop{display:none;}

/* ======================================
   MAIN / TOPBAR
====================================== */
main{flex:1; min-width:0;}
.topbar{
  position:sticky; top:0; z-index:5; background:rgba(245,246,248,0.9); backdrop-filter:blur(8px);
  border-bottom:1px solid var(--line); padding:16px 32px; display:flex; align-items:center; justify-content:space-between; gap:16px;
}
.topbar-titles{display:flex; flex-direction:column; gap:3px; min-width:0; flex:1 1 auto;}
.topbar h1{font-size:18.5px; font-weight:800; color:var(--graphite-950); white-space:nowrap; overflow:hidden; text-overflow:ellipsis;}
.topbar .crumb{font-size:11.7px; color:var(--ink-400); white-space:nowrap; overflow:hidden; text-overflow:ellipsis;}
.content{padding:28px 32px 70px;}
.page{display:none; animation:fade .35s ease;}
.page.active{display:block;}
@keyframes fade{from{opacity:0; transform:translateY(6px);} to{opacity:1; transform:translateY(0);}}

/* ======================================
   COMPONENTS
====================================== */
.section-title{display:flex; align-items:center; gap:12px; margin:30px 0 16px;}
.section-title:first-child{margin-top:0;}
.section-title h2{font-size:15.5px; font-weight:800; color:var(--graphite-950);}
.section-title .flag{
  background:var(--graphite-900); color:#fff; clip-path:polygon(0 0,92% 0,100% 50%,92% 100%,0 100%);
  padding:8px 22px 8px 14px; font-size:12.6px; font-weight:700;
}
.section-title .flag.gold{background:var(--gold-600);}
.section-title .line{flex:1; height:1px; background:var(--line);}
.muted{color:var(--ink-400); font-size:12.3px;}

.grid{display:grid; gap:16px;}
.cols-4{grid-template-columns:repeat(4,1fr);}
.cols-3{grid-template-columns:repeat(3,1fr);}
.cols-2{grid-template-columns:repeat(2,1fr);}
@media(max-width:1100px){.cols-4{grid-template-columns:repeat(2,1fr);} .cols-3{grid-template-columns:repeat(2,1fr);}}

.card{background:var(--card); border:1px solid var(--line); border-radius:var(--radius); padding:20px; box-shadow:var(--shadow);}

.kpi-card .kpi-label{font-size:12px; color:var(--ink-600); font-weight:600;}
.kpi-card .kpi-value{font-size:24px; font-weight:800; color:var(--graphite-950); margin:10px 0 4px; letter-spacing:-.3px; line-height:1.3;}
.kpi-card .kpi-sub{font-size:11.6px; color:var(--ink-400);}

.card-title{font-size:13.4px; font-weight:700; color:var(--graphite-950); margin-bottom:14px; display:flex; justify-content:space-between; align-items:center; gap:10px;}
.card-title .tag{font-size:11px; font-weight:600; color:var(--ink-400); white-space:nowrap;}

/* Tables */
.table-wrap{overflow-x:auto; border-radius:10px;}
table.data-table{width:100%; border-collapse:collapse; font-size:12.4px; min-width:560px;}
table.data-table thead th{background:var(--graphite-900); color:#fff; text-align:center; padding:10px 8px; font-weight:700; font-size:11.6px; white-space:nowrap;}
table.data-table thead th:first-child{border-radius:8px 0 0 0;}
table.data-table thead th:last-child{border-radius:0 8px 0 0;}
table.data-table tbody td{padding:9px 8px; text-align:center; border-bottom:1px solid var(--line); color:var(--ink-900);}
table.data-table tbody tr:nth-child(even){background:#F8F9FB;}
table.data-table tbody td.label-cell{text-align:right; font-weight:600; color:var(--graphite-900);}
table.data-table tbody tr.total-row{background:var(--gold-100); font-weight:800;}
table.data-table tbody tr.total-row td{color:var(--graphite-950);}

/* Ledger toolbar (search + filter + sort) */
.ledger-toolbar{display:flex; align-items:center; gap:10px; flex-wrap:wrap; margin-bottom:14px;}
.ledger-search{
  flex:1 1 220px; min-width:180px; padding:9px 14px; border:1px solid var(--line); border-radius:10px;
  font-family:inherit; font-size:12.6px; background:var(--paper); color:var(--ink-900);
}
.ledger-search:focus{outline:none; border-color:var(--gold-500); background:#fff;}
.ledger-filter{
  padding:9px 12px; border:1px solid var(--line); border-radius:10px; font-family:inherit;
  font-size:12.2px; background:var(--paper); color:var(--ink-600); cursor:pointer;
}
.ledger-count{margin-inline-start:auto; font-size:11.6px; color:var(--ink-400); font-weight:700; white-space:nowrap;}
table.ledger-table thead th.sortable{cursor:pointer; user-select:none; position:relative;}
table.ledger-table thead th.sortable:hover{background:var(--graphite-800);}
.sort-ind{display:inline-block; width:7px; margin-inline-start:4px; opacity:.5;}
th.sortable.sort-asc .sort-ind::after{content:"▲"; font-size:8px;}
th.sortable.sort-desc .sort-ind::after{content:"▼"; font-size:8px;}
table.ledger-table thead th{position:sticky; top:0; z-index:1;}
.ledger-table-scroll{max-height:560px; overflow-y:auto;}

/* Status badge */
.status-badge{display:inline-flex; align-items:center; gap:6px; font-size:11.5px; font-weight:700; padding:5px 12px; border-radius:20px;}
.status-badge::before{content:""; width:7px; height:7px; border-radius:50%; background:currentColor;}
.status-badge.ok{background:#E8F6EC; color:var(--green);}
.status-badge.warn{background:#FDF1E2; color:var(--gold-700);}
.status-badge.stop{background:#FBEAE9; color:var(--red);}
.status-badge.info{background:#EAF1F8; color:#1F4064;}

/* Note box */
.note-box{background:#FDF6E9; border:1px solid #F1DCAE; color:#7A5A15; border-radius:10px; padding:12px 16px; font-size:12.2px; line-height:1.8; margin-top:14px;}
.note-box.info{background:#EAF1F8; border-color:#C9D9EA; color:#1F4064;}
.note-box.stop{background:#FBEAE9; border-color:#f0c6c2; color:#8a2e26;}

/* Company profile */
.company-profile .card{height:100%;}
.profile-list{list-style:none; display:flex; flex-direction:column; gap:9px;}
.profile-list li{font-size:12.6px; line-height:1.75; color:var(--ink-900); position:relative; padding-right:16px;}
.profile-list li::before{content:""; position:absolute; right:0; top:7px; width:6px; height:6px; border-radius:2px; background:var(--gold-600);}

/* spec / key-value table used inside project cards */
table.spec-table{width:100%; border-collapse:collapse; font-size:12.5px;}
table.spec-table tr{border-bottom:1px solid var(--line);}
table.spec-table tr:last-child{border-bottom:none;}
table.spec-table td{padding:10px 6px; vertical-align:top; line-height:1.8;}
table.spec-table td.k{width:34%; color:var(--ink-600); font-weight:700; text-align:right; white-space:normal;}
table.spec-table td.v{color:var(--graphite-950); text-align:right;}

/* Project card */
.project-card{background:var(--card); border:1px solid var(--line); border-radius:var(--radius); box-shadow:var(--shadow); overflow:hidden; margin-bottom:22px;}
.project-card .ph{background:linear-gradient(90deg, var(--graphite-900), var(--graphite-800)); color:#fff; padding:15px 20px; font-weight:800; font-size:14px; display:flex; align-items:center; justify-content:space-between; gap:12px; flex-wrap:wrap;}
.project-card .pb{padding:20px;}
.project-card .pb > *:not(:first-child){margin-top:18px;}

/* Sub-tabs inside a company/project page */
.subtabs{display:flex; gap:8px; flex-wrap:wrap; margin-bottom:20px; border-bottom:1px solid var(--line); padding-bottom:0;}
.subtab-btn{all:unset; cursor:pointer; padding:10px 18px; font-size:12.8px; font-weight:700; color:var(--ink-600); border-bottom:2px solid transparent; margin-bottom:-1px;}
.subtab-btn:hover{color:var(--graphite-950);}
.subtab-btn.active{color:var(--gold-700); border-bottom-color:var(--gold-500);}
.subpage{display:none;}
.subpage.active{display:block; animation:fade .3s ease;}

.phase-pills{display:flex; gap:8px; margin-bottom:16px;}
.phase-pill{all:unset; cursor:pointer; padding:7px 16px; font-size:12px; font-weight:700; border-radius:20px; background:#F1F3F5; color:var(--ink-600);}
.phase-pill.active{background:var(--graphite-900); color:#fff;}
.phase-block{display:none;}
.phase-block.active{display:block; animation:fade .3s ease;}

/* progress compare bars */
.pcompare{display:flex; flex-direction:column; gap:16px;}
.pcompare-row{display:flex; flex-direction:column; gap:6px;}
.pcompare-row .pc-label{font-size:12.4px; font-weight:700; color:var(--graphite-900); display:flex; justify-content:space-between;}
.pc-bar-track{position:relative; height:10px; background:#EEF0F3; border-radius:8px; overflow:hidden;}
.pc-bar-fill{position:absolute; top:0; right:0; height:100%; border-radius:8px;}
.pc-bar-fill.planned{background:var(--steel-300);}
.pc-bar-fill.actual{background:var(--gold-500);}
.pc-legend{display:flex; gap:18px; font-size:11.6px; color:var(--ink-600); margin-bottom:4px;}
.pc-legend span{display:inline-flex; align-items:center; gap:6px;}
.pc-legend i{width:10px; height:10px; border-radius:3px; display:inline-block;}

/* Timeline (milestones) */
.timeline{list-style:none; display:flex; flex-direction:column;}
.timeline li{position:relative; padding-right:26px; padding-bottom:22px; border-right:2px solid var(--line);}
.timeline li:last-child{border-color:transparent; padding-bottom:0;}
.timeline li::before{content:""; position:absolute; right:-7px; top:2px; width:12px; height:12px; border-radius:50%; background:var(--gold-500); border:2px solid #fff; box-shadow:0 0 0 2px var(--gold-500);}
.timeline .t-date{font-size:12px; font-weight:800; color:var(--gold-700); margin-bottom:3px;}
.timeline .t-label{font-size:12.6px; color:var(--ink-900); line-height:1.7;}

/* Empty state */
.empty-state{
  background:var(--card); border:1px dashed var(--line); border-radius:var(--radius);
  padding:56px 30px; text-align:center; color:var(--ink-400);
}
.empty-state .es-icon{
  width:58px; height:58px; margin:0 auto 18px; border-radius:16px;
  background:var(--gold-050); display:flex; align-items:center; justify-content:center;
}
.empty-state .es-icon svg{width:26px; height:26px; stroke:var(--gold-600);}
.empty-state h3{font-size:15px; font-weight:800; color:var(--graphite-800); margin-bottom:8px;}
.empty-state p{font-size:12.8px; line-height:1.9; max-width:420px; margin:0 auto;}
.empty-state .es-tags{display:flex; gap:8px; justify-content:center; flex-wrap:wrap; margin-top:20px;}
.empty-state .es-tag{font-size:11px; font-weight:700; color:var(--ink-400); background:var(--paper); border:1px solid var(--line); padding:5px 12px; border-radius:20px;}

/* Landing / home */
.hero{background:linear-gradient(135deg, var(--graphite-950), var(--graphite-900)); border-radius:20px; padding:46px 40px; color:#fff; position:relative; overflow:hidden;}
.hero::after{content:""; position:absolute; inset:0; background:radial-gradient(600px 300px at 90% -10%, rgba(217,166,46,0.18), transparent 60%);}
.hero-content{position:relative; z-index:1; max-width:680px;}
.hero .eyebrow{display:inline-flex; align-items:center; gap:8px; font-size:11.8px; font-weight:700; color:#F5D98A; background:rgba(217,166,46,0.14); border:1px solid rgba(217,166,46,0.3); padding:6px 14px; border-radius:20px; margin-bottom:20px;}
.hero h1{font-size:30px; font-weight:900; line-height:1.5; margin-bottom:14px;}
.hero p{font-size:14px; color:#C3CCD6; line-height:2;}

.home-nav-grid{margin-top:26px;}
.home-nav-card{all:unset; cursor:pointer; display:block; background:var(--card); border:1px solid var(--line); border-radius:var(--radius); padding:22px 20px; box-shadow:var(--shadow); transition:transform .15s, box-shadow .15s;}
.home-nav-card:hover{transform:translateY(-3px); box-shadow:0 10px 26px rgba(30,37,48,0.12);}
.home-nav-card .hn-icon{width:40px; height:40px; border-radius:11px; background:var(--gold-100); display:flex; align-items:center; justify-content:center; margin-bottom:14px;}
.home-nav-card .hn-icon svg{width:19px; height:19px; stroke:var(--gold-700);}
.home-nav-card .hn-title{font-size:14.2px; font-weight:800; color:var(--graphite-950); margin-bottom:5px;}
.home-nav-card .hn-sub{font-size:11.8px; color:var(--ink-400);}

.chart-box{position:relative; height:270px;}
.chart-box.short{height:220px;}

.footer-note{margin-top:46px; padding-top:18px; border-top:1px solid var(--line); font-size:11.2px; color:var(--ink-400); text-align:center; line-height:1.9;}

/* ======================================
   RESPONSIVE
====================================== */
@media(max-width:960px){
  .sidebar{
    position:fixed; right:0; top:0; height:100vh; transform:translateX(100%);
    transition:transform .25s ease; box-shadow:0 0 40px rgba(0,0,0,0.35);
  }
  .sidebar.open{transform:translateX(0);}
  .sidebar-backdrop{display:none; position:fixed; inset:0; background:rgba(10,13,18,0.45); z-index:15;}
  .sidebar-backdrop.show{display:block;}
  .menu-toggle{
    display:flex; align-items:center; justify-content:center; width:38px; height:38px;
    border-radius:10px; background:var(--graphite-900); color:#fff; border:none; cursor:pointer; flex:0 0 auto;
  }
  .menu-toggle svg{width:18px; height:18px;}
  .topbar{padding:14px 18px;}
  .content{padding:20px 16px 60px;}
  .cols-4, .cols-3, .cols-2{grid-template-columns:1fr 1fr;}
  .hero{padding:34px 22px;}
  .hero h1{font-size:22px;}
}
@media(max-width:600px){
  .cols-4, .cols-3, .cols-2{grid-template-columns:1fr;}
  table.data-table{min-width:520px;}
}

@media print{
  .sidebar, .topbar, .menu-toggle{display:none;}
  .page{display:block !important; break-after:page;}
}
/* ======================================
   COUNCIL MODULE — v0.4 (Additive)
   شورای معاونین — جلسه شماره ۰۴
   از همان Design Tokenهای موجود استفاده می‌شود؛ هیچ Token جدیدی تعریف نشده است.
====================================== */
.council-meta{display:flex; align-items:center; gap:10px; flex-wrap:wrap; margin-bottom:22px;}
.council-meta .cm-chip{
  display:inline-flex; align-items:center; gap:8px;
  background:var(--gold-050); border:1px solid #F1DCAE; color:var(--gold-700);
  font-size:11.8px; font-weight:700; padding:7px 14px; border-radius:20px; white-space:nowrap;
}
.council-meta .cm-chip b{color:var(--graphite-950); font-weight:800;}
.council-meta .cm-chip.neutral{background:var(--paper); border-color:var(--line); color:var(--ink-600);}
.council-meta .cm-chip svg{width:13px; height:13px; stroke:currentColor; fill:none; stroke-width:1.9; flex:0 0 13px;}

/* --- دستور جلسه --- */
ol.agenda-list{list-style:none; counter-reset:agenda; display:flex; flex-direction:column; gap:12px;}
ol.agenda-list li{
  counter-increment:agenda; position:relative; background:var(--card);
  border:1px solid var(--line); border-radius:var(--radius-sm);
  padding:16px 66px 16px 18px; font-size:13px; line-height:2; color:var(--ink-900);
  box-shadow:var(--shadow);
}
ol.agenda-list li::before{
  content:counter(agenda, persian); position:absolute; right:16px; top:14px;
  width:34px; height:34px; border-radius:10px; background:var(--graphite-900); color:#fff;
  display:flex; align-items:center; justify-content:center; font-size:13px; font-weight:800;
}
ol.agenda-list li .ag-note{display:block; margin-top:6px; font-size:11.9px; color:var(--ink-400); line-height:1.9;}

/* --- اقدامات معاونت توسعه --- */
.action-list{list-style:none; display:flex; flex-direction:column; gap:11px;}
.action-list li{
  background:var(--card); border:1px solid var(--line); border-radius:var(--radius-sm);
  padding:14px 48px 14px 16px; position:relative; font-size:12.7px; line-height:2; color:var(--ink-900);
}
.action-list li::before{
  content:""; position:absolute; right:18px; top:20px; width:9px; height:9px;
  border-radius:3px; background:var(--gold-600);
}
.action-list li b{color:var(--graphite-950); font-weight:800;}

/* --- Rank badge برای صندوق‌ها --- */
.rank-badge{
  display:inline-flex; align-items:center; justify-content:center;
  min-width:28px; height:28px; padding:0 8px; border-radius:9px;
  font-size:12.4px; font-weight:800; background:var(--paper); color:var(--ink-600);
  border:1px solid var(--line);
}
.rank-badge.r1{background:var(--gold-500); color:#241b06; border-color:var(--gold-600);}
.rank-badge.r2{background:var(--gold-100); color:var(--gold-700); border-color:#F1DCAE;}
.rank-badge.r3{background:#EAF1F8; color:#1F4064; border-color:#C9D9EA;}

/* --- ردیف‌های صورت سود و زیان --- */
table.data-table tbody tr.pl-emph{background:#F3F5F8;}
table.data-table tbody tr.pl-emph td{font-weight:800; color:var(--graphite-950);}
.num-neg{color:var(--red); direction:ltr; unicode-bidi:isolate; display:inline-block;}
.num-pos{direction:ltr; unicode-bidi:isolate; display:inline-block;}
.src-interp{font-size:11.6px; color:var(--ink-600); text-align:right !important;}

/* ======================================
   HOME QUICK ACCESS GRID — v0.5
   شبکه ۸ ستونی: ردیف اول ۴ کارت (هر کدام span 2) و ردیف دوم ۳ کارت وسط‌چین.
   عرض تمام کارت‌ها یکسان است و ترتیب RTL از راست به چپ حفظ می‌شود.
====================================== */
.hqa{display:grid; grid-template-columns:repeat(8,1fr); gap:16px;}
.hqa > .home-nav-card{grid-column:span 2;}
/* اولین کارت ردیف دوم از ستون ۲ شروع می‌شود تا سه کارت دقیقاً وسط‌چین شوند */
.hqa > .home-nav-card.hqa-sec-first{grid-column:2 / span 2;}

/* --- تفکیک بسیار ظریف سلسله‌مراتب بصری، فقط با Tokenهای موجود --- */
.home-nav-card.primary{position:relative; overflow:hidden; background:linear-gradient(180deg, var(--gold-050), var(--card) 46%);}
.home-nav-card.primary::before{
  content:""; position:absolute; top:0; inset-inline:0; height:3px;
  background:linear-gradient(90deg, var(--gold-600), var(--gold-500));
}
.home-nav-card.primary .hn-title{font-size:14.6px;}
.home-nav-card.secondary .hn-icon{background:var(--paper); border:1px solid var(--line);}
.home-nav-card.secondary .hn-icon svg{stroke:var(--steel-500);}

/* --- کارت‌های فاقد صفحه: غیرتعاملی، اما هم‌سبک بقیه --- */
.home-nav-card.is-static{cursor:default; position:relative;}
.home-nav-card.is-static:hover{transform:none; box-shadow:var(--shadow);}
.home-nav-card .hn-flag{
  position:absolute; top:14px; inset-inline-start:16px;
  font-size:10.2px; font-weight:700; color:var(--ink-400);
  background:var(--paper); border:1px solid var(--line);
  padding:3px 9px; border-radius:20px; white-space:nowrap;
}

@media(max-width:1100px){
  .hqa{grid-template-columns:repeat(4,1fr);}
  .hqa > .home-nav-card.hqa-sec-first{grid-column:span 2;}
}
@media(max-width:600px){
  .hqa{grid-template-columns:repeat(2,1fr); gap:14px;}
}
/* ======================================
   PROJECT MANAGEMENT MODULE — v0.6 / v0.6.1 (Additive)
   مدیریت پروژه‌ها — داشبورد شناسنامه پروژه
   فقط از Design Tokenهای موجود استفاده شده است؛ Namespace اختصاصی: pm-
====================================== */

/* --- Project header — v0.6.1.4: فشرده‌تر و خلوت‌تر --- */
.pm-hero.lean{padding:26px 30px 22px;}
.pm-hero.lean h1{margin-bottom:10px;}
.pm-updated{
  display:inline-flex; align-items:center; gap:8px; margin-top:18px; padding-top:14px;
  border-top:1px solid rgba(255,255,255,0.10); font-size:11.8px; color:#9AA8B8; font-weight:600;
}
.pm-updated{flex-wrap:wrap;}
.pm-updated svg{width:14px; height:14px; flex:0 0 14px;}
.pm-updated-sep{width:1px; height:13px; background:rgba(255,255,255,0.16); margin:0 4px;}
.pm-updated b{color:#F5D98A; font-weight:800;}

/* --- Empty State خنثی --- */
.pm-empty{
  background:var(--card); border:1px solid var(--line); border-radius:var(--radius); box-shadow:var(--shadow);
  padding:34px 24px; display:flex; flex-direction:column; align-items:center; gap:10px; text-align:center;
}
.pm-empty .pm-empty-dash{font-size:26px; font-weight:800; color:var(--steel-300); line-height:1;}
.pm-empty p{font-size:12.8px; color:var(--ink-600); line-height:1.9;}

/* --- منابع پروژه --- */
.pm-res{display:grid; grid-template-columns:repeat(3, minmax(0,1fr)); gap:16px; align-items:stretch;}
.pm-res-card{
  background:var(--card); border:1px solid var(--line); border-radius:var(--radius); box-shadow:var(--shadow);
  padding:18px 20px; display:flex; flex-direction:column; gap:14px;
}
.pm-res-h{display:flex; align-items:center; gap:11px; font-size:12.8px; font-weight:800; color:var(--graphite-950);}
.pm-res-ic{
  flex:0 0 34px; width:34px; height:34px; border-radius:10px; background:var(--gold-050);
  border:1px solid #F1DCAE; display:flex; align-items:center; justify-content:center;
}
.pm-res-ic svg{width:17px; height:17px; stroke:var(--gold-600); fill:none; stroke-width:1.8; stroke-linecap:round; stroke-linejoin:round;}
.pm-res-b{display:flex; flex-direction:column; gap:8px; flex:1; justify-content:center;}
.pm-res-b > .pm-missing{font-size:20px; font-weight:800; color:var(--steel-300);}
.pm-res-num{font-size:30px; font-weight:900; color:var(--graphite-950); line-height:1.2;}
.pm-res-num small{font-size:13px; font-weight:700; color:var(--ink-400); margin-inline-start:5px;}
.pm-res-list{list-style:none; display:flex; flex-direction:column; gap:8px;}
.pm-res-list li{
  display:flex; align-items:center; justify-content:space-between; gap:10px;
  background:var(--paper); border:1px solid var(--line); border-radius:9px; padding:9px 12px;
  font-size:12.4px; font-weight:700; color:var(--graphite-900);
}
.pm-res-list li b{font-size:12.6px; font-weight:800; color:var(--gold-700); white-space:nowrap;}

/* --- Project header (هم‌خانواده با Hero صفحه خانه) --- */
.pm-hero{
  background:linear-gradient(135deg, var(--graphite-950), var(--graphite-900));
  border-radius:var(--radius); padding:28px 30px 24px; color:#fff;
  position:relative; overflow:hidden; margin-bottom:22px;
}
.pm-hero::after{content:""; position:absolute; inset:0; background:radial-gradient(520px 260px at 92% -20%, rgba(217,166,46,0.20), transparent 62%); pointer-events:none;}
.pm-hero > *{position:relative; z-index:1;}
.pm-hero .pm-eyebrow{
  display:inline-flex; align-items:center; gap:8px; font-size:11.4px; font-weight:700; color:#F5D98A;
  background:rgba(217,166,46,0.14); border:1px solid rgba(217,166,46,0.3); padding:5px 13px; border-radius:20px; margin-bottom:14px;
}
.pm-hero h1{font-size:21px; font-weight:900; line-height:1.65; margin-bottom:8px; max-width:880px;}
.pm-hero .pm-desc{font-size:13px; color:#C3CCD6; line-height:2; max-width:880px;}
  display:inline-flex; align-items:center; gap:7px; font-size:11.6px; font-weight:700; color:#E6EBF1;
  background:rgba(255,255,255,0.06); border:1px solid rgba(255,255,255,0.12); padding:6px 12px; border-radius:9px;
}
.pm-hero .pm-meta{
  display:grid; grid-template-columns:repeat(3, minmax(0,1fr)); gap:0; margin-top:20px;
  border-top:1px solid rgba(255,255,255,0.10); padding-top:14px;
}
.pm-hero .pm-meta > div{padding-inline-end:16px;}
.pm-hero .pm-meta > div + div{border-inline-start:1px solid rgba(255,255,255,0.10); padding-inline-start:16px;}
.pm-hero .pm-meta .k{font-size:10.8px; color:#9AA8B8; font-weight:600; margin-bottom:4px;}
.pm-hero .pm-meta .v{font-size:12.4px; font-weight:800; color:#fff;}
.pm-hero .pm-meta .v.pm-missing{color:#9AA8B8; font-weight:600;}

/* --- مقدار ثبت‌نشده (یکسان در کل ماژول) --- */
.pm-missing{color:var(--ink-400); font-weight:600;}

/* --- Executive information cards --- */
.pm-info-grid{display:grid; grid-template-columns:repeat(4, minmax(0,1fr)); gap:14px;}
.pm-info{
  background:var(--card); border:1px solid var(--line); border-radius:var(--radius-sm);
  box-shadow:var(--shadow); padding:15px 16px; display:flex; gap:12px; align-items:flex-start; min-width:0;
}
.pm-info .pm-ico{
  flex:0 0 38px; width:38px; height:38px; border-radius:10px; background:var(--gold-050);
  display:flex; align-items:center; justify-content:center;
}
.pm-info .pm-ico svg{width:19px; height:19px; stroke:var(--gold-600); fill:none; stroke-width:1.8; stroke-linecap:round; stroke-linejoin:round;}
.pm-info .pm-body{min-width:0;}
.pm-info .k{font-size:11.4px; color:var(--ink-600); font-weight:600; margin-bottom:5px;}
.pm-info .v{font-size:13.4px; font-weight:800; color:var(--graphite-950); line-height:1.7; overflow-wrap:anywhere;}
.pm-info .v.pm-missing{font-size:12.4px; color:var(--ink-400); font-weight:600;}
.pm-ltr{direction:ltr; unicode-bidi:isolate; display:inline-block;}

/* --- Snapshot (شمارش موارد ثبت‌شده در شناسنامه) --- */

/* --- Summary blocks --- */
.pm-sum-grid{display:grid; grid-template-columns:1.25fr 1fr; gap:16px; align-items:start;}
.pm-block{background:var(--card); border:1px solid var(--line); border-radius:var(--radius); box-shadow:var(--shadow); padding:18px 20px;}
.pm-block + .pm-block{margin-top:16px;}
.pm-block .pm-bh{display:flex; align-items:center; gap:10px; font-size:13.2px; font-weight:800; color:var(--graphite-950); margin-bottom:12px;}
.pm-block .pm-bh i{width:4px; height:16px; border-radius:2px; background:var(--gold-500); flex:0 0 4px;}
.pm-block .pm-bh .pm-src{margin-inline-start:auto; font-size:10.8px; font-weight:600; color:var(--ink-400);}
.pm-block p{font-size:12.8px; line-height:2.05; color:var(--ink-900);}

/* --- Service cards --- */
.pm-svc-grid{display:grid; grid-template-columns:repeat(2, minmax(0,1fr)); gap:16px; align-items:start;}
.pm-svc-grid.single{grid-template-columns:1fr;}
.pm-svc{background:var(--card); border:1px solid var(--line); border-radius:var(--radius); box-shadow:var(--shadow); overflow:hidden;}
.pm-svc .pm-svh{display:flex; align-items:center; gap:12px; padding:14px 18px; border-bottom:1px solid var(--line); background:linear-gradient(180deg, var(--gold-050), var(--card));}
.pm-svc .pm-svh .pm-ico{flex:0 0 34px; width:34px; height:34px; border-radius:9px; background:var(--card); border:1px solid #F1DCAE; display:flex; align-items:center; justify-content:center;}
.pm-svc .pm-svh .pm-ico svg{width:17px; height:17px; stroke:var(--gold-600); fill:none; stroke-width:1.8; stroke-linecap:round; stroke-linejoin:round;}
.pm-svc .pm-svh h4{font-size:13.2px; font-weight:800; color:var(--graphite-950);}
.pm-svc .pm-svh .pm-count{margin-inline-start:auto; font-size:11px; font-weight:700; color:var(--ink-600); background:var(--paper); border:1px solid var(--line); padding:3px 10px; border-radius:20px; white-space:nowrap;}
.pm-svc .pm-svb{padding:14px 18px 16px;}
.pm-svc ol{list-style:none; counter-reset:svc; display:flex; flex-direction:column; gap:9px;}
.pm-svc ol li{counter-increment:svc; position:relative; padding-inline-start:30px; font-size:12.4px; line-height:1.95; color:var(--ink-900);}
.pm-svc ol li::before{content:counter(svc, persian); position:absolute; inset-inline-start:0; top:2px; width:20px; height:20px; border-radius:6px; background:var(--paper); border:1px solid var(--line); font-size:10.6px; font-weight:800; color:var(--ink-600); display:flex; align-items:center; justify-content:center;}

/* --- Contract timeline (Power BI inspired) --- */

/* --- Team --- */

/* --- Document status --- */
.pm-docs{display:grid; grid-template-columns:repeat(4, minmax(0,1fr)); gap:14px;}
.pm-doc{background:var(--card); border:1px solid var(--line); border-radius:var(--radius-sm); box-shadow:var(--shadow); padding:15px 16px; display:flex; flex-direction:column; gap:10px;}
.pm-doc .t{display:flex; align-items:center; gap:10px; font-size:12.8px; font-weight:800; color:var(--graphite-950);}
.pm-doc .t svg{width:18px; height:18px; stroke:var(--steel-500); fill:none; stroke-width:1.8; stroke-linecap:round; stroke-linejoin:round; flex:0 0 18px;}
.pm-doc.available .t svg{stroke:var(--green);}
.pm-doc .s{font-size:11.2px; color:var(--ink-400); line-height:1.8;}

/* --- Planned (future) section — عمدی و رسمی، نه ناتمام --- */
.pm-planned{
  background:var(--card); border:1px solid var(--line); border-radius:var(--radius); box-shadow:var(--shadow);
  padding:40px 28px; text-align:center; position:relative; overflow:hidden;
}
.pm-planned::before{content:""; position:absolute; top:0; inset-inline:0; height:3px; background:linear-gradient(90deg, var(--gold-600), var(--gold-500));}
.pm-planned .pm-pl-ico{width:58px; height:58px; margin:0 auto 16px; border-radius:16px; background:var(--gold-050); border:1px solid #F1DCAE; display:flex; align-items:center; justify-content:center;}
.pm-planned .pm-pl-ico svg{width:26px; height:26px; stroke:var(--gold-600); fill:none; stroke-width:1.8; stroke-linecap:round; stroke-linejoin:round;}
.pm-planned h3{font-size:15.5px; font-weight:800; color:var(--graphite-950); margin-bottom:8px;}
.pm-planned p{font-size:12.8px; line-height:2; color:var(--ink-600); max-width:520px; margin:0 auto;}
.pm-planned .pm-ver{display:inline-flex; align-items:center; gap:7px; margin-top:16px; font-size:11.4px; font-weight:800; color:var(--gold-700); background:var(--gold-050); border:1px solid #F1DCAE; padding:5px 13px; border-radius:20px;}
.pm-planned .pm-ready{display:flex; flex-wrap:wrap; justify-content:center; gap:8px; margin-top:18px;}
.pm-planned .pm-ready span{font-size:11px; font-weight:700; color:var(--ink-600); background:var(--paper); border:1px solid var(--line); padding:4px 11px; border-radius:20px;}
.pm-planned.compact{padding:26px 22px;}

/* --- Responsive --- */
@media(max-width:1100px){
  .pm-info-grid, .pm-docs{grid-template-columns:repeat(2, minmax(0,1fr));}
  .pm-res{grid-template-columns:repeat(2, minmax(0,1fr));}
  .pm-res > :last-child{grid-column:1 / -1;}
  .pm-sum-grid, .pm-svc-grid{grid-template-columns:1fr;}
}
@media(max-width:600px){
  .pm-hero{padding:22px 18px 18px;}
  .pm-hero h1{font-size:17px;}
  .pm-hero .pm-meta{grid-template-columns:1fr; gap:10px;}
  .pm-hero .pm-meta > div + div{border-inline-start:none; padding-inline-start:0; border-top:1px solid rgba(255,255,255,0.10); padding-top:10px;}
  .pm-info-grid, .pm-docs, .pm-res{grid-template-columns:1fr;}
  .pm-res > :last-child{grid-column:auto;}
  .pm-hero.lean{padding:20px 18px 18px;}
  .pm-planned{padding:30px 18px;}
}
/* ======================================
   COUNCIL COMMERCE REPORT — v0.6.1.2 (Additive)
   گزارش عملکرد معاونت بازرگانی — شورای معاونین
   فقط Design Tokenهای موجود؛ Namespace اختصاصی: cc-
====================================== */

/* --- خلاصه مدیریتی: کاشی‌های پنج محور --- */
.cc-tiles{display:grid; grid-template-columns:repeat(5, minmax(0,1fr)); gap:14px;}
.cc-tile{
  background:var(--card); border:1px solid var(--line); border-radius:var(--radius); box-shadow:var(--shadow);
  padding:16px 16px 14px; display:flex; flex-direction:column; gap:10px; position:relative; overflow:hidden; min-width:0;
}
.cc-tile::before{content:""; position:absolute; top:0; inset-inline:0; height:3px; background:linear-gradient(90deg, var(--gold-600), var(--gold-500));}
.cc-tile .cc-tn{display:flex; align-items:center; gap:9px;}
.cc-tile .cc-tn b{width:26px; height:26px; flex:0 0 26px; border-radius:8px; background:var(--graphite-900); color:#fff; font-size:12px; font-weight:800; display:flex; align-items:center; justify-content:center;}
.cc-tile .cc-tn span{font-size:12.6px; font-weight:800; color:var(--graphite-950); line-height:1.6;}
.cc-tile .cc-facts{display:flex; flex-direction:column; gap:7px; flex:1;}
.cc-tile .cc-fact .k{font-size:10.8px; color:var(--ink-400); font-weight:600;}
.cc-tile .cc-fact .v{font-size:13.2px; font-weight:800; color:var(--graphite-950); line-height:1.6;}
.cc-tile .cc-jump{all:unset; cursor:pointer; font-size:11.4px; font-weight:800; color:var(--gold-700); display:inline-flex; align-items:center; gap:6px; margin-top:2px;}
.cc-tile .cc-jump:hover{color:var(--gold-600);}

/* --- برق خورشیدی: جریان تصمیم --- */
.cc-flow{display:grid; grid-template-columns:1fr auto 1fr auto 1.4fr; gap:14px; align-items:stretch;}
.cc-flow-step{background:var(--card); border:1px solid var(--line); border-radius:var(--radius); box-shadow:var(--shadow); padding:16px 18px;}
.cc-flow-step .cc-fk{display:inline-flex; font-size:10.8px; font-weight:800; padding:3px 10px; border-radius:20px; margin-bottom:10px;}
.cc-flow-step.trigger .cc-fk{background:#FBEAE9; color:var(--red);}
.cc-flow-step.decision .cc-fk{background:var(--gold-050); color:var(--gold-700); border:1px solid #F1DCAE;}
.cc-flow-step.exec .cc-fk{background:#E8F6EC; color:var(--green);}
.cc-flow-step h4{font-size:13.4px; font-weight:800; color:var(--graphite-950); margin-bottom:6px;}
.cc-flow-step p{font-size:12.4px; line-height:1.95; color:var(--ink-600);}
.cc-flow-arrow{display:flex; align-items:center; justify-content:center; color:var(--steel-300);}
.cc-flow-arrow svg{width:22px; height:22px; stroke:currentColor; fill:none; stroke-width:2; stroke-linecap:round; stroke-linejoin:round;}
.cc-split{display:flex; border-radius:10px; overflow:hidden; border:1px solid var(--line); margin-top:4px;}
.cc-split > div{flex:1; padding:10px 12px; font-size:12px; line-height:1.8; color:var(--graphite-900);}
.cc-split > div + div{border-inline-start:1px solid var(--line);}
.cc-split > div:first-child{background:var(--gold-050);}
.cc-split > div:last-child{background:#EEF2F6;}
.cc-split b{display:block; font-size:12.8px; font-weight:800; color:var(--graphite-950);}

/* --- سنگ: مشخصات کلیدی قرارداد (کاشی‌های عددی) --- */
.cc-spec-grid{display:grid; grid-template-columns:repeat(4, minmax(0,1fr)); gap:12px;}
.cc-spec{background:var(--paper); border:1px solid var(--line); border-radius:var(--radius-sm); padding:13px 14px;}
.cc-spec .k{font-size:11.2px; color:var(--ink-600); font-weight:600;}
.cc-spec .v{font-size:17px; font-weight:800; color:var(--graphite-950); margin-top:5px; line-height:1.4;}
.cc-spec .v small{font-size:11.6px; font-weight:700; color:var(--ink-400); margin-inline-start:3px;}
.cc-spec.rate{background:var(--gold-050); border-color:#F1DCAE;}
.cc-spec.rate .v{color:var(--gold-700); font-size:15px;}

/* --- سنگ: مقایسه حمل روزانه --- */
.cc-bars{display:flex; flex-direction:column; gap:14px;}
.cc-bar .cc-bl{display:flex; justify-content:space-between; gap:10px; font-size:12px; font-weight:700; color:var(--ink-600); margin-bottom:6px;}
.cc-bar .cc-bl b{color:var(--graphite-950); font-weight:800; white-space:nowrap;}
.cc-bar .cc-bt{height:12px; border-radius:7px; background:var(--paper); border:1px solid var(--line); overflow:hidden;}
.cc-bar .cc-bf{height:100%; border-radius:7px; background:var(--steel-500);}
.cc-bar.plan .cc-bf{background:linear-gradient(90deg, var(--gold-600), var(--gold-500));}
.cc-bar.low .cc-bf{background:var(--red);}

/* --- سنگ: تفکیک انتقال و تحویل (نوار انباشته) --- */
.cc-stack{display:flex; height:30px; border-radius:9px; overflow:hidden; border:1px solid var(--line); background:var(--paper);}
.cc-stack > span{display:block; height:100%; min-width:3px;}
.cc-tone-delivered{background:var(--green);}
.cc-tone-depot{background:var(--gold-500);}
.cc-tone-bridge{background:var(--steel-500);}
.cc-tone-transit{background:var(--graphite-700);}
.cc-legend{display:grid; grid-template-columns:repeat(4, minmax(0,1fr)); gap:12px; margin-top:16px;}
.cc-legend > div{border:1px solid var(--line); border-radius:var(--radius-sm); padding:11px 13px; background:var(--card);}
.cc-legend .cc-lk{display:flex; align-items:center; gap:8px; font-size:11.4px; font-weight:700; color:var(--ink-600); line-height:1.6;}
.cc-legend .cc-lk i{width:10px; height:10px; border-radius:3px; flex:0 0 10px;}
.cc-legend .cc-lv{font-size:15px; font-weight:800; color:var(--graphite-950); margin-top:5px;}
.cc-legend .cc-lp{font-size:11px; font-weight:700; color:var(--ink-400); margin-top:2px;}

/* --- لیست‌های شماره‌دار (موانع، معیارها) --- */
.cc-list{list-style:none; display:flex; flex-direction:column; gap:9px;}
.cc-list li{position:relative; padding-inline-start:26px; font-size:12.6px; line-height:1.9; color:var(--ink-900);}
.cc-list li::before{content:""; position:absolute; inset-inline-start:4px; top:8px; width:9px; height:9px; border-radius:3px; background:var(--gold-600);}
.cc-list.alert li::before{background:var(--red);}
.cc-chips{display:flex; flex-wrap:wrap; gap:8px;}
.cc-chips span{font-size:12px; font-weight:700; color:var(--graphite-900); background:var(--paper); border:1px solid var(--line); padding:6px 12px; border-radius:20px;}

/* --- جدول با وضعیت --- */
td.cc-status{min-width:220px; text-align:right !important; line-height:1.9;}
td.cc-status .status-badge{margin-bottom:6px;}
td.cc-status div{font-size:11.8px; color:var(--ink-600);}
td.cc-wrap{white-space:normal; text-align:right !important; line-height:1.9; min-width:160px;}
.cc-participants{display:flex; flex-wrap:wrap; gap:6px; justify-content:flex-start;}
.cc-participants span{font-size:11.4px; font-weight:700; background:var(--paper); border:1px solid var(--line); padding:3px 9px; border-radius:20px; white-space:nowrap;}

/* --- کارت بازرگانی: Stepper تکمیل‌شده --- */
.cc-card-status{display:flex; align-items:center; gap:16px; flex-wrap:wrap;}
.cc-card-status .cc-ok{width:52px; height:52px; border-radius:16px; background:#E8F6EC; display:flex; align-items:center; justify-content:center; flex:0 0 52px;}
.cc-card-status .cc-ok svg{width:26px; height:26px; stroke:var(--green); fill:none; stroke-width:2.2; stroke-linecap:round; stroke-linejoin:round;}
.cc-card-status h3{font-size:16px; font-weight:800; color:var(--graphite-950);}
.cc-card-status p{font-size:12.4px; color:var(--ink-600); margin-top:3px;}
.cc-steps{display:grid; grid-template-columns:repeat(5, minmax(0,1fr)); gap:0; margin-top:24px; position:relative;}
.cc-step{position:relative; text-align:center; padding:0 8px;}
.cc-step::before{content:""; position:absolute; top:15px; inset-inline-start:50%; width:100%; height:3px; background:var(--green); z-index:0;}
.cc-step:last-child::before{display:none;}
.cc-step .cc-dot{position:relative; z-index:1; width:32px; height:32px; margin:0 auto 10px; border-radius:50%; background:var(--green); color:#fff; display:flex; align-items:center; justify-content:center; box-shadow:0 0 0 4px #E8F6EC;}
.cc-step .cc-dot svg{width:15px; height:15px; stroke:#fff; fill:none; stroke-width:2.6; stroke-linecap:round; stroke-linejoin:round;}
.cc-step h5{font-size:12.4px; font-weight:800; color:var(--graphite-950);}
.cc-step .cc-sd{font-size:11.4px; font-weight:800; color:var(--gold-700); margin-top:3px;}
.cc-step p{font-size:11.4px; line-height:1.8; color:var(--ink-600); margin-top:4px;}

/* --- Responsive --- */
@media(max-width:1100px){
  .cc-tiles{grid-template-columns:repeat(2, minmax(0,1fr));}
  .cc-tiles > :last-child{grid-column:1 / -1;}
  .cc-flow{grid-template-columns:1fr;}
  .cc-flow-arrow{transform:rotate(-90deg); height:22px;}
  .cc-spec-grid, .cc-legend{grid-template-columns:repeat(2, minmax(0,1fr));}
}
@media(max-width:600px){
  .cc-tiles, .cc-spec-grid, .cc-legend{grid-template-columns:1fr;}
  .cc-split{flex-direction:column;}
  .cc-split > div + div{border-inline-start:none; border-top:1px solid var(--line);}
  .cc-steps{grid-template-columns:1fr; gap:16px;}
  .cc-step{display:grid; grid-template-columns:32px 1fr; gap:4px 12px; text-align:start; padding:0;}
  .cc-step .cc-dot{margin:0; grid-row:span 3;}
  .cc-step::before{top:32px; inset-inline-start:15px; width:3px; height:calc(100% + 16px);}
}
/* ======================================
   EXECUTIVE REPORT NAVIGATION — v0.6.1.3
   پنل دسترسی سریع به گزارش عملکرد معاونت‌ها در صفحه «دستور جلسه»
   کامپوننت مستقل (rnav-) — از کارت‌های صفحه خانه یا داشبورد استفاده نمی‌کند
====================================== */
.rnav{display:grid; grid-template-columns:repeat(3, minmax(0,1fr)); gap:16px;}
.rnav-card{
  all:unset; box-sizing:border-box; cursor:pointer; display:block; position:relative;
  background:var(--card); border:1px solid var(--line); border-radius:var(--radius);
  box-shadow:var(--shadow); padding:20px 22px 18px; overflow:hidden;
  transition:transform .22s cubic-bezier(.22,.61,.36,1), box-shadow .22s ease, border-color .22s ease;
}
.rnav-card::before{
  content:""; position:absolute; top:0; inset-inline-start:0; width:100%; height:2px;
  background:linear-gradient(90deg, var(--gold-600), var(--gold-500));
  transform:scaleX(0); transform-origin:right; transition:transform .28s cubic-bezier(.22,.61,.36,1);
}
.rnav-card:hover{transform:translateY(-3px); box-shadow:var(--shadow-md); border-color:#E3E9F0;}
.rnav-card:hover::before{transform:scaleX(1);}
.rnav-card:focus-visible{outline:2px solid var(--gold-500); outline-offset:2px;}
.rnav-head{display:flex; align-items:center; gap:12px; margin-bottom:12px;}
.rnav-ic{
  flex:0 0 40px; width:40px; height:40px; border-radius:12px;
  background:var(--paper); border:1px solid var(--line);
  display:flex; align-items:center; justify-content:center;
  transition:background .22s ease, border-color .22s ease;
}
.rnav-ic svg{width:19px; height:19px; stroke:var(--steel-500); fill:none; stroke-width:1.8; stroke-linecap:round; stroke-linejoin:round; transition:stroke .22s ease;}
.rnav-card:hover .rnav-ic{background:var(--gold-050); border-color:#F1DCAE;}
.rnav-card:hover .rnav-ic svg{stroke:var(--gold-600);}
.rnav-eyebrow{font-size:10.6px; font-weight:700; color:var(--ink-400); letter-spacing:.2px;}
.rnav-t{font-size:13.6px; font-weight:800; color:var(--graphite-950); line-height:1.65; margin-top:2px;}
.rnav-s{font-size:11.8px; line-height:1.95; color:var(--ink-600); min-height:46px;}
.rnav-go{
  display:flex; align-items:center; gap:7px; margin-top:12px; padding-top:12px;
  border-top:1px solid var(--line); font-size:11.6px; font-weight:800; color:var(--gold-700);
}
.rnav-go svg{width:14px; height:14px; stroke:currentColor; fill:none; stroke-width:2.2; stroke-linecap:round; stroke-linejoin:round; transition:transform .22s cubic-bezier(.22,.61,.36,1);}
.rnav-card:hover .rnav-go svg{transform:translateX(-4px);}
@media(max-width:1100px){ .rnav{grid-template-columns:repeat(2, minmax(0,1fr));} .rnav-s{min-height:0;} }
@media(max-width:600px){ .rnav{grid-template-columns:1fr; gap:12px;} }
@media print{ .rnav-card{box-shadow:none;} }
/* ======================================
   PROJECT STATEMENTS DASHBOARD — v0.6.1.5 (.ps-)
====================================== */
.ps-num{direction:ltr; unicode-bidi:isolate; display:inline-block;}
.ps-unit{font-size:11px; font-weight:700; color:var(--ink-400); margin-inline-start:4px;}
.ps-att{
  display:inline-flex; align-items:center; font-size:11px; font-weight:700;
  background:var(--paper); border:1px solid var(--line); color:var(--ink-600);
  padding:3px 9px; border-radius:20px; white-space:nowrap;
}
td.ps-wrap{white-space:normal; text-align:right !important; line-height:1.9; min-width:180px;}
.ps-chart-tall{height:420px;}

/* ======================================
   PROJECT ORGANIZATION CHART — v0.6.1.5 (.porg-)
   بدون هیچ Container اسکرول‌دار: عرض ۱۰۰٪، ارتفاع خودکار، overflow:visible
====================================== */
.porg{width:100%; overflow:visible;}
.porg-canvas{position:relative; width:100%; overflow:visible;}
.porg-links{position:absolute; inset:0; width:100%; height:100%; pointer-events:none; overflow:visible; z-index:0;}
.porg-canvas > *:not(.porg-links){position:relative; z-index:1;}

/* --- کارت گره --- */
.porg-node{
  border-radius:12px; padding:12px 14px; border:1px solid var(--line); background:var(--card);
  display:flex; flex-direction:column; gap:4px; text-align:center; align-items:center;
}
.porg-node .r{font-size:11.4px; font-weight:700; color:var(--ink-600); line-height:1.65;}
.porg-node .n{font-size:13px; font-weight:800; color:var(--graphite-950); line-height:1.6;}
.porg-node .c{
  font-size:11px; font-weight:800; color:var(--gold-700); background:var(--gold-050);
  border:1px solid #F1DCAE; padding:2px 9px; border-radius:20px; margin-top:2px;
}
.porg-node .ic{width:26px; height:26px; border-radius:8px; background:var(--paper); border:1px solid var(--line); display:flex; align-items:center; justify-content:center; margin-bottom:2px;}
.porg-node .ic svg{width:14px; height:14px; stroke:var(--steel-500); fill:none; stroke-width:1.8; stroke-linecap:round; stroke-linejoin:round;}

.porg-node.root{
  background:linear-gradient(135deg, var(--graphite-950), var(--graphite-800));
  border-color:var(--graphite-700); box-shadow:0 6px 20px rgba(22,27,34,0.20);
  padding:16px 26px; min-width:230px;
}
.porg-node.root .r{color:#F5D98A; font-size:11.8px;}
.porg-node.root .n{color:#fff; font-size:15px;}
.porg-node.root .ic{background:rgba(255,255,255,0.08); border-color:rgba(255,255,255,0.16);}
.porg-node.root .ic svg{stroke:#F5D98A;}
.porg-node.root .c{background:rgba(217,166,46,0.16); border-color:rgba(217,166,46,0.32); color:#F5D98A;}
.porg-node.external{background:linear-gradient(135deg,#2A323E,#1E2530); border-style:dashed;}

.porg-node.head{border-top:3px solid var(--gold-500); box-shadow:var(--shadow); padding-top:12px;}
.porg-node.head .n{font-size:13.4px;}
.porg-node.staff{box-shadow:var(--shadow);}
.porg-node.support{border-style:dashed; background:var(--paper);}

/* --- زنجیره عمودی (ریشه → تک فرزند) --- */
.porg-chain{display:flex; flex-direction:column; align-items:center; gap:0;}
.porg-chain > .porg-node{max-width:min(100%, 360px);}
.porg-drop{width:2px; height:26px; background:var(--steel-300);}

/* --- ردیف شاخه‌ها --- */
.porg-row{display:flex; justify-content:center; align-items:flex-start; gap:18px; padding-top:34px;}
.porg-col{flex:1 1 0; min-width:0; display:flex; flex-direction:column;}
.porg-col > .porg-node{width:100%;}

/* --- زیرمجموعه‌ها: ریل CSS (بدون اندازه‌گیری، همیشه درست) --- */
.porg-sub{margin-top:18px; padding-inline-start:20px; position:relative; display:flex; flex-direction:column; gap:10px;}
.porg-sub::before{content:""; position:absolute; inset-inline-start:9px; top:-18px; bottom:22px; width:2px; background:var(--steel-300);}
.porg-sub > .porg-item{position:relative;}
.porg-sub > .porg-item::before{content:""; position:absolute; inset-inline-start:-11px; top:22px; width:11px; height:2px; background:var(--steel-300);}
.porg-sub .porg-node{text-align:start; align-items:stretch;}
.porg-sub .porg-node .c{align-self:flex-start;}

.porg-support-label{
  display:block; margin:26px 0 0; font-size:11.4px; font-weight:800; color:var(--ink-400);
}

/* --- Tablet / Mobile: بازچینش عمودی، بدون اسکرول داخلی --- */
@media(max-width:1199px){
  .porg-links{display:none;}
  .porg-row{flex-direction:column; gap:16px; padding-top:18px;}
  .porg-col{width:100%;}
  .porg-col > .porg-node{text-align:start; align-items:stretch;}
  .porg-branches{padding-inline-start:20px; position:relative; margin-top:16px;}
  .porg-branches::before{content:""; position:absolute; inset-inline-start:9px; top:-16px; bottom:24px; width:2px; background:var(--steel-300);}
  .porg-col{position:relative;}
  .porg-col::before{content:""; position:absolute; inset-inline-start:-11px; top:24px; width:11px; height:2px; background:var(--steel-300);}
  .porg-chain > .porg-node{max-width:100%; width:100%;}
  .porg-node{text-align:start; align-items:stretch;}
  .porg-node .ic{align-self:flex-start;}
  .porg-node.root{min-width:0; width:100%;}
}
@media(max-width:600px){
  .porg-sub{padding-inline-start:16px;}
  .porg-sub::before{inset-inline-start:7px;}
  .porg-sub > .porg-item::before{inset-inline-start:-9px; width:9px;}
  .porg-node{padding:11px 12px;}
  .porg-node .n{font-size:12.4px;}
  .porg-node .r{font-size:11px;}
}
@media print{
  .porg-links{display:none;}
  .porg-row{flex-direction:column; gap:12px;}
  .porg-node{box-shadow:none;}
  .porg{break-inside:auto;}
  .porg-col{break-inside:avoid;}
}
/* ======================================
   PROJECT PERFORMANCE REPORTS — v0.7.1 (.prep-)
====================================== */
.prep-head{display:flex; align-items:center; gap:12px; flex-wrap:wrap; margin-bottom:18px;}
.prep-chip{
  display:inline-flex; align-items:center; gap:7px; font-size:11.6px; font-weight:800;
  background:var(--gold-050); border:1px solid #F1DCAE; color:var(--gold-700);
  padding:6px 13px; border-radius:20px; white-space:nowrap;
}
.prep-chip.neutral{background:var(--paper); border-color:var(--line); color:var(--ink-600);}
.prep-nav{display:flex; flex-wrap:wrap; gap:8px; margin-bottom:20px;}
.prep-pill{
  all:unset; cursor:pointer; box-sizing:border-box; font-size:12px; font-weight:700;
  padding:7px 14px; border-radius:20px; border:1px solid var(--line);
  background:var(--card); color:var(--ink-600); transition:background .18s ease, color .18s ease, border-color .18s ease;
}
.prep-pill:hover{border-color:#E3E9F0; color:var(--graphite-950);}
.prep-pill.active{background:var(--graphite-900); border-color:var(--graphite-900); color:#fff;}
.prep-pill:focus-visible{outline:2px solid var(--gold-500); outline-offset:2px;}
.prep-panel{display:none;}
.prep-panel.active{display:block; animation:fadeIn .18s ease;}

.prep-kpi{display:grid; grid-template-columns:repeat(4, minmax(0,1fr)); gap:14px;}
.prep-kpi .kpi-card{margin:0;}
.prep-val-pos{color:var(--green);}
.prep-val-neg{color:var(--red); direction:ltr; unicode-bidi:isolate; display:inline-block;} /* v0.7.2: علامت منفی سمت چپ عدد */

.prep-bars{display:flex; flex-direction:column; gap:14px;}
.prep-bar .l{display:flex; justify-content:space-between; gap:10px; font-size:12px; font-weight:700; color:var(--ink-600); margin-bottom:6px;}
.prep-bar .l b{color:var(--graphite-950); font-weight:800; white-space:nowrap;}
.prep-bar .t{height:10px; border-radius:6px; background:var(--paper); border:1px solid var(--line); overflow:hidden;}
.prep-bar .f{height:100%; border-radius:6px; background:linear-gradient(90deg, var(--gold-600), var(--gold-500));}

.prep-grid2{display:grid; grid-template-columns:repeat(2, minmax(0,1fr)); gap:16px; align-items:start;}
.prep-grid3{display:grid; grid-template-columns:repeat(3, minmax(0,1fr)); gap:16px; align-items:stretch;}
.prep-note{background:var(--paper); border:1px solid var(--line); border-radius:var(--radius-sm); padding:14px 16px; font-size:12.5px; line-height:2; color:var(--ink-900);}
.prep-note b{display:block; font-size:12.8px; font-weight:800; color:var(--graphite-950); margin-bottom:5px;}
.prep-note.alert{background:#FBEAE9; border-color:#F0C7C3;}
.prep-note.alert b{color:var(--red);}
.prep-note.ok{background:#EAF6EE; border-color:#C9E6D4;}
.prep-note.ok b{color:var(--green);}
.prep-list{list-style:none; display:flex; flex-direction:column; gap:8px;}
.prep-list li{position:relative; padding-inline-start:20px; font-size:12.4px; line-height:1.95; color:var(--ink-900);}
.prep-list li::before{content:""; position:absolute; inset-inline-start:2px; top:8px; width:7px; height:7px; border-radius:2px; background:var(--gold-600);}
.prep-list.plan li::before{background:var(--steel-500);}
.prep-roadmap .pm-res-card{gap:12px;}
.prep-scroll{max-height:none;}
.prep-tblwrap{overflow-x:auto;}
.prep-tblwrap table{min-width:640px;}
td.prep-r, th.prep-r{text-align:center !important;}
.prep-src{font-size:11.4px; color:var(--ink-400); font-weight:600;}

@media(max-width:1100px){
  .prep-kpi{grid-template-columns:repeat(2, minmax(0,1fr));}
  .prep-grid2, .prep-grid3{grid-template-columns:1fr;}
}
@media(max-width:600px){
  .prep-kpi{grid-template-columns:1fr;}
  .prep-nav{gap:6px;}
  .prep-pill{font-size:11.4px; padding:6px 11px;}
}
@media print{
  .prep-nav{display:none;}
  .prep-panel{display:block !important;}
  .prep-pill{display:none;}
}

/* --- شماره قرارداد در Hero: ترتیب کاراکترها همیشه چپ‌به‌راست --- */
.pm-contract-no{direction:ltr; unicode-bidi:isolate; white-space:nowrap; display:inline-block;}

/* ======================================
   SIDEBAR HIERARCHY — v0.7.2
   ساده‌سازی: Box طلایی، ریل عمودی و فاصله‌های اضافه v0.7.1 حذف شد.
   تفکیک والد/برگ فقط با Chevron، وزن فونت، تورفتگی، Dot و حالت فعال.
====================================== */
.nav-item.level-2.is-parent.has-active-child > .nav-toggle{color:#F5D98A;}
.nav-item.level-2.is-parent > .nav-toggle .chevron{opacity:.85;}

/* ======================================
   INVESTMENT MODULE — v0.8
   تمام قواعد با پیشوند inv- محدود شده‌اند و Style صفحات دیگر را تغییر نمی‌دهند.
====================================== */
.inv-head{display:flex; align-items:flex-end; justify-content:space-between; gap:16px 24px; flex-wrap:wrap; padding-bottom:16px; margin-bottom:18px; border-bottom:1px solid var(--line);}
.inv-head-text{min-width:0; flex:1 1 320px;}
.inv-head h2{font-size:19px; font-weight:900; color:var(--graphite-950); line-height:1.5;}
.inv-head p{font-size:12.4px; color:var(--ink-600); margin-top:3px; line-height:1.8;}
.inv-head-meta{display:flex; flex-wrap:wrap; background:var(--card); border:1px solid var(--line); border-radius:var(--radius-sm); overflow:hidden;}
.inv-meta{padding:8px 16px; display:flex; flex-direction:column; gap:1px;}
.inv-meta + .inv-meta{border-inline-start:1px solid var(--line);}
.inv-meta span{font-size:10.6px; color:var(--ink-400); font-weight:600;}
.inv-meta b{font-size:12.6px; color:var(--graphite-950); font-weight:800; white-space:nowrap;}

/* --- Filter bar --- */
.inv-filter-bar{display:flex; align-items:center; gap:10px 14px; flex-wrap:wrap; background:var(--card); border:1px solid var(--line); border-radius:var(--radius-sm); padding:10px 12px; margin-bottom:18px;}
.inv-seg{display:inline-flex; gap:2px; background:var(--paper); border:1px solid var(--line); border-radius:9px; padding:3px;}
.inv-seg-btn{all:unset; box-sizing:border-box; cursor:pointer; padding:6px 14px; border-radius:7px; font-size:12.2px; font-weight:700; color:var(--ink-600); white-space:nowrap;}
.inv-seg-btn:hover{color:var(--graphite-950);}
.inv-seg-btn.active{background:var(--gold-500); color:#241b06;}
.inv-fsel{display:inline-flex; align-items:center; gap:6px; font-size:11.6px; color:var(--ink-400); font-weight:700;}
.inv-fsel select{padding:7px 10px; border:1px solid var(--line); border-radius:8px; font-family:inherit; font-size:12px; background:var(--paper); color:var(--ink-900); max-width:210px; cursor:pointer;}
.inv-fsel.is-set select{border-color:var(--gold-500); background:var(--gold-050); color:var(--gold-700); font-weight:700;}
.inv-reset{all:unset; box-sizing:border-box; cursor:pointer; font-size:12px; font-weight:700; color:var(--gold-700); padding:6px 10px; border-radius:8px;}
.inv-reset:hover:not(:disabled){background:var(--gold-050);}
.inv-reset:disabled{color:var(--ink-400); cursor:default; opacity:.55;}
.inv-fcount{margin-inline-start:auto; font-size:11.6px; font-weight:700; color:var(--ink-400); white-space:nowrap;}
.inv-seg-btn:focus-visible, .inv-reset:focus-visible, .inv-pg-btn:focus-visible, .inv-fsel select:focus-visible, .inv-top:focus-visible, .inv-daily tbody tr:focus-visible{outline:2px solid var(--gold-500); outline-offset:2px;}

/* --- Grids --- */
.inv-grid{display:grid; gap:16px; margin-bottom:16px;}
.inv-grid > *{min-width:0;}
.inv-g-4{grid-template-columns:repeat(4,minmax(0,1fr));}
.inv-g-5{grid-template-columns:repeat(5,minmax(0,1fr));}
.inv-g-21{grid-template-columns:minmax(0,1.75fr) minmax(0,1fr);}
.inv-g-11{grid-template-columns:repeat(2,minmax(0,1fr));}
.inv-g-111{grid-template-columns:repeat(3,minmax(0,1fr));}
.inv-g-day{grid-template-columns:minmax(0,1fr); align-items:start;}

/* --- KPI --- */
.inv-kpi{container-type:inline-size; padding:16px 18px; position:relative; overflow:hidden;}
.inv-kpi .kpi-value{font-size:clamp(14px, 9.2cqi, 22px); white-space:nowrap; margin:8px 0 3px;}
.inv-kpi .kpi-sub{line-height:1.75;}
.inv-unit{font-size:11px; font-weight:600; color:var(--ink-400); margin-inline-start:6px; letter-spacing:0;}
.inv-kpi.tone-pos::before, .inv-kpi.tone-neg::before{content:""; position:absolute; inset:0 0 auto 0; height:3px;}
.inv-kpi.tone-pos::before{background:var(--green);}
.inv-kpi.tone-neg::before{background:var(--red);}
.inv-kpi.feature{background:var(--graphite-900); border-color:var(--graphite-900);}
.inv-kpi.feature .kpi-label{color:#AEB9C6;}
.inv-kpi.feature .kpi-value{color:var(--gold-500);}
.inv-kpi.feature .inv-unit{color:#8FA0B3;}
.inv-kpi.feature .kpi-sub{color:#9AA8B8;}
.inv-split{display:flex; height:6px; border-radius:6px; overflow:hidden; margin-top:12px; background:rgba(255,255,255,0.08);}
.inv-split i{display:block; height:100%;}
.inv-split-legend{display:flex; justify-content:space-between; gap:8px; flex-wrap:wrap; font-size:11px; margin-top:7px; color:#C3CCD6;}
.inv-split-legend span{display:inline-flex; align-items:center; gap:6px;}
.inv-split-legend em{width:8px; height:8px; border-radius:2px; display:inline-block;}
.inv-share{height:4px; background:var(--line); border-radius:4px; margin-top:10px; overflow:hidden;}
.inv-share i{display:block; height:100%; border-radius:4px;}

/* --- Values --- */
.inv-val{direction:ltr; unicode-bidi:isolate; display:inline-block;}
.inv-pos{color:var(--green);}
.inv-neg{color:var(--red);}

/* --- Chart cards --- */
.inv-chart-card .card-title{align-items:flex-start;}
.inv-ct-tools{display:inline-flex; align-items:center; gap:8px; flex-shrink:0;}
.inv-top{font-family:inherit; font-size:11px; font-weight:600; padding:4px 8px; border:1px solid var(--line); border-radius:7px; background:var(--paper); color:var(--ink-600); cursor:pointer;}
.chart-box.inv-chart{height:300px;}
.chart-box.inv-chart.tall{height:360px;}

/* --- Tables --- */
.inv-table-wrap{border:1px solid var(--line);}
table.inv-table{font-size:12.2px;}
table.inv-table thead th{text-align:right;}
table.inv-table thead th.num{text-align:left;}
table.inv-table tbody td{text-align:right; white-space:nowrap;}
table.inv-table tbody td.num{text-align:left; font-variant-numeric:normal;}
table.inv-table tbody td.lbl{font-weight:600; color:var(--graphite-900); white-space:normal; min-width:190px; line-height:1.7;}
table.inv-table tbody td.sym{color:var(--steel-500); font-weight:600;}
table.inv-table tbody td.wrap{white-space:normal; min-width:130px;}
table.inv-table tbody td.date{font-variant-numeric:normal;}
table.inv-table tbody tr:hover{background:var(--gold-050);}
table.inv-table tbody tr.total-row:hover{background:var(--gold-100);}
table.inv-table.compact{min-width:0;}
table.inv-table.compact tbody td.lbl{min-width:120px;}
table.inv-table tr.inv-group-row td{background:#EEF1F5; font-weight:800; color:var(--graphite-900); font-size:11.8px; padding:8px;}
table.inv-compare{min-width:640px;}
table.inv-compare thead th:first-child, table.inv-compare tbody td.lbl{width:34%;}
.inv-none{font-size:12.4px; color:var(--ink-400); padding:14px 4px;}
td.inv-none-cell{text-align:center !important; color:var(--ink-400); padding:26px !important;}

/* --- Ledger (جزئیات پرتفوی) --- */
.inv-det-toolbar .ledger-search{max-width:420px;}
table.inv-ledger{min-width:1500px;}
table.inv-ledger thead th{position:static;}
.inv-pager{display:flex; align-items:center; justify-content:space-between; gap:10px; flex-wrap:wrap; margin-top:12px; font-size:11.8px; color:var(--ink-400); font-weight:700;}
.inv-pg{display:inline-flex; gap:6px; flex-wrap:wrap;}
.inv-pg-btn{all:unset; box-sizing:border-box; cursor:pointer; min-width:32px; height:30px; padding:0 10px; border-radius:8px; border:1px solid var(--line); text-align:center; line-height:28px; font-size:12px; font-weight:700; color:var(--ink-600); background:#fff;}
.inv-pg-btn:hover:not(:disabled){border-color:var(--gold-500); color:var(--gold-700);}
.inv-pg-btn.active{background:var(--graphite-900); border-color:var(--graphite-900); color:#fff;}
.inv-pg-btn:disabled{opacity:.4; cursor:default;}

/* --- Basket panels (عملکرد سبدها) --- */
.inv-bp-head{display:flex; justify-content:space-between; align-items:center; gap:10px; flex-wrap:wrap; padding-bottom:12px; margin-bottom:4px; border-bottom:2px solid var(--graphite-900);}
.inv-bp-head h3{font-size:14.5px; font-weight:800; color:var(--graphite-950); display:flex; align-items:center; gap:8px;}
.inv-bp-dot{width:10px; height:10px; border-radius:3px; display:inline-block;}
.inv-bp-weight{font-size:11.8px; color:var(--ink-600); font-weight:700;}
.inv-metric{display:flex; justify-content:space-between; align-items:baseline; gap:12px; padding:10px 0; border-bottom:1px solid var(--line);}
.inv-metric:last-child{border-bottom:none;}
.inv-metric span{font-size:12.2px; color:var(--ink-600); font-weight:600;}
.inv-metric b{font-size:13.6px; font-weight:800; color:var(--graphite-950); white-space:nowrap; font-variant-numeric:normal;}

/* --- Daily table + detail panel (روند ارزش) --- */
.inv-daily-card{padding:14px;}
.inv-daily-wrap{max-height:560px; overflow:auto;}
table.inv-daily{table-layout:fixed; min-width:880px;}
table.inv-daily thead th{position:sticky; top:0; z-index:1; padding:8px 10px; white-space:normal; line-height:1.5; vertical-align:middle;}
table.inv-daily tbody td{height:38px; padding:0 10px; overflow:hidden; white-space:nowrap;}
table.inv-daily tbody tr{cursor:pointer;}
table.inv-daily tbody tr.is-selected, table.inv-daily tbody tr.is-selected:hover{background:var(--gold-100);}
table.inv-daily tbody tr.is-selected td:first-child{box-shadow:inset -3px 0 0 var(--gold-500); font-weight:800;}
.inv-day-detail{position:static;}
.inv-dd-head{display:flex; flex-direction:column; gap:2px; padding-bottom:12px; margin-bottom:6px; border-bottom:2px solid var(--gold-500);}
.inv-dd-head span{font-size:11px; color:var(--ink-400); font-weight:700;}
.inv-dd-head b{font-size:20px; font-weight:900; color:var(--graphite-950); font-variant-numeric:normal;}
dl.inv-kv{display:grid; grid-template-columns:minmax(0,1fr) auto; margin:0;}
.inv-day-detail dl.inv-kv{grid-template-columns:minmax(0,1fr) auto minmax(0,1fr) auto;}
.inv-day-detail dl.inv-kv dd{padding-inline-end:24px;}
.inv-day-detail dl.inv-kv dt:nth-of-type(even){padding-inline-start:24px; border-inline-start:1px solid var(--line);}
dl.inv-kv dt, dl.inv-kv dd{padding:9px 0; border-bottom:1px solid var(--line); font-size:12px; margin:0;}
dl.inv-kv dt{color:var(--ink-600); font-weight:600; padding-inline-end:10px;}
dl.inv-kv dd{text-align:left; font-weight:800; color:var(--graphite-950); white-space:nowrap; font-variant-numeric:normal;}
dl.inv-kv dt:nth-last-of-type(1), dl.inv-kv dd:last-of-type{border-bottom:none;}
dl.inv-kv.compact dt, dl.inv-kv.compact dd{padding:7px 0;}

/* --- Maturity cards (اوراق) --- */
.inv-maturity{display:grid; grid-template-columns:repeat(auto-fit,minmax(280px,1fr)); gap:16px; margin-bottom:8px;}
.inv-mat{border-right:4px solid var(--gold-500);}
.inv-mat-top{display:flex; justify-content:space-between; align-items:center; gap:10px;}
.inv-mat-sym{font-size:16px; font-weight:900; color:var(--graphite-950);}
.inv-mat-rate{font-size:11.6px; font-weight:700; color:var(--gold-700); background:var(--gold-050); border:1px solid #F1DCAE; padding:3px 10px; border-radius:20px;}
.inv-mat-name{font-size:12px; color:var(--ink-600); margin:4px 0 8px; line-height:1.7;}

.inv-empty{margin-top:4px;}

/* --- Responsive --- */
@media(min-width:1640px){
  .inv-g-day{grid-template-columns:320px minmax(0,1fr);}
  .inv-g-day > .inv-day-detail{position:sticky; top:96px;}
  .inv-g-day dl.inv-kv{grid-template-columns:minmax(0,1fr) auto;}
  .inv-g-day dl.inv-kv dd{padding-inline-end:0;}
  .inv-g-day dl.inv-kv dt:nth-of-type(even){padding-inline-start:0; border-inline-start:none;}
}
@media(max-width:1280px){
  .inv-g-5{grid-template-columns:repeat(3,minmax(0,1fr));}
}
@media(max-width:1100px){
  .inv-g-4, .inv-g-5, .inv-g-111{grid-template-columns:repeat(2,minmax(0,1fr));}
  .inv-g-21{grid-template-columns:minmax(0,1fr);}
  .inv-day-detail dl.inv-kv{grid-template-columns:minmax(0,1fr) auto;}
  .inv-day-detail dl.inv-kv dd{padding-inline-end:0;}
  .inv-day-detail dl.inv-kv dt:nth-of-type(even){padding-inline-start:0; border-inline-start:none;}
}
@media(max-width:600px){
  .inv-g-4, .inv-g-5, .inv-g-111, .inv-g-11{grid-template-columns:minmax(0,1fr);}
  .inv-head-meta{width:100%;}
  .inv-fcount{margin-inline-start:0; width:100%;}
  .inv-fsel{flex:1 1 140px;}
  .inv-fsel select{flex:1; max-width:none;}
  .chart-box.inv-chart{height:260px;}
}
@media print{
  .inv-filter-bar .inv-reset, .inv-top{display:none;}
  .inv-daily-wrap, .inv-table-wrap{max-height:none; overflow:visible;}
  .inv-day-detail{position:static;}
}

/* ======================================
   SARIR MODULE — v0.8.1
   تمام قواعد با پیشوند sarir81- (یا داخل ظرف .sarir81) محدود شده‌اند و Style صفحات دیگر را تغییر نمی‌دهند.
====================================== */
.sarir81 .grid > *{min-width:0;}
.sarir81-g12{grid-template-columns:minmax(0,1.7fr) minmax(0,1fr);}
.sarir81-g21{grid-template-columns:minmax(0,1.15fr) minmax(0,1fr);}
.sarir81-g5{grid-template-columns:minmax(0,1.35fr) minmax(0,1.1fr) repeat(3,minmax(0,1fr));}
.sarir81-stack{display:flex; flex-direction:column; gap:16px; min-width:0;}

/* --- Hero --- */
.sarir81-hero{
  position:relative; overflow:hidden; color:#fff; border-radius:var(--radius);
  background:linear-gradient(135deg, var(--graphite-950), var(--graphite-900));
  padding:22px 26px; margin-bottom:18px;
  display:flex; align-items:center; justify-content:space-between; gap:14px 24px; flex-wrap:wrap;
}
.sarir81-hero::after{content:""; position:absolute; inset:0; background:radial-gradient(520px 260px at 92% -20%, rgba(217,166,46,0.20), transparent 62%); pointer-events:none;}
.sarir81-hero > *{position:relative; z-index:1;}
.sarir81-hero h2{font-size:19px; font-weight:900; line-height:1.6;}
.sarir81-hero p{font-size:12.4px; color:#C3CCD6; margin-top:2px;}
.sarir81-period{font-size:12.2px; font-weight:700; color:#F5D98A; background:rgba(217,166,46,0.12); border:1px solid rgba(217,166,46,0.42); padding:7px 16px; border-radius:20px; white-space:nowrap;}

/* --- Values --- */
.sarir81-num{direction:ltr; unicode-bidi:isolate; display:inline-block;}
.sarir81-num.pos{color:var(--green);}
.sarir81-num.neg{color:var(--red);}

/* --- KPI --- */
.sarir81-kpi{container-type:inline-size; padding:16px 18px; position:relative; overflow:hidden;}
.sarir81-kpi .kpi-value{font-size:clamp(15px, 10cqi, 23px); margin:8px 0 3px; display:flex; flex-wrap:wrap; align-items:baseline; gap:2px 6px;}
.sarir81-kpi .kpi-sub{line-height:1.85;}
.sarir81-unit{font-size:11px; font-weight:600; color:var(--ink-400); letter-spacing:0;}
.sarir81-txt{font-size:clamp(14px, 8.4cqi, 19px);}
.sarir81-kpi.tone-pos::before, .sarir81-kpi.tone-neg::before{content:""; position:absolute; inset:0 0 auto 0; height:3px;}
.sarir81-kpi.tone-pos::before{background:var(--green);}
.sarir81-kpi.tone-neg::before{background:var(--red);}
.sarir81-kpi.feature{background:var(--graphite-900); border-color:var(--graphite-900);}
.sarir81-kpi.feature .kpi-label{color:#AEB9C6;}
.sarir81-kpi.feature .kpi-value{color:var(--gold-500);}
.sarir81-kpi.feature .sarir81-unit{color:#8FA0B3;}
.sarir81-kpi.feature .kpi-sub{color:#9AA8B8;}
.sarir81-kpi.feature .sarir81-num.pos{color:#6FCF97;}
.sarir81-kpi.feature .sarir81-num.neg{color:#F0958E;}

/* --- Charts --- */
.chart-box.sarir81-chart{height:290px;}
.chart-box.sarir81-chart.tall{height:340px;}
.chart-box.sarir81-chart.short{height:230px;}

/* --- Tables --- */
table.sarir81-table{min-width:0;}
table.sarir81-table tbody td.label-cell{white-space:normal; line-height:1.8;}
table.sarir81-table tbody td.num{font-variant-numeric:normal; white-space:nowrap;}
table.sarir81-table tbody tr.sarir81-strong td{font-weight:800; background:#EEF1F5; color:var(--graphite-950);}
table.sarir81-table tbody td.reason{text-align:right; white-space:normal; min-width:200px; line-height:1.8; color:var(--ink-600); font-weight:400;}
table.sarir81-table thead th.reason{text-align:right;}
table.sarir81-pnl{min-width:760px;}
table.sarir81-rev{min-width:560px;}
table.sarir81-perf{min-width:900px;}
table.sarir81-perf thead th{white-space:normal; line-height:1.6; vertical-align:middle;}

/* --- Progress bars (واقعی / برنامه) --- */
.sarir81-bars{display:flex; flex-direction:column; gap:10px;}
.sarir81-bar-row{display:grid; grid-template-columns:104px minmax(0,1fr) 64px; align-items:center; gap:10px; font-size:11.8px; font-weight:600; color:var(--ink-600);}
.sarir81-bar-row b{text-align:left; font-size:12.8px; font-weight:800; color:var(--graphite-950);}
.sarir81-bar-row.single{grid-template-columns:auto minmax(0,1fr) 56px;}
.sarir81-var{margin-top:14px; padding-top:12px; border-top:1px solid var(--line); display:flex; justify-content:space-between; align-items:baseline; gap:10px; font-size:12.2px; font-weight:600; color:var(--ink-600);}
.sarir81-var b{font-size:15px; font-weight:800;}

/* --- Route / capacity cards --- */
.sarir81-route, .sarir81-cap{padding:16px 18px;}
.sarir81-route-head, .sarir81-cap-head{display:flex; justify-content:space-between; align-items:center; gap:8px 12px; flex-wrap:wrap; margin-bottom:12px;}
.sarir81-cap-head h4{font-size:14px; font-weight:800; color:var(--graphite-950);}
.sarir81-od{display:flex; align-items:center; gap:10px; flex-wrap:wrap; min-width:0; font-size:13.6px; color:var(--graphite-950);}
.sarir81-od b{font-weight:800;}
.sarir81-arrow{width:40px; height:11px; flex:0 0 40px; stroke:var(--gold-600); fill:none; stroke-width:1.8; stroke-linecap:round; stroke-linejoin:round;}
.sarir81-chip{font-size:11px; font-weight:700; color:var(--ink-600); background:var(--paper); border:1px solid var(--line); padding:3px 10px; border-radius:20px; white-space:nowrap;}
.sarir81-figs{display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:10px; padding:12px 0; border-top:1px solid var(--line);}
.sarir81-figs.two{grid-template-columns:repeat(2,minmax(0,1fr));}
.sarir81-figs > div > span{display:block; font-size:10.8px; font-weight:600; color:var(--ink-400); margin-bottom:3px;}
.sarir81-figs b{font-size:14.2px; font-weight:800; color:var(--graphite-950);}
.sarir81-route.no-plan .sarir81-figs{grid-template-columns:minmax(0,1fr);}
.sarir81-route-note{font-size:12px; line-height:1.95; color:var(--ink-600); background:var(--paper); border:1px dashed var(--line); border-radius:var(--radius-sm); padding:10px 12px;}
.sarir81-subhead{display:flex; align-items:center; gap:10px; font-size:12.8px; font-weight:800; color:var(--graphite-900); margin:22px 0 12px;}
.sarir81-subhead::before{content:""; width:4px; height:16px; border-radius:2px; background:var(--gold-500); flex:0 0 4px;}

/* --- Profile --- */
.sarir81-chips{display:flex; flex-wrap:wrap; gap:6px;}
.sarir81-chips span{font-size:11.8px; line-height:1.7; background:var(--paper); border:1px solid var(--line); border-radius:8px; padding:3px 10px; color:var(--ink-900);}
.sarir81-plain{list-style:none; display:flex; flex-direction:column; gap:3px;}
.sarir81-fleet{display:grid; grid-template-columns:repeat(6,minmax(0,1fr)); gap:14px;}
.sarir81-fleet-item{padding:16px; display:flex; flex-direction:column; align-items:flex-start; gap:6px;}
.sarir81-fleet-item b{font-size:24px; font-weight:800; color:var(--graphite-950); line-height:1.2;}
.sarir81-fleet-item > span{font-size:12.2px; font-weight:700; color:var(--ink-600); line-height:1.7;}
.sarir81-fleet-item.pending{border-style:dashed; box-shadow:none;}
.sarir81-fleet-item.pending b{color:var(--steel-500);}
.sarir81-fleet-item .status-badge{font-size:10.6px; padding:3px 9px; margin-top:2px;}
.sarir81-goals{display:grid; grid-template-columns:repeat(auto-fit,minmax(240px,1fr)); gap:12px;}
.sarir81-goal{background:var(--card); border:1px solid var(--line); border-right:3px solid var(--gold-500); border-radius:var(--radius-sm); padding:14px 16px; font-size:12.6px; line-height:1.9; font-weight:600; color:var(--graphite-900);}
.sarir81-contact{display:grid; grid-template-columns:2fr 1fr 1.2fr 1.2fr; gap:14px 20px;}
.sarir81-contact span{display:block; font-size:10.8px; font-weight:600; color:var(--ink-400); margin-bottom:4px;}
.sarir81-contact b{font-size:12.8px; font-weight:700; color:var(--graphite-950); line-height:1.8; overflow-wrap:anywhere;}

/* --- Locomotive --- */
.sarir81-pips{display:grid; grid-template-columns:repeat(10,minmax(0,1fr)); gap:6px;}
.sarir81-pips i{display:block; height:36px; border-radius:6px; border:1.5px dashed var(--steel-300);}
.sarir81-pips i.on{background:var(--gold-500); border:1.5px solid var(--gold-500);}
.sarir81-pips-cap{margin-top:12px; font-size:12.2px; font-weight:700; color:var(--ink-600);}
.sarir81-strip{display:grid; grid-template-columns:repeat(6,minmax(0,1fr)); gap:6px;}
.sarir81-strip div{background:var(--paper); border:1px solid var(--line); border-radius:8px; padding:6px 4px; text-align:center;}
.sarir81-strip span{display:block; font-size:10.4px; font-weight:600; color:var(--ink-400);}
.sarir81-strip b{font-size:14px; font-weight:800; color:var(--graphite-950);}
.sarir81-strip-cap{font-size:10.8px; color:var(--ink-400); margin:6px 0 10px;}
dl.sarir81-kv{display:grid; grid-template-columns:minmax(0,1fr) auto; margin-top:14px; border-top:1px solid var(--line);}
dl.sarir81-kv dt, dl.sarir81-kv dd{padding:8px 0; border-bottom:1px solid var(--line); font-size:12px;}
dl.sarir81-kv dt{color:var(--ink-600); font-weight:600;}
dl.sarir81-kv dd{text-align:left; font-weight:800; color:var(--graphite-950);}
dl.sarir81-kv dt:last-of-type, dl.sarir81-kv dd:last-of-type{border-bottom:none;}

/* --- Responsive --- */
@media(max-width:1100px){
  .sarir81-g12, .sarir81-g21{grid-template-columns:minmax(0,1fr);}
  .sarir81-g5{grid-template-columns:repeat(3,minmax(0,1fr));}
  .sarir81-fleet{grid-template-columns:repeat(3,minmax(0,1fr));}
  .sarir81-contact{grid-template-columns:repeat(2,minmax(0,1fr));}
}
@media(max-width:820px){
  .sarir81 .grid.cols-2{grid-template-columns:minmax(0,1fr);}
}
@media(max-width:600px){
  .sarir81-g5, .sarir81-fleet{grid-template-columns:repeat(2,minmax(0,1fr));}
  .sarir81-contact{grid-template-columns:minmax(0,1fr);}
  .sarir81-hero{padding:18px;}
  .sarir81-hero h2{font-size:16.5px;}
  .sarir81-bar-row{grid-template-columns:86px minmax(0,1fr) 58px; gap:8px;}
  .sarir81-pips i{height:28px;}
  .chart-box.sarir81-chart, .chart-box.sarir81-chart.tall{height:270px;}
}
@media print{
  .sarir81-hero, .sarir81-kpi.feature{-webkit-print-color-adjust:exact; print-color-adjust:exact;}
}

/* v0.8.1 — صفحه خانه: کارت غیرقابل‌کلیک ردیف اول (معاونت اجرایی) هم‌تراز با سه کارت دیگر همان ردیف */
.home-nav-card.primary.is-static{display:flex; flex-direction:column; justify-content:center;}

/* ======================================
   v0.8.2 — TYPOGRAPHY (سرمایه‌گذاری و سریر)
   اعداد جداول و مقادیر این دو ماژول دقیقاً با همان خانواده و تنظیمات فونت بقیه سامانه نمایش داده می‌شوند.
   ایزوله‌سازی جهت (direction / unicode-bidi) در .inv-val و .sarir81-num دست‌نخورده می‌ماند.
====================================== */
.inv-table, .inv-table th, .inv-table td, .inv-ledger, .inv-daily,
.inv-metric, .inv-metric b, .inv-dd-head, .inv-dd-head b, .inv-kv, .inv-kv dt, .inv-kv dd, .inv-val,
.sarir81-table, .sarir81-table th, .sarir81-table td, .sarir81-num{
  font-family:'Vazirmatn', sans-serif;
  font-feature-settings:"ss01";
  font-variant-numeric:normal;
  font-kerning:auto;
}

/* ======================================
   v0.8.2 — SARIR: آماده‌به‌کاری و گالری لکوموتیو
====================================== */
.sarir82-fleet{margin-top:14px; padding-top:14px; border-top:1px solid var(--line);}
.sarir82-fleet-title{font-size:12.2px; font-weight:800; color:var(--graphite-900); margin-bottom:10px;}
.sarir82-fleet-row{display:grid; grid-template-columns:repeat(6,minmax(0,1fr)); gap:8px;}
.sarir82-fleet-row > div{background:var(--paper); border:1px solid var(--line); border-radius:var(--radius-sm); padding:8px 6px; text-align:center;}
.sarir82-fleet-row span{display:block; font-size:11px; font-weight:600; color:var(--ink-600); margin-bottom:3px;}
.sarir82-fleet-row b{font-size:13px; font-weight:800; color:var(--graphite-950); white-space:nowrap;}
.sarir82-fleet-row b small{font-size:10.6px; font-weight:600; color:var(--ink-400); margin-inline-start:3px;}
.sarir82-gallery{display:grid; grid-template-columns:repeat(5,minmax(0,1fr)); gap:14px;}
.sarir82-photo{margin:0; background:var(--card); border:1px solid var(--line); border-radius:var(--radius-sm); overflow:hidden; box-shadow:0 1px 4px rgba(30,37,48,0.05);}
.sarir82-photo img{display:block; width:100%; aspect-ratio:4 / 5; object-fit:cover; background:var(--paper);}
.sarir82-photo figcaption{padding:9px 12px; font-size:12.2px; font-weight:700; color:var(--graphite-900); border-top:1px solid var(--line);}
@media(max-width:1100px){
  .sarir82-gallery{grid-template-columns:repeat(3,minmax(0,1fr));}
}
@media(max-width:600px){
  .sarir82-gallery{grid-template-columns:repeat(2,minmax(0,1fr)); gap:10px;}
  .sarir82-fleet-row{grid-template-columns:repeat(3,minmax(0,1fr));}
}

/* ======================================
   v0.8.2 — STRATEGIC PLANNING & OVERSIGHT (spo-)
====================================== */
.spo .grid > *{min-width:0;}
.spo-g12{grid-template-columns:minmax(0,1.6fr) minmax(0,1fr);}
.spo-hero{
  position:relative; overflow:hidden; color:#fff; border-radius:var(--radius);
  background:linear-gradient(135deg, var(--graphite-950), var(--graphite-900));
  padding:22px 26px; margin-bottom:18px;
  display:flex; align-items:center; justify-content:space-between; gap:14px 24px; flex-wrap:wrap;
}
.spo-hero::after{content:""; position:absolute; inset:0; background:radial-gradient(520px 260px at 92% -20%, rgba(217,166,46,0.20), transparent 62%); pointer-events:none;}
.spo-hero > *{position:relative; z-index:1;}
.spo-hero h2{font-size:19px; font-weight:900; line-height:1.6;}
.spo-hero p{font-size:12.4px; color:#C3CCD6; margin-top:2px; line-height:1.9; max-width:720px;}
.spo-chip{font-size:12px; font-weight:700; color:#F5D98A; background:rgba(217,166,46,0.12); border:1px solid rgba(217,166,46,0.42); padding:7px 16px; border-radius:20px; white-space:nowrap;}

.spo-num{direction:ltr; unicode-bidi:isolate; display:inline-block;}
.spo-kpi{container-type:inline-size; padding:16px 18px;}
.spo-kpi .kpi-value{font-size:clamp(15px, 9.6cqi, 23px); margin:8px 0 3px; display:flex; flex-wrap:wrap; align-items:baseline; gap:2px 6px;}
.spo-kpi .kpi-sub{line-height:1.85;}
.spo-unit{font-size:11px; font-weight:600; color:var(--ink-400); letter-spacing:0;}
.spo-kpi.feature{background:var(--graphite-900); border-color:var(--graphite-900);}
.spo-kpi.feature .kpi-label{color:#AEB9C6;}
.spo-kpi.feature .kpi-value{color:var(--gold-500);}
.spo-kpi.feature .spo-unit{color:#8FA0B3;}
.spo-kpi.feature .kpi-sub{color:#9AA8B8;}

.spo-ic{flex:0 0 34px; width:34px; height:34px; border-radius:9px; background:var(--gold-050); border:1px solid #F1DCAE; display:flex; align-items:center; justify-content:center;}
.spo-ic svg{width:17px; height:17px; stroke:var(--gold-600); fill:none; stroke-width:1.8; stroke-linecap:round; stroke-linejoin:round;}
.spo-area-head{display:flex; align-items:center; gap:10px; margin-bottom:10px;}
.spo-area-head h4{font-size:13.4px; font-weight:800; color:var(--graphite-950); line-height:1.7; min-width:0;}
.spo-count{margin-inline-start:auto; font-size:11px; font-weight:700; color:var(--ink-600); background:var(--paper); border:1px solid var(--line); padding:2px 10px; border-radius:20px; white-space:nowrap;}
.spo-area-grid{display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:16px;}
.spo-area{padding:16px 18px;}
.spo-area p{font-size:12.2px; line-height:1.95; color:var(--ink-600);}

.spo-kv{display:grid; grid-template-columns:minmax(0,1fr) auto; margin:0;}
.spo-kv dt, .spo-kv dd{padding:9px 0; border-bottom:1px solid var(--line); font-size:12.2px; margin:0;}
.spo-kv dt{color:var(--ink-600); font-weight:600; padding-inline-end:12px; line-height:1.8;}
.spo-kv dd{text-align:left; font-weight:800; color:var(--graphite-950); white-space:nowrap; align-self:center;}
.spo-link{all:unset; box-sizing:border-box; cursor:pointer; display:inline-flex; align-items:center; gap:6px; margin-top:14px; font-size:12.2px; font-weight:800; color:var(--gold-700); padding:7px 14px; border:1px solid #F1DCAE; border-radius:8px; background:var(--gold-050);}
.spo-link:hover{background:var(--gold-100);}
.spo-link:focus-visible{outline:2px solid var(--gold-500); outline-offset:2px;}

.spo-detail-grid{display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:16px; align-items:start;}
.spo-detail{padding:16px 18px;}
.spo-detail.wide{grid-row:span 2;}
.spo-list{list-style:none; display:flex; flex-direction:column; gap:8px;}
.spo-list li{position:relative; padding-right:16px; font-size:12.6px; line-height:1.9; color:var(--ink-900);}
.spo-list li::before{content:""; position:absolute; right:0; top:9px; width:6px; height:6px; border-radius:2px; background:var(--gold-600);}
.spo-init-grid{display:grid; grid-template-columns:repeat(6,minmax(0,1fr)); gap:14px;}
.spo-init{grid-column:span 2;}
.spo-init:nth-child(n+4){grid-column:span 3;}
.spo-init{padding:16px 18px; border-top:3px solid var(--gold-500);}
.spo-init p{font-size:12.6px; line-height:2; color:var(--graphite-900); font-weight:600;}
.spo-acr{display:flex; gap:6px; margin-bottom:8px;}
.spo-acr span{font-size:10.8px; font-weight:800; color:var(--graphite-900); background:var(--paper); border:1px solid var(--line); border-radius:6px; padding:1px 8px; direction:ltr;}
.spo-period{display:inline-block; font-size:11px; font-weight:600; color:var(--ink-400); margin-inline-start:6px;}
table.spo-table{min-width:0;}
table.spo-table tbody td.num{white-space:nowrap;}
.spo-g21{grid-template-columns:minmax(0,1.6fr) minmax(0,1fr);}
.spo-strip{margin-top:12px; padding-top:12px; border-top:1px solid var(--line);}
.spo-strip-title{font-size:12px; font-weight:800; color:var(--graphite-900); margin-bottom:8px;}
.spo-strip-row{display:grid; grid-template-columns:repeat(6,minmax(0,1fr)); gap:6px;}
.spo-strip-row > div{background:var(--paper); border:1px solid var(--line); border-radius:8px; padding:6px 4px; text-align:center;}
.spo-strip-row span{display:block; font-size:10.6px; font-weight:600; color:var(--ink-600); margin-bottom:2px;}
.spo-strip-row b{font-size:12.4px; font-weight:800; color:var(--graphite-950);}

/* --- Organization chart (Native) --- */
.spo-org-card{padding:26px 20px;}
.spo-org{container-type:inline-size; display:flex; flex-direction:column; align-items:center;}
.spo-org-root{display:flex; align-items:center; gap:12px; background:var(--graphite-900); color:#fff; border-radius:var(--radius-sm); padding:14px 24px; border-bottom:3px solid var(--gold-500); box-shadow:var(--shadow);}
.spo-org-root b{font-size:14px; font-weight:800;}
.spo-org-root .spo-ic{background:rgba(217,166,46,0.14); border-color:rgba(217,166,46,0.4);}
.spo-org-root .spo-ic svg{stroke:var(--gold-500);}
.spo-org-drop{width:2px; height:26px; background:var(--steel-300);}
.spo-org-row{--g:14px; position:relative; width:100%; display:grid; grid-template-columns:repeat(6,minmax(0,1fr)); gap:var(--g); padding-top:22px;}
.spo-org-row::before{content:""; position:absolute; top:0; height:2px; background:var(--steel-300); inset-inline:calc((100% - 5 * var(--g)) / 12);}
.spo-org-node{position:relative; background:var(--card); border:1px solid var(--line); border-radius:var(--radius-sm); box-shadow:0 1px 4px rgba(30,37,48,0.05); padding:14px 10px; display:flex; flex-direction:column; align-items:center; gap:8px; text-align:center;}
.spo-org-node::before{content:""; position:absolute; top:-23px; left:50%; width:2px; height:22px; margin-left:-1px; background:var(--steel-300);}
.spo-org-node span{font-size:12.2px; font-weight:700; color:var(--graphite-900); line-height:1.8;}
@container (max-width:880px){
  .spo-org-row{grid-template-columns:repeat(3,minmax(0,1fr)); padding:16px; border:2px solid var(--steel-300); border-radius:var(--radius); background:var(--paper);}
  .spo-org-row::before, .spo-org-node::before{display:none;}
}
@container (max-width:520px){
  .spo-org-row{grid-template-columns:minmax(0,1fr); padding:12px;}
  .spo-org-node{flex-direction:row; text-align:right; padding:10px 12px;}
  .spo-org-root{padding:12px 16px;}
  .spo-org-root b{font-size:13px;}
}

.chart-box.spo-chart{height:300px;}
.chart-box.spo-chart.short{height:236px;}

@media(max-width:1100px){
  .spo-g12, .spo-g21{grid-template-columns:minmax(0,1fr);}
  .spo-area-grid{grid-template-columns:repeat(2,minmax(0,1fr));}
  .spo-init-grid{grid-template-columns:repeat(2,minmax(0,1fr));}
  .spo-init, .spo-init:nth-child(n+4){grid-column:auto;}
}
@media(max-width:820px){
  .spo-detail-grid{grid-template-columns:minmax(0,1fr);}
  .spo-detail.wide{grid-row:auto;}
}
@media(max-width:600px){
  .spo-area-grid, .spo-init-grid{grid-template-columns:minmax(0,1fr);}
  .spo-strip-row{grid-template-columns:repeat(3,minmax(0,1fr));}
  .spo-hero{padding:18px;}
  .spo-hero h2{font-size:16.5px;}
  .chart-box.spo-chart{height:270px;}
}
@media print{
  .spo-hero, .spo-kpi.feature, .spo-org-root{-webkit-print-color-adjust:exact; print-color-adjust:exact;}
}

/* ======================================
   v0.8.3 — TYPOGRAPHY (حسابداری و نیروی انسانی)
   همان خانواده و تنظیمات فونت بقیه سامانه؛ بدون ارقام tabular.
====================================== */
.acc, .acc table, .acc th, .acc td, .acc-num,
.hrd, .hrd table, .hrd th, .hrd td, .hrd-num, .hrd select, .hrd input{
  font-family:'Vazirmatn', sans-serif;
  font-feature-settings:"ss01";
  font-variant-numeric:normal;
  font-kerning:auto;
}

/* ======================================
   v0.8.3 — ACCOUNTING (acc-)
====================================== */
.acc .grid > *, .hrd .grid > *{min-width:0;}
.acc-hero, .hrd-hero{
  position:relative; overflow:hidden; color:#fff; border-radius:var(--radius);
  background:linear-gradient(135deg, var(--graphite-950), var(--graphite-900));
  padding:22px 26px; margin-bottom:18px;
  display:flex; align-items:center; justify-content:space-between; gap:14px 24px; flex-wrap:wrap;
}
.acc-hero::after, .hrd-hero::after{content:""; position:absolute; inset:0; background:radial-gradient(520px 260px at 92% -20%, rgba(217,166,46,0.20), transparent 62%); pointer-events:none;}
.acc-hero > *, .hrd-hero > *{position:relative; z-index:1;}
.acc-hero h2, .hrd-hero h2{font-size:19px; font-weight:900; line-height:1.6;}
.acc-hero p, .hrd-hero p{font-size:12.4px; color:#C3CCD6; margin-top:2px; line-height:1.9; max-width:720px;}
.acc-hero-meta{display:flex; flex-wrap:wrap; gap:6px 10px; margin-top:10px;}
.acc-hero-meta > span{font-size:11.4px; font-weight:600; color:#AEB9C6; background:rgba(255,255,255,0.05); border:1px solid rgba(255,255,255,0.10); padding:3px 10px; border-radius:20px;}
.acc-chip{font-size:12px; font-weight:700; color:#F5D98A; background:rgba(217,166,46,0.12); border:1px solid rgba(217,166,46,0.42); padding:7px 16px; border-radius:20px; white-space:nowrap;}

.acc-num{direction:ltr; unicode-bidi:isolate; display:inline-block;}
.acc-num.neg{color:var(--red);}
.acc-dash{color:var(--ink-400);}
.acc-muted{color:var(--ink-400); font-weight:600;}
.acc-kpi{container-type:inline-size; padding:16px 18px;}
.acc-kpi .kpi-value{font-size:clamp(15px, 9.2cqi, 23px); margin:8px 0 3px; display:flex; flex-wrap:wrap; align-items:baseline; gap:2px 6px;}
.acc-kpi .kpi-sub{line-height:1.9; display:flex; flex-wrap:wrap; gap:0 6px; align-items:baseline;}
.acc-unit{font-size:11px; font-weight:600; color:var(--ink-400); letter-spacing:0;}
.acc-kpi.feature{background:var(--graphite-900); border-color:var(--graphite-900);}
.acc-kpi.feature .kpi-label{color:#AEB9C6;}
.acc-kpi.feature .kpi-value{color:var(--gold-500);}
.acc-kpi.feature .acc-unit, .acc-kpi.feature .acc-muted{color:#8FA0B3;}
.acc-kpi.feature .kpi-sub{color:#9AA8B8;}
.acc-kpi.feature .acc-num.neg{color:#F08A82;}

.acc-g11{grid-template-columns:repeat(2,minmax(0,1fr));}
.acc-g21{grid-template-columns:minmax(0,1.6fr) minmax(0,1fr);}
.acc-g5{grid-template-columns:repeat(5,minmax(0,1fr));}
.chart-box.acc-chart{height:300px;}
.chart-box.acc-chart.tall{height:340px;}
.chart-box.acc-chart.donut{height:230px;}

.acc-ratios{margin-top:16px; padding:16px 18px;}
.acc-ratio-row{display:grid; grid-template-columns:repeat(6,minmax(0,1fr)); gap:10px;}
.acc-ratio{background:var(--paper); border:1px solid var(--line); border-radius:var(--radius-sm); padding:10px 12px; display:flex; flex-direction:column; gap:2px;}
.acc-ratio span{font-size:11.4px; font-weight:700; color:var(--ink-600);}
.acc-ratio b{font-size:17px; font-weight:900; color:var(--graphite-950); align-self:flex-start;}
.acc-ratio small{font-size:10.6px; color:var(--ink-400); line-height:1.7;}

.acc-legend{display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:6px 14px; margin-top:12px; padding-top:12px; border-top:1px solid var(--line);}
.acc-legend > div{display:flex; align-items:center; gap:8px; font-size:11.6px; color:var(--ink-600); min-width:0;}
.acc-legend i{flex:0 0 10px; width:10px; height:10px; border-radius:3px;}
.acc-legend span{flex:1; min-width:0; line-height:1.7;}
.acc-legend b{font-weight:800; color:var(--graphite-950); white-space:nowrap;}

.acc-strip{margin-top:12px; padding-top:12px; border-top:1px solid var(--line);}
.acc-strip-title{font-size:12px; font-weight:800; color:var(--graphite-900); margin-bottom:8px;}
.acc-strip-row{display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:8px;}
.acc-strip-row > div{background:var(--paper); border:1px solid var(--line); border-radius:8px; padding:6px 4px; text-align:center;}
.acc-strip-row span{display:block; font-size:10.8px; font-weight:600; color:var(--ink-600); margin-bottom:2px;}
.acc-strip-row b{font-size:13px; font-weight:800; color:var(--graphite-950);}

/* --- جداول صورت‌های مالی --- */
.acc-tools{display:inline-flex; align-items:center; gap:12px; flex-wrap:wrap; justify-content:flex-end;}
.acc-toggle{display:inline-flex; align-items:center; gap:6px; font-size:11.4px; font-weight:700; color:var(--ink-600); cursor:pointer; white-space:nowrap;}
.acc-toggle input{accent-color:var(--gold-600); width:14px; height:14px; cursor:pointer;}
table.acc-table{min-width:680px;}
table.acc-table thead th{vertical-align:bottom; line-height:1.6;}
table.acc-table thead th small{display:block; font-size:10.2px; font-weight:600; color:#AEB9C6; margin-top:2px;}
table.acc-table thead th.acc-desc{text-align:right; min-width:260px;}
table.acc-table tbody td{padding:8px 10px;}
table.acc-table tbody td.num{text-align:left; white-space:nowrap;}
table.acc-table tbody td.label-cell{font-weight:600; line-height:1.8;}
table.acc-table tbody tr.acc-sec td{background:var(--gold-050); color:var(--gold-700); font-weight:800; font-size:12px; text-align:right; padding:8px 10px; border-bottom:1px solid #F1DCAE;}
table.acc-table tbody tr.acc-zero td{color:var(--ink-400);}
table.acc-table tbody tr.acc-zero td.label-cell{color:var(--ink-600); font-weight:500;}
table.acc-table tbody tr.acc-grand{background:var(--gold-100);}
table.acc-table tbody tr.acc-grand td{font-weight:900; color:var(--graphite-950); border-top:1px solid #E9CF8F;}
.acc-hide-zero tr.acc-zero{display:none;}
table.acc-eq-table{min-width:1180px; font-size:11.8px;}
table.acc-eq-table thead th{white-space:normal; min-width:84px; font-size:11px;}
table.acc-eq-table thead th.acc-desc{min-width:240px; position:sticky; right:0; z-index:2;}
table.acc-eq-table tbody td.label-cell{position:sticky; right:0; z-index:1; background:#fff; box-shadow:-1px 0 0 var(--line); min-width:240px;}
table.acc-eq-table tbody tr:nth-child(even) td.label-cell{background:#F8F9FB;}
table.acc-eq-table tbody tr.pl-emph td.label-cell{background:#F3F5F8;}
table.acc-eq-table tbody tr.acc-sec td{position:static;}
table.acc-eq-table tbody td.acc-totcol{font-weight:800; color:var(--graphite-950); background:rgba(217,166,46,0.07);}

/* --- حسابرس --- */
.acc-aud-head{display:grid; grid-template-columns:minmax(0,1.3fr) minmax(0,1fr); gap:18px 28px; align-items:start; border-top:3px solid var(--gold-500);}
.acc-aud-main h3{font-size:16px; font-weight:900; color:var(--graphite-950); margin:12px 0 6px;}
.acc-aud-main p{font-size:12.6px; line-height:2; color:var(--ink-600);}
.acc-kv{display:grid; grid-template-columns:auto minmax(0,1fr); margin:0;}
.acc-kv dt, .acc-kv dd{padding:8px 0; border-bottom:1px solid var(--line); font-size:12.2px; margin:0; line-height:1.8;}
.acc-kv dt{color:var(--ink-600); font-weight:600; padding-inline-end:16px; white-space:nowrap;}
.acc-kv dd{font-weight:800; color:var(--graphite-950);}
.acc-aud-grid{display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:16px; align-items:start;}
.acc-emph-grid{display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:16px;}
.acc-aud-item{padding:16px 18px;}
.acc-aud-ttl{display:flex; align-items:center; gap:10px; margin-bottom:10px; flex-wrap:wrap;}
.acc-aud-ttl h4{font-size:13.2px; font-weight:800; color:var(--graphite-950); line-height:1.7; flex:1; min-width:140px;}
.acc-aud-no{flex:0 0 28px; width:28px; height:28px; border-radius:8px; background:var(--gold-050); border:1px solid #F1DCAE; color:var(--gold-700); font-weight:900; font-size:12.4px; display:flex; align-items:center; justify-content:center;}
.acc-note{font-size:10.8px; font-weight:700; color:var(--ink-600); background:var(--paper); border:1px solid var(--line); padding:1px 8px; border-radius:6px; white-space:nowrap;}
.acc-aud-item p{font-size:12.4px; line-height:2.05; color:var(--ink-900);}
.acc-figs{display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:8px; margin-top:12px;}
.acc-figs > div{background:var(--paper); border:1px solid var(--line); border-radius:8px; padding:8px 10px;}
.acc-figs > div > span{display:block; font-size:11px; font-weight:600; color:var(--ink-600); line-height:1.7;}
.acc-figs > div > div{display:flex; align-items:baseline; gap:5px;}
.acc-figs b{font-size:15px; font-weight:900; color:var(--graphite-950);}
.acc-figs > div > div span{font-size:10.6px; color:var(--ink-400); font-weight:600;}
.acc-list{list-style:none; display:flex; flex-direction:column; gap:10px;}
.acc-list li{position:relative; padding-right:16px; font-size:12.6px; line-height:2; color:var(--ink-900);}
.acc-list li::before{content:""; position:absolute; right:0; top:10px; width:6px; height:6px; border-radius:2px; background:var(--gold-600);}

/* --- اطلاعات گزارش و هیئت‌مدیره --- */
.acc-kv.wide dt{min-width:120px;}
.acc-board-stats{display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:10px; margin-bottom:14px;}
.acc-board-stats > div{background:var(--paper); border:1px solid var(--line); border-radius:var(--radius-sm); padding:10px; text-align:center;}
.acc-board-stats b{display:block; font-size:22px; font-weight:900; color:var(--graphite-950);}
.acc-board-stats span{font-size:11.4px; font-weight:700; color:var(--ink-600);}
.acc-roles{list-style:none;}
.acc-roles li{display:flex; justify-content:space-between; gap:12px; padding:9px 0; border-bottom:1px solid var(--line); font-size:12.4px;}
.acc-roles li span{color:var(--ink-600); font-weight:600;}
.acc-roles li b{color:var(--graphite-950); font-weight:800;}
table.acc-board{min-width:860px;}
table.acc-board tbody td{line-height:1.8;}
.acc-pill{display:inline-block; font-size:11.2px; font-weight:700; padding:2px 10px; border-radius:20px; background:var(--paper); border:1px solid var(--line); color:var(--ink-600); white-space:nowrap;}
.acc-pill.on{background:var(--gold-050); border-color:#F1DCAE; color:var(--gold-700);}

/* ======================================
   v0.8.3 — HR GENERAL (hrd-)
====================================== */
.hrd-hero-meta{display:flex; gap:10px; flex-wrap:wrap;}
.hrd-hero-meta > div{background:rgba(255,255,255,0.05); border:1px solid rgba(255,255,255,0.12); border-radius:var(--radius-sm); padding:8px 14px; text-align:center; min-width:96px;}
.hrd-hero-meta b{display:block; font-size:18px; font-weight:900; color:var(--gold-500);}
.hrd-hero-meta span{font-size:11px; font-weight:600; color:#AEB9C6;}
.hrd-num{direction:ltr; unicode-bidi:isolate; display:inline-block;}
.hrd-muted{color:var(--ink-400); font-weight:600;}

.hrd-filter-bar{background:var(--card); border:1px solid var(--line); border-radius:var(--radius-sm); padding:10px 12px; margin-bottom:16px;}
.hrd-frow{display:flex; align-items:center; gap:10px 14px; flex-wrap:wrap;}
.hrd-fsel{display:inline-flex; align-items:center; gap:6px; font-size:11.6px; color:var(--ink-400); font-weight:700;}
.hrd-fsel select{padding:7px 10px; border:1px solid var(--line); border-radius:8px; font-size:12px; background:var(--paper); color:var(--ink-900); max-width:210px; cursor:pointer;}
.hrd-fsel.is-set select{border-color:var(--gold-500); background:var(--gold-050); color:var(--gold-700); font-weight:700;}
.hrd-reset{all:unset; box-sizing:border-box; cursor:pointer; font-size:12px; font-weight:700; color:var(--gold-700); padding:6px 10px; border-radius:8px;}
.hrd-reset:hover:not(:disabled){background:var(--gold-050);}
.hrd-reset:disabled{color:var(--ink-400); cursor:default; opacity:.55;}
.hrd-fcount{margin-inline-start:auto; font-size:11.6px; font-weight:700; color:var(--ink-400); white-space:nowrap;}
.hrd-chips{display:flex; align-items:center; gap:6px; flex-wrap:wrap; margin-top:10px; padding-top:10px; border-top:1px dashed var(--line); font-size:11.4px; color:var(--ink-400); font-weight:700;}
.hrd-chip{all:unset; box-sizing:border-box; cursor:pointer; display:inline-flex; align-items:center; gap:6px; font-size:11.4px; font-weight:700; color:var(--gold-700); background:var(--gold-050); border:1px solid #F1DCAE; padding:3px 10px; border-radius:20px;}
.hrd-chip i{font-style:normal; font-size:13px; line-height:1;}
.hrd-fsel select:focus-visible, .hrd-reset:focus-visible, .hrd-chip:focus-visible, .hrd-link:focus-visible, .hrd-lg button:focus-visible, .hrd-nocap-item:focus-visible, table.hrd-emp tbody tr:focus-visible{outline:2px solid var(--gold-500); outline-offset:2px;}

.hrd-kpi{container-type:inline-size; padding:16px 18px;}
.hrd-kpi .kpi-value{font-size:clamp(16px, 10cqi, 24px); margin:8px 0 3px; display:flex; flex-wrap:wrap; align-items:baseline; gap:2px 6px;}
.hrd-kpi .kpi-sub{line-height:1.9;}
.hrd-kpi .kpi-sub b{color:var(--graphite-950); font-weight:800;}
.hrd-unit{font-size:11px; font-weight:600; color:var(--ink-400);}
.hrd-kpi.feature{background:var(--graphite-900); border-color:var(--graphite-900);}
.hrd-kpi.feature .kpi-label, .hrd-kpi.feature .kpi-sub{color:#AEB9C6;}
.hrd-kpi.feature .kpi-value{color:var(--gold-500);}
.hrd-kpi.feature .hrd-unit{color:#8FA0B3;}
.hrd-kpi.ok{border-top:3px solid var(--green);}
.hrd-kpi.rev{border-top:3px solid var(--gold-500);}
.hrd-kpi.unk{border-top:3px solid var(--steel-300);}
.hrd-mbar{height:5px; border-radius:4px; background:var(--paper); overflow:hidden; margin:6px 0 4px;}
.hrd-mbar span{display:block; height:100%; border-radius:4px;}
.hrd-mbar .ok{background:var(--green);}
.hrd-mbar .rev{background:var(--gold-500);}
.hrd-mbar .unk{background:var(--steel-300);}

.hrd-summary{padding:16px 18px;}
.hrd-st-grid{display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:12px;}
.hrd-st{background:var(--paper); border:1px solid var(--line); border-radius:var(--radius-sm); padding:12px 14px;}
.hrd-st > span{display:inline-block; font-size:11.2px; font-weight:800; color:var(--gold-700); margin-bottom:4px;}
.hrd-st p{font-size:12.4px; line-height:2; color:var(--ink-900);}
.hrd-st strong{font-weight:800; color:var(--graphite-950);}
.hrd-empty{font-size:12.4px; color:var(--ink-400); text-align:center; padding:24px 12px !important;}

table.hrd-matrix{min-width:1040px;}
table.hrd-matrix tbody td{white-space:nowrap;}
table.hrd-matrix tbody td.num, table.hrd-captable tbody td.num{text-align:center;}
table.data-table tbody tr.hrd-sel{background:var(--gold-050) !important;}
table.data-table tbody tr.hrd-dim td{opacity:.5;}
.hrd-link{all:unset; cursor:pointer; font-weight:700; color:var(--graphite-900); border-bottom:1px dashed var(--steel-300);}
.hrd-link:hover{color:var(--gold-700); border-bottom-color:var(--gold-500);}
.hrd-badge{display:inline-flex; align-items:center; gap:5px; font-size:11.2px; font-weight:700; padding:3px 10px; border-radius:20px; white-space:nowrap;}
.hrd-badge::before{content:""; width:6px; height:6px; border-radius:50%; background:currentColor;}
.hrd-badge.ok{background:#E8F6EC; color:var(--green);}
.hrd-badge.rev{background:#FDF1E2; color:var(--gold-700);}
.hrd-badge.unk{background:#EEF1F5; color:var(--steel-500);}
.hrd-badge.pri{background:#F3E9DD; color:#8A5A12;}
.hrd-dqtag{display:inline-block; font-size:10.8px; font-weight:700; color:var(--steel-500); background:#EEF1F5; border-radius:6px; padding:1px 7px; margin:1px 0 1px 4px; white-space:nowrap;}
.hrd-dqtag.ok{color:var(--green); background:#E8F6EC;}
.hrd-gap{font-size:11.6px; font-weight:800; white-space:nowrap;}
.hrd-gap.neg{color:#8A5A12;}
.hrd-gap.pos{color:var(--steel-500);}
.hrd-gap.zero{color:var(--green);}
.hrd-rules{display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:10px; margin-top:14px; padding-top:14px; border-top:1px solid var(--line);}
.hrd-rules p{font-size:11.4px; line-height:1.9; color:var(--ink-600); margin-top:4px;}

.hrd-g11{grid-template-columns:repeat(2,minmax(0,1fr));}
.hrd-g21{grid-template-columns:minmax(0,1.5fr) minmax(0,1fr);}
.hrd-g3{grid-template-columns:repeat(3,minmax(0,1fr));}
.chart-box.hrd-chart{height:280px;}
.chart-box.hrd-chart.tall{height:340px;}
.chart-box.hrd-chart.donut{height:210px;}
.hrd-hint{font-size:11.2px; color:var(--ink-400); margin-top:10px;}
.hrd-capfoot{display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:6px; margin-top:12px; padding-top:12px; border-top:1px solid var(--line);}
.hrd-capfoot > div{background:var(--paper); border:1px solid var(--line); border-radius:8px; padding:6px 4px; text-align:center;}
.hrd-capfoot span{display:block; font-size:10.8px; font-weight:600; color:var(--ink-600);}
.hrd-capfoot b{font-size:13px; font-weight:800; color:var(--graphite-950);}
table.hrd-captable{min-width:0;}
.hrd-nocap{display:flex; flex-direction:column; gap:8px;}
.hrd-nocap-item{all:unset; box-sizing:border-box; cursor:pointer; display:flex; justify-content:space-between; align-items:center; gap:10px; padding:10px 12px; border:1px dashed var(--steel-300); border-radius:var(--radius-sm); background:var(--paper); font-size:12.4px;}
.hrd-nocap-item span{font-weight:700; color:var(--graphite-900);}
.hrd-nocap-item b{font-weight:800; color:var(--ink-600); white-space:nowrap;}
.hrd-nocap-item.dim{opacity:.45;}
.hrd-nocap-item:hover{border-color:var(--gold-500);}
.hrd-vac-grid{display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:16px;}
.hrd-vac{padding:16px 18px; border-top:3px solid var(--gold-500);}
.hrd-vac-p{font-size:11px; font-weight:700; color:var(--gold-700); background:var(--gold-050); border:1px solid #F1DCAE; padding:2px 10px; border-radius:20px;}
.hrd-vac h4{font-size:13.4px; font-weight:800; color:var(--graphite-950); margin:10px 0 8px; line-height:1.8;}
.hrd-vac dl, .hrd-kv{display:grid; grid-template-columns:auto minmax(0,1fr); gap:0;}
.hrd-vac dt, .hrd-vac dd, .hrd-kv dt, .hrd-kv dd{font-size:11.8px; padding:6px 0; border-bottom:1px solid var(--line); margin:0; line-height:1.8;}
.hrd-vac dt, .hrd-kv dt{color:var(--ink-600); font-weight:600; padding-inline-end:12px; white-space:nowrap;}
.hrd-vac dd, .hrd-kv dd{color:var(--graphite-950); font-weight:700;}

.hrd-def{background:#EAF1F8; border:1px solid #C9D9EA; color:#1F4064; border-radius:10px; padding:10px 14px; font-size:12.2px; line-height:1.9; margin-bottom:16px;}
.hrd-donut-c{position:absolute; inset:0; display:flex; flex-direction:column; align-items:center; justify-content:center; pointer-events:none;}
.hrd-donut-c b{font-size:26px; font-weight:900; color:var(--graphite-950); line-height:1.2;}
.hrd-donut-c span{font-size:11.4px; color:var(--ink-400); font-weight:600;}
.hrd-lg{display:flex; flex-direction:column; gap:4px; margin-top:12px;}
.hrd-lg button{all:unset; box-sizing:border-box; cursor:pointer; display:grid; grid-template-columns:12px minmax(0,1fr) auto 64px; align-items:center; gap:8px; padding:7px 10px; border-radius:8px; font-size:12.2px; border:1px solid transparent;}
.hrd-lg button:hover, .hrd-lg button.on{background:var(--paper); border-color:var(--line);}
.hrd-lg i{width:10px; height:10px; border-radius:3px;}
.hrd-lg span{font-weight:700; color:var(--graphite-900);}
.hrd-lg b{font-weight:800; color:var(--graphite-950);}
.hrd-lg em{font-style:normal; color:var(--ink-400); font-weight:600; text-align:left;}
.hrd-foot{display:flex; flex-wrap:wrap; gap:6px 16px; margin-top:12px; padding-top:10px; border-top:1px solid var(--line); font-size:11.2px; color:var(--ink-400);}
.hrd-foot b{color:var(--graphite-950); font-weight:800;}
.hrd-ret{display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:6px; margin-top:12px; padding-top:12px; border-top:1px solid var(--line);}
.hrd-ret > div{background:var(--paper); border:1px solid var(--line); border-radius:8px; padding:6px 8px; text-align:center;}
.hrd-ret > div.w{background:#FDF6E9; border-color:#F1DCAE;}
.hrd-ret b{display:block; font-size:15px; font-weight:900; color:var(--graphite-950);}
.hrd-ret span{font-size:10.8px; color:var(--ink-600); font-weight:600; line-height:1.7;}

.hrd-toolbar{margin-bottom:12px;}
.hrd-scroll{max-height:620px;}
table.hrd-emp{min-width:1500px; font-size:12px;}
table.hrd-emp thead th{white-space:nowrap;}
table.hrd-emp tbody td{white-space:nowrap; padding:8px 8px;}
table.hrd-emp tbody td.wrap{white-space:normal; min-width:150px; line-height:1.8; text-align:right;}
table.hrd-emp tbody td.label-cell{font-weight:700;}
table.hrd-emp tbody tr[data-id]{cursor:pointer;}
table.hrd-emp tbody tr[data-id]:hover{background:var(--gold-050);}
table.hrd-emp tbody tr.open{background:var(--gold-050) !important;}
table.hrd-emp tbody tr.hrd-detail{background:#FBFCFD !important;}
table.hrd-emp tbody tr.hrd-detail > td{white-space:normal; text-align:right; padding:14px 16px; border-bottom:2px solid #F1DCAE;}
.hrd-detail-grid{display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:18px; max-width:1180px;}
.hrd-detail-grid h5{font-size:12px; font-weight:800; color:var(--gold-700); margin-bottom:6px;}
.hrd-mt{font-size:11.2px; font-weight:700; white-space:nowrap;}
.hrd-mt.pos{color:var(--green);}
.hrd-mt.neg{color:#8A5A12;}
.hrd-mt.unk{color:var(--ink-400);}

.hrd-dq{display:grid; grid-template-columns:repeat(6,minmax(0,1fr)); gap:14px;}
.hrd-dqi{padding:14px 16px;}
.hrd-dqi b{display:flex; align-items:baseline; gap:6px; font-size:22px; font-weight:900; color:var(--graphite-950);}
.hrd-dqi b small{font-size:11px; font-weight:600; color:var(--ink-400);}
.hrd-dqi > span{display:block; font-size:11.8px; font-weight:700; color:var(--ink-600); line-height:1.8; margin-top:2px; min-height:42px;}
.hrd-list{list-style:none; display:flex; flex-direction:column; gap:8px;}
.hrd-list li{position:relative; padding-right:16px; font-size:12.4px; line-height:2; color:var(--ink-900);}
.hrd-list li::before{content:""; position:absolute; right:0; top:10px; width:6px; height:6px; border-radius:2px; background:var(--gold-600);}
.hrd-list li b{font-weight:800; color:var(--graphite-950);}

@media(max-width:1300px){
  .acc-ratio-row{grid-template-columns:repeat(3,minmax(0,1fr));}
  .acc-emph-grid{grid-template-columns:repeat(2,minmax(0,1fr));}
  .hrd-dq{grid-template-columns:repeat(3,minmax(0,1fr));}
  .hrd-st-grid{grid-template-columns:repeat(2,minmax(0,1fr));}
}
@media(max-width:1100px){
  .acc-g11, .acc-g21, .hrd-g11, .hrd-g21{grid-template-columns:minmax(0,1fr);}
  .acc-g5{grid-template-columns:repeat(2,minmax(0,1fr));}
  .acc-g5 > :first-child{grid-column:1 / -1;}
  .acc-aud-head, .acc-aud-grid{grid-template-columns:minmax(0,1fr);}
  .hrd-g3{grid-template-columns:repeat(2,minmax(0,1fr));}
  .hrd-vac-grid{grid-template-columns:repeat(2,minmax(0,1fr));}
  .hrd-rules{grid-template-columns:repeat(2,minmax(0,1fr));}
  .hrd-detail-grid{grid-template-columns:minmax(0,1fr) minmax(0,1fr);}
}
@media(max-width:600px){
  .acc-hero, .hrd-hero{padding:18px;}
  .acc-hero h2, .hrd-hero h2{font-size:16.5px;}
  .acc-ratio-row{grid-template-columns:repeat(2,minmax(0,1fr));}
  .acc-legend{grid-template-columns:minmax(0,1fr);}
  .acc-emph-grid, .acc-figs{grid-template-columns:minmax(0,1fr);}
  .chart-box.acc-chart, .chart-box.acc-chart.tall{height:290px;}
  .acc-card-title-wrap{flex-wrap:wrap;}
  .acc-stmt .card-title{flex-wrap:wrap;}
  .hrd-g3, .hrd-vac-grid, .hrd-rules, .hrd-st-grid, .hrd-detail-grid{grid-template-columns:minmax(0,1fr);}
  .hrd-dq{grid-template-columns:repeat(2,minmax(0,1fr));}
  .hrd-fsel{flex:1 1 100%; justify-content:space-between;}
  .hrd-fsel select{flex:1; max-width:none;}
  .hrd-fcount{margin-inline-start:0;}
  .hrd-capfoot{grid-template-columns:repeat(2,minmax(0,1fr));}
  .hrd-hero-meta > div{min-width:0; flex:1;}
}
@media print{
  .acc-hero, .hrd-hero, .acc-kpi.feature, .hrd-kpi.feature{-webkit-print-color-adjust:exact; print-color-adjust:exact;}
}

/* ======================================
   v0.8.3 — مدیریت برنامه‌ریزی و نظارت راهبردی: نام مدیر در گره ریشه
====================================== */
.spo-org-root .spo-org-who{display:flex; flex-direction:column; gap:2px; line-height:1.7;}
.spo-org-root .spo-org-name{font-size:12.6px; font-weight:700; color:var(--gold-500);}

/* ======================================
   v0.8.4 — ACCOUNTING: کارت دوپنلی نمودارهای علامت‌دار
====================================== */
.acc-split{display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1.5fr); gap:18px;}
.acc-split-pane{min-width:0; background:var(--paper); border:1px solid var(--line); border-radius:var(--radius-sm); padding:12px 12px 6px;}
.acc-split-pane h5{font-size:12.2px; font-weight:800; color:var(--graphite-900); margin-bottom:6px;}
.acc-split-pane .chart-box{background:#fff; border-radius:8px;}
.chart-box.acc-chart.split{height:290px;}
@media(max-width:900px){ .acc-split{grid-template-columns:minmax(0,1fr);} }
@media(max-width:700px){
  .chart-box.acc-chart.signed-h{height:430px;}
  .chart-box.acc-chart.split{height:250px;}
}

/* ======================================
   v0.8.4 — SPO: وضعیت صورت‌وضعیت ماهانه
====================================== */
.spo-chip .status-badge{margin-inline-start:8px; padding:2px 9px; font-size:10.8px; vertical-align:middle;}
table.spo-table td .status-badge{padding:3px 10px; font-size:11px; white-space:nowrap;}

/* ======================================
   v0.8.4 — ENERGY MANAGEMENT DOCUMENTS (emr-)
====================================== */
.emr{min-width:0;}
.emr .grid > *{min-width:0;}
.emr-head{display:flex; flex-direction:column; gap:4px; margin-bottom:6px;}
.emr-head .section-title{margin-bottom:10px;}
.emr-domains{display:inline-flex; flex-wrap:wrap; gap:6px; background:var(--card); border:1px solid var(--line); border-radius:12px; padding:5px; align-self:flex-start; max-width:100%;}
.emr-domain{all:unset; box-sizing:border-box; cursor:pointer; display:inline-flex; align-items:center; gap:8px; padding:9px 20px; border-radius:9px; font-size:13px; font-weight:800; color:var(--ink-600);}
.emr-domain svg{width:16px; height:16px; fill:none; stroke:currentColor; stroke-width:1.8; stroke-linejoin:round;}
.emr-domain:hover{color:var(--graphite-950); background:var(--paper);}
.emr-domain.active{background:var(--graphite-900); color:#fff;}
.emr-domain.active svg{stroke:var(--gold-500);}
.emr-domain:focus-visible, .emr-month:focus-visible, .emr-line:focus-visible{outline:2px solid var(--gold-500); outline-offset:2px;}
.emr-monthbar{margin:22px 0 4px; padding:10px 12px; background:var(--card); border:1px solid var(--line); border-radius:var(--radius-sm);}
.emr-months{display:flex; flex-wrap:wrap; gap:8px;}
.emr-month{all:unset; box-sizing:border-box; cursor:pointer; font-size:12.2px; font-weight:700; padding:7px 15px; border-radius:20px; border:1px solid var(--line); background:var(--paper); color:var(--ink-600); white-space:nowrap;}
.emr-month:hover{color:var(--graphite-950); border-color:#D5DCE4;}
.emr-month.active{background:var(--gold-500); border-color:var(--gold-500); color:#241b06;}

.emr-num{direction:ltr; unicode-bidi:isolate; display:inline-block;}
.emr-lat{unicode-bidi:isolate; direction:ltr;}
.emr-unit{font-size:11px; font-weight:600; color:var(--ink-400);}
.emr-kpi{container-type:inline-size; padding:16px 18px;}
.emr-kpi .kpi-value{font-size:clamp(15px, 9cqi, 22px); margin:8px 0 3px; display:flex; flex-wrap:wrap; align-items:baseline; gap:2px 6px; line-height:1.5;}
.emr-kpi .kpi-sub{line-height:1.9;}
.emr-kpi .kpi-sub b{color:var(--graphite-950); font-weight:800;}
.emr-kpi.feature{background:var(--graphite-900); border-color:var(--graphite-900);}
.emr-kpi.feature .kpi-label, .emr-kpi.feature .kpi-sub{color:#AEB9C6;}
.emr-kpi.feature .kpi-sub b{color:#fff;}
.emr-kpi.feature .kpi-value{color:var(--gold-500);}
.emr-kpi.feature .emr-unit{color:#8FA0B3;}

.emr-g11{grid-template-columns:repeat(2,minmax(0,1fr));}
.emr-g21{grid-template-columns:minmax(0,1.6fr) minmax(0,1fr);}
.chart-box.emr-chart{height:300px;}
.chart-box.emr-chart.tall{height:340px;}
.chart-box.emr-chart.auto{height:300px;}

.emr-delta{display:flex; flex-direction:column;}
.emr-delta-main{font-size:30px; font-weight:900; color:var(--graphite-950); display:flex; align-items:baseline; gap:8px; margin-top:4px;}
.emr-delta-pct{font-size:15px; font-weight:800; color:var(--gold-700); margin:2px 0 12px;}
.emr-kv{display:grid; grid-template-columns:minmax(0,1fr) auto; margin:0;}
.emr-kv dt, .emr-kv dd{padding:8px 0; border-bottom:1px solid var(--line); font-size:12.2px; margin:0;}
.emr-kv dt{color:var(--ink-600); font-weight:600;}
.emr-kv dd{font-weight:800; color:var(--graphite-950); white-space:nowrap; text-align:left;}
.emr-foot{margin-top:auto; padding-top:12px; font-size:11.2px; color:var(--ink-400); line-height:1.8;}

.emr-lead{font-size:12.4px; color:var(--ink-600); line-height:1.95; margin-bottom:10px;}
.emr-acts{list-style:none; counter-reset:emr; display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:10px;}
.emr-acts li{counter-increment:emr; position:relative; background:var(--paper); border:1px solid var(--line); border-radius:var(--radius-sm); padding:10px 44px 10px 12px; font-size:12.4px; line-height:1.9; color:var(--ink-900);}
.emr-acts li::before{content:counter(emr, persian); position:absolute; right:10px; top:10px; width:24px; height:24px; border-radius:7px; background:var(--gold-050); border:1px solid #F1DCAE; color:var(--gold-700); font-weight:900; font-size:12px; display:flex; align-items:center; justify-content:center;}

.emr-total-strip{display:flex; flex-wrap:wrap; align-items:center; gap:8px 18px; margin-top:14px; background:var(--graphite-900); color:#fff; border-radius:var(--radius-sm); padding:12px 16px; font-size:12.4px;}
.emr-total-strip span{flex:1 1 260px; color:#C3CCD6; font-weight:600;}
.emr-total-strip b{color:var(--gold-500); font-weight:900; font-size:14px; white-space:nowrap;}

table.emr-table{min-width:0;}
table.emr-table thead th small{display:block; font-size:10px; font-weight:600; color:#AEB9C6; margin-top:2px; white-space:nowrap;}
table.emr-table tbody td.num{white-space:nowrap;}
table.emr-table tbody tr.emr-zero td{color:var(--ink-400);}
table.emr-table tbody tr.emr-sel{background:var(--gold-100) !important; font-weight:800;}
table.emr-weekly{min-width:980px; font-size:11.8px;}
table.emr-weekly thead th{white-space:normal; line-height:1.6;}
table.emr-weekly tbody td b{font-weight:800; color:var(--graphite-950);}
table.emr-meter{min-width:420px;}
table.emr-static-table.emr-sel-0 tbody td:nth-child(2), table.emr-static-table.emr-sel-1 tbody td:nth-child(3){background:rgba(217,166,46,0.08); font-weight:800;}

.emr-check{list-style:none; display:flex; flex-direction:column; gap:8px;}
.emr-check > li{position:relative; padding-right:26px; font-size:12.4px; line-height:1.95; color:var(--ink-900);}
.emr-check > li::before{content:""; position:absolute; right:0; top:4px; width:16px; height:16px; border-radius:5px; background:#E8F6EC; border:1px solid #BFE3CB;}
.emr-check > li::after{content:""; position:absolute; right:5px; top:7px; width:4px; height:8px; border:solid var(--green); border-width:0 2px 2px 0; transform:rotate(45deg);}
.emr-check.pending > li::before{background:var(--gold-050); border-color:#F1DCAE;}
.emr-check.pending > li::after{border:none; width:6px; height:6px; border-radius:50%; background:var(--gold-600); right:5px; top:9px; transform:none;}
.emr-sub{list-style:none; margin-top:6px; display:flex; flex-direction:column; gap:4px;}
.emr-sub li{position:relative; padding-right:14px; font-size:11.8px; color:var(--ink-600); line-height:1.85;}
.emr-sub li::before{content:""; position:absolute; right:2px; top:9px; width:5px; height:5px; border-radius:50%; background:var(--steel-300);}
.emr-actgrid{display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:18px;}
.emr-actgrid h5{font-size:12px; font-weight:800; color:var(--gold-700); margin-bottom:8px;}

.emr-lines{padding:16px 18px;}
.emr-line-head{display:flex; flex-wrap:wrap; align-items:center; justify-content:space-between; gap:10px; margin-bottom:14px;}
.emr-lines-nav{display:flex; flex-wrap:wrap; gap:6px;}
.emr-line{all:unset; box-sizing:border-box; cursor:pointer; font-size:12px; font-weight:700; padding:6px 13px; border-radius:20px; border:1px solid var(--line); background:var(--card); color:var(--ink-600); white-space:nowrap;}
.emr-line.active{background:var(--graphite-900); border-color:var(--graphite-900); color:#fff;}
.emr-period{font-size:11.6px; font-weight:800; color:var(--gold-700); background:var(--gold-050); border:1px solid #F1DCAE; padding:5px 12px; border-radius:20px; white-space:nowrap;}
.emr-line-body{display:grid; grid-template-columns:minmax(0,1.7fr) minmax(0,1fr); gap:18px; align-items:start;}
.emr-figure{margin:0; background:#fff; border:1px solid var(--line); border-radius:var(--radius-sm); padding:10px; min-width:0;}
.emr-figure img{display:block; width:100%; height:auto;}
.emr-figure figcaption{display:flex; flex-wrap:wrap; gap:6px 16px; justify-content:center; padding-top:8px; margin-top:8px; border-top:1px solid var(--line); font-size:11px; color:var(--ink-600);}
.emr-key{display:inline-flex; align-items:center; gap:6px;}
.emr-key bdi{direction:ltr; unicode-bidi:isolate; font-weight:700;}
.emr-key i{display:inline-block; width:16px; height:3px; border-radius:2px;}
.emr-key i.k1{background:#4472C4;} .emr-key i.k2{background:#C0504D;} .emr-key i.k3{background:#9BBB59;} .emr-key i.k4{background:#8064A2;}
.emr-noimg{padding:40px; text-align:center; color:var(--ink-400);}
.emr-line-text h4{font-size:13.4px; font-weight:800; color:var(--graphite-950); margin-bottom:8px;}
.emr-line-text p{font-size:12.5px; line-height:2.05; color:var(--ink-900);}
.emr-line-text p.emr-method{margin-top:12px; padding-top:10px; border-top:1px dashed var(--line); font-size:11.6px; color:var(--ink-600); line-height:1.95;}

.emr-note{margin-top:16px; padding:14px 18px; border-inline-start:3px solid var(--gold-500);}
.emr-note b{display:block; font-size:12.8px; font-weight:800; color:var(--graphite-950); margin-bottom:4px;}
.emr-note p{font-size:12.5px; line-height:2; color:var(--ink-900);}
table.emr-risk{min-width:640px;}
table.emr-risk tbody td{text-align:right; line-height:1.9;}
table.emr-risk tbody td:first-child{text-align:center; width:56px;}
.emr-impact{display:inline-flex; align-items:center; gap:8px; justify-content:flex-end;}
.emr-impact b{font-size:14px; font-weight:900; color:var(--graphite-950); min-width:14px; text-align:center;}
.emr-impact .bar{width:70px; height:7px; border-radius:4px; background:var(--paper); border:1px solid var(--line); overflow:hidden; display:inline-block;}
.emr-impact .bar i{display:block; height:100%; background:var(--gold-500); margin-inline-start:0;}
.emr-impact.i5 .bar i, .emr-impact.i4 .bar i{background:#C97B73;}
.emr-concl{padding:16px 20px;}
.emr-list{list-style:none; display:flex; flex-direction:column; gap:10px;}
.emr-list li{position:relative; padding-right:18px; font-size:12.6px; line-height:2; color:var(--ink-900);}
.emr-list li::before{content:""; position:absolute; right:0; top:10px; width:7px; height:7px; border-radius:2px; background:var(--gold-600);}

@media(max-width:1100px){
  .emr-g11, .emr-g21, .emr-line-body{grid-template-columns:minmax(0,1fr);}
}
@media(max-width:700px){
  .emr-acts, .emr-actgrid{grid-template-columns:minmax(0,1fr);}
  .emr-domain{padding:8px 14px; font-size:12.4px;}
  .emr-delta-main{font-size:24px;}
  .chart-box.emr-chart.tall{height:300px;}
}
.porg-total{display:flex; align-items:center; justify-content:space-between; gap:12px; flex-wrap:wrap; background:var(--card); border:1px solid var(--line); border-inline-start:3px solid var(--gold-500); border-radius:var(--radius-sm); padding:10px 16px; margin-bottom:14px; font-size:12.4px;}
.porg-total span{color:var(--ink-600); font-weight:700;}
.porg-total b{font-size:15px; font-weight:900; color:var(--graphite-950);}

/* ======================================
   v0.8.5 — ACCOUNTING: جدول تک‌ستونی صورت وضعیت مالی
====================================== */
table.acc-table.acc-single{min-width:0; width:100%; max-width:820px; margin-inline:auto;}
table.acc-table.acc-single thead th.acc-desc{min-width:0;}
table.acc-table.acc-single thead th:last-child, table.acc-table.acc-single tbody td.num{width:230px; text-align:center;}

/* ======================================
   v0.8.5 — COMPANY FINANCIAL STATEMENTS (cfin-)
====================================== */
.cfin{min-width:0;}
.cfin .grid > *{min-width:0;}
.cfin-head{display:flex; flex-wrap:wrap; align-items:stretch; justify-content:space-between; gap:14px 22px; background:var(--card); border:1px solid var(--line); border-radius:var(--radius); padding:18px 22px; box-shadow:var(--shadow); border-top:3px solid var(--gold-500); margin-bottom:14px;}
.cfin-head-main{flex:1 1 420px; min-width:0;}
.cfin-eyebrow{display:inline-block; font-size:11px; font-weight:800; color:var(--gold-700); background:var(--gold-050); border:1px solid #F1DCAE; padding:2px 10px; border-radius:20px;}
.cfin-head h3{font-size:17px; font-weight:900; color:var(--graphite-950); margin:8px 0 2px; line-height:1.7;}
.cfin-head h3 small{font-size:12px; font-weight:600; color:var(--ink-400);}
.cfin-head p{font-size:12.4px; color:var(--ink-600); line-height:1.9;}
.cfin-meta{display:flex; flex-wrap:wrap; gap:6px 8px; margin-top:10px;}
.cfin-meta > span{font-size:11.4px; color:var(--ink-600); background:var(--paper); border:1px solid var(--line); padding:3px 10px; border-radius:20px; white-space:nowrap;}
.cfin-meta b{color:var(--graphite-950); font-weight:800;}
.cfin-verdict{flex:0 1 260px; display:flex; flex-direction:column; justify-content:center; gap:4px; border-radius:var(--radius-sm); padding:12px 16px; border:1px solid;}
.cfin-verdict.u{background:#EEF8F1; border-color:#C9E6D4;}
.cfin-verdict.q{background:#FDF4E6; border-color:#EFCF93;}
.cfin-verdict-k{font-size:11px; font-weight:700; color:var(--ink-600);}
.cfin-verdict b{font-size:15px; font-weight:900;}
.cfin-verdict.u b{color:var(--green);}
.cfin-verdict.q b{color:#9A5B0C;}
.cfin-verdict-f{font-size:11.4px; color:var(--ink-600); line-height:1.7;}

.cfin-nav{display:flex; flex-wrap:wrap; gap:8px; margin:4px 0 18px;}
.cfin-pill{all:unset; box-sizing:border-box; cursor:pointer; display:inline-flex; align-items:center; gap:7px; font-size:12.4px; font-weight:800; padding:8px 18px; border-radius:20px; border:1px solid var(--line); background:var(--card); color:var(--ink-600);}
.cfin-pill:hover{color:var(--graphite-950); border-color:#D5DCE4;}
.cfin-pill.active{background:var(--graphite-900); border-color:var(--graphite-900); color:#fff;}
.cfin-dot{display:inline-block; width:7px; height:7px; border-radius:50%; background:#D99A2B;}
.cfin-pill:focus-visible, .cfin-spill:focus-visible, .cfin-sw:focus-visible{outline:2px solid var(--gold-500); outline-offset:2px;}
.cfin-view{display:none;}
.cfin-view.active{display:block;}

.cfin-kpi{container-type:inline-size; padding:16px 18px;}
.cfin-kpi .kpi-value{font-size:clamp(15px, 9.2cqi, 23px); margin:8px 0 3px; display:flex; flex-wrap:wrap; align-items:baseline; gap:2px 6px;}
.cfin-kpi .kpi-sub{line-height:1.9; display:flex; flex-wrap:wrap; gap:0 6px; align-items:baseline;}
.cfin-kpi .kpi-sub b{color:var(--graphite-950); font-weight:800;}
.cfin-kpi.feature{background:var(--graphite-900); border-color:var(--graphite-900);}
.cfin-kpi.feature .kpi-label{color:#AEB9C6;}
.cfin-kpi.feature .kpi-value{color:var(--gold-500);}
.cfin-kpi.feature .acc-unit, .cfin-kpi.feature .acc-muted, .cfin-kpi.feature .kpi-sub{color:#9AA8B8;}
.cfin-kpi.feature .kpi-sub b{color:#fff;}
.cfin-kpi.feature .acc-num.neg{color:#F08A82;}
.cfin .acc-ratio-row.cfin-ratio-row{grid-template-columns:repeat(auto-fit, minmax(150px, 1fr));}

.cfin-stmt-nav{display:flex; flex-wrap:wrap; gap:6px; margin-bottom:14px; padding:6px; background:var(--card); border:1px solid var(--line); border-radius:12px;}
.cfin-spill{all:unset; box-sizing:border-box; cursor:pointer; font-size:12px; font-weight:700; padding:7px 14px; border-radius:9px; color:var(--ink-600); white-space:nowrap;}
.cfin-spill:hover{background:var(--paper); color:var(--graphite-950);}
.cfin-spill.active{background:var(--gold-500); color:#241b06;}
.cfin-stmt-pane{display:none;}
.cfin-stmt-pane.active{display:block;}
table.cfin-table thead th.cfin-cur{background:var(--graphite-950); box-shadow:inset 0 -3px 0 var(--gold-500);}
table.cfin-table tbody td.cfin-cur{background:rgba(217,166,46,0.06); font-weight:700;}
table.cfin-table tbody tr.acc-grand td.cfin-cur, table.cfin-table tbody tr.pl-emph td.cfin-cur{background:rgba(217,166,46,0.13);}
.cfin-foot{font-size:11.4px; color:var(--ink-400); line-height:1.9; margin-top:10px;}

.cfin-aud-head.u{border-top:3px solid var(--green);}
.cfin-aud-head.q{border-top:3px solid #D99A2B;}
.cfin-conc{margin-top:12px; background:var(--paper); border:1px solid var(--line); border-radius:var(--radius-sm); padding:10px 14px;}
.cfin-aud-head.q .cfin-conc{background:#FDF6E9; border-color:#F1DCAE;}
.cfin-conc b{display:block; font-size:12.4px; font-weight:800; color:var(--graphite-950); margin-bottom:2px;}
.cfin-conc p{font-size:12.4px !important; color:var(--ink-900) !important;}
.cfin-basis-item{border-inline-start:3px solid #D99A2B;}
.cfin-fig-ttl{font-size:11.2px; font-weight:800; color:var(--ink-600); margin-top:12px;}
.cfin-fig-ttl + .acc-figs{margin-top:6px;}
.cfin-emph-grid{grid-template-columns:repeat(auto-fit, minmax(260px, 1fr));}

.cfin-switch{display:flex; flex-wrap:wrap; gap:10px; margin-bottom:16px;}
.cfin-sw{all:unset; box-sizing:border-box; cursor:pointer; flex:1 1 260px; display:flex; flex-direction:column; gap:2px; padding:11px 16px; border-radius:var(--radius-sm); border:1px solid var(--line); background:var(--card); box-shadow:0 1px 4px rgba(30,37,48,0.04);}
.cfin-sw b{font-size:13px; font-weight:800; color:var(--graphite-900);}
.cfin-sw small{font-size:11.2px; color:var(--ink-400); font-weight:600;}
.cfin-sw:hover{border-color:#D5DCE4;}
.cfin-sw.active{background:var(--graphite-900); border-color:var(--graphite-900);}
.cfin-sw.active b{color:var(--gold-500);}
.cfin-sw.active small{color:#AEB9C6;}
.cfin-sw-pane{display:none;}
.cfin-sw-pane.active{display:block;}

@media(max-width:700px){
  .cfin-head{padding:14px 16px;}
  .cfin-head h3{font-size:15px;}
  .cfin-verdict{flex:1 1 100%;}
  .cfin-stmt-nav{flex-wrap:nowrap; overflow-x:auto;}
}
@media print{
  .cfin-view, .cfin-stmt-pane, .cfin-sw-pane{display:block !important;}
  .cfin-nav, .cfin-stmt-nav, .cfin-switch{display:none;}
}

/* ======================================
   v0.9.0 — صفحات تجمیعی (سرمایه‌گذاری / خرید و فروش / نیروگاه‌ها)
   نوار زیرتب همان الگوی .subtabs / .subtab-btn موجود است؛ فقط رفتار موبایل (اسکرول افقی) محدود به .hub-tabs است.
====================================== */
.hub-tabs{margin-bottom:22px;}
.hub-tabs .subtab-btn{white-space:nowrap;}
.hub-tabs .subtab-btn:focus-visible{outline:2px solid var(--gold-500); outline-offset:-2px; border-radius:6px 6px 0 0;}
.hub-page > .hub-member{animation:none;}
@media(max-width:760px){
  .hub-tabs{flex-wrap:nowrap; overflow-x:auto; overflow-y:hidden; gap:2px; scrollbar-width:thin; -webkit-overflow-scrolling:touch;}
  .hub-tabs .subtab-btn{padding:10px 13px; font-size:12.4px;}
}

/* ======================================
   v0.9.0 — سرمایه‌گذاری: همه سرستون‌ها و سلول‌های جداول راست‌چین
   فقط جداول .inv-table (هر هشت زیرتب)؛ جهت خود عدد با .inv-val (direction:ltr + isolate) حفظ می‌شود
   تا علامت منفی، جداکننده هزارگان و اعشار در جای درست بمانند.
====================================== */
table.inv-table thead th, table.inv-table thead th.num,
table.inv-table tbody td, table.inv-table tbody td.num,
table.inv-table tbody tr.total-row td, table.inv-table tr.inv-group-row td{text-align:right;}
table.inv-table .inv-val{text-align:right;}

/* ======================================
   v0.9.0 — منابع انسانی: ماتریس توجه مدیریتی بدون اسکرول افقی در دسکتاپ
   هر یازده ستون حفظ شده‌اند؛ عرض ستون‌ها متوازن و شکست خط سرستون‌ها کنترل‌شده است.
====================================== */
table.hrd-matrix{min-width:0; width:100%; table-layout:fixed;}
table.hrd-matrix thead th{white-space:normal; line-height:1.45; padding:9px 5px; font-size:11.2px; vertical-align:middle;}
table.hrd-matrix tbody td{white-space:normal; padding:8px 5px; font-size:12px; vertical-align:middle;}
table.hrd-matrix tbody td.num{white-space:nowrap;}
table.hrd-matrix tbody td.label-cell{line-height:1.6;}
table.hrd-matrix th:nth-child(1){width:15%;}
table.hrd-matrix th:nth-child(2){width:6.5%;}
table.hrd-matrix th:nth-child(3){width:7.5%;}
table.hrd-matrix th:nth-child(4){width:7.5%;}
table.hrd-matrix th:nth-child(5){width:6%;}
table.hrd-matrix th:nth-child(6), table.hrd-matrix th:nth-child(7), table.hrd-matrix th:nth-child(8), table.hrd-matrix th:nth-child(9){width:8.5%;}
table.hrd-matrix th:nth-child(10){width:11%;}
table.hrd-matrix th:nth-child(11){width:12.5%;}
table.hrd-matrix .hrd-muted{font-size:11px;}
table.hrd-matrix .hrd-dqtag{margin:2px 0 2px 3px;}
table.hrd-matrix .hrd-badge{font-size:10.8px; padding:3px 8px;}
@media(max-width:1180px){ table.hrd-matrix{min-width:900px;} }

/* ======================================
   v0.9.0 — Drawer جزئیات پروژه منابع انسانی (از سمت چپ)
====================================== */
html.hrd-drawer-lock, html.hrd-drawer-lock body{overflow:hidden;}
.hrd-drawer-root{position:fixed; inset:0; z-index:60; pointer-events:none;}
.hrd-drawer-scrim{position:absolute; inset:0; background:rgba(14,18,24,.46); opacity:0; transition:opacity .22s ease;}
.hrd-drawer{position:absolute; top:0; bottom:0; left:0; width:min(460px, 100vw); background:var(--card); box-shadow:12px 0 40px rgba(14,18,24,.22);
  display:flex; flex-direction:column; transform:translateX(-102%); transition:transform .26s cubic-bezier(.2,.7,.2,1); outline:none; direction:rtl;}
.hrd-drawer-root.open{pointer-events:auto;}
.hrd-drawer-root.open .hrd-drawer-scrim{opacity:1;}
.hrd-drawer-root.open .hrd-drawer{transform:translateX(0);}
.hrd-drawer-head{display:flex; align-items:flex-start; justify-content:space-between; gap:12px; padding:18px 20px 16px; background:var(--graphite-950); color:#fff; border-bottom:3px solid var(--gold-500);}
.hrd-drawer-eyebrow{display:block; font-size:10.8px; font-weight:700; color:var(--gold-500); letter-spacing:.2px; margin-bottom:3px;}
.hrd-drawer-head h3{margin:0; font-size:17px; font-weight:800; line-height:1.5;}
.hrd-drawer-sub{display:flex; align-items:center; flex-wrap:wrap; gap:8px; margin-top:7px; font-size:11.8px; color:#C9D2DC;}
.hrd-drawer-close{all:unset; box-sizing:border-box; cursor:pointer; width:34px; height:34px; flex:0 0 34px; border-radius:9px; display:flex; align-items:center; justify-content:center; background:rgba(255,255,255,.08); color:#fff;}
.hrd-drawer-close:hover{background:rgba(255,255,255,.16);}
.hrd-drawer-close:focus-visible{outline:2px solid var(--gold-500); outline-offset:2px;}
.hrd-drawer-close svg{width:16px; height:16px; fill:none; stroke:currentColor; stroke-width:2.2; stroke-linecap:round;}
.hrd-drawer-body{flex:1; overflow-y:auto; padding:16px 18px 26px; background:var(--paper); overscroll-behavior:contain;}
.hrd-drawer-stats{display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:8px;}
.hrd-drawer-stat{background:var(--card); border:1px solid var(--line); border-radius:10px; padding:9px 10px; display:flex; flex-direction:column; gap:2px; min-width:0;}
.hrd-drawer-stat > span{font-size:10.9px; font-weight:700; color:var(--ink-600);}
.hrd-drawer-stat > b{font-size:18px; font-weight:900; color:var(--graphite-950); line-height:1.4;}
.hrd-drawer-stat > small{font-size:10.2px; color:var(--ink-400); line-height:1.5;}
.hrd-drawer-stat.neg{border-color:#EAD6BD; background:#FCF6EE;} .hrd-drawer-stat.neg > b{color:#8A5A12;}
.hrd-drawer-stat.pos > b{color:var(--steel-500);}
.hrd-drawer-stat.ok > b{color:var(--green);}
.hrd-drawer-stat.rev > b{color:var(--gold-700);}
.hrd-drawer-sec{margin-top:14px; background:var(--card); border:1px solid var(--line); border-radius:12px; padding:12px 14px;}
.hrd-drawer-sec h4{margin:0 0 10px; font-size:12.6px; font-weight:800; color:var(--graphite-950); display:flex; align-items:center; gap:7px;}
.hrd-drawer-sec h4::before{content:""; width:4px; height:14px; border-radius:2px; background:var(--gold-500);}
.hrd-drawer-bars{display:flex; flex-direction:column; gap:9px;}
.hrd-drawer-bar-top{display:flex; justify-content:space-between; gap:10px; font-size:11.8px; margin-bottom:4px;}
.hrd-drawer-bar-top span{color:var(--ink-900); font-weight:600; min-width:0;}
.hrd-drawer-bar-top b{font-weight:800; white-space:nowrap; color:var(--graphite-950);}
.hrd-drawer-track{height:7px; border-radius:6px; background:#EEF1F5; overflow:hidden;}
.hrd-drawer-track i{display:block; height:100%; border-radius:6px; background:var(--graphite-800); margin-left:auto; margin-right:0;}
.hrd-drawer-track i.edu{background:var(--gold-500);}
.hrd-drawer-kv{display:grid; grid-template-columns:auto minmax(0,1fr); gap:7px 12px; margin:0; font-size:11.8px; align-items:center;}
.hrd-drawer-kv dt{color:var(--ink-600); font-weight:600;}
.hrd-drawer-kv dd{margin:0; color:var(--ink-900); font-weight:700;}
.hrd-drawer-comp{display:flex; flex-wrap:wrap; gap:4px;}
.hrd-drawer-comp .hrd-badge{font-size:10.6px; padding:2px 8px;}
.hrd-drawer-rule p{margin:0 0 8px; font-size:11.9px; line-height:1.9; color:var(--ink-900);}
.hrd-drawer-rule ul{margin:0 0 8px; padding-inline-start:18px; font-size:11.8px; line-height:1.9;}
.hrd-drawer-vac{list-style:none; margin:0; padding:0; display:flex; flex-direction:column; gap:7px;}
.hrd-drawer-vac li{display:flex; flex-direction:column; gap:1px; padding:7px 10px; border-radius:8px; background:#FCF6EE; border:1px solid #EFE2CD;}
.hrd-drawer-vac b{font-size:12px; color:var(--graphite-950);}
.hrd-drawer-vac span{font-size:11px; color:var(--ink-600);}
.hrd-drawer-empty{margin:0; font-size:11.6px; color:var(--ink-400);}
@media(max-width:520px){
  .hrd-drawer-stats{grid-template-columns:repeat(2,minmax(0,1fr));}
  .hrd-drawer-head{padding:14px 14px 12px;}
  .hrd-drawer-body{padding:12px 12px 22px;}
}
@media (prefers-reduced-motion: reduce){ .hrd-drawer, .hrd-drawer-scrim{transition:none;} }
@media print{ .hrd-drawer-root{display:none !important;} }

/* ======================================
   v0.9.0 — گزارش ماهانه آب‌شناسی: شش ماه، انتخابگر ماه بالای نمودارها
====================================== */
.emr-monthbar.emr-monthbar-top{margin:18px 0 6px; display:flex; align-items:center; flex-wrap:wrap; gap:10px 14px; border-color:#E9DDBF; background:var(--gold-050);}
.emr-monthbar-lbl{font-size:11.8px; font-weight:800; color:var(--ink-600); white-space:nowrap;}
.emr-monthbar-top .emr-months{flex:1 1 auto;}
.emr-muted{color:var(--ink-400); font-weight:600; font-size:11.4px;}
table.emr-trend-table tbody td{white-space:nowrap;}
table.emr-static-multi{min-width:760px;}
table.emr-static-multi thead th small{display:block; font-size:10px; font-weight:600; opacity:.8;}
table.emr-static-multi.emr-col-2 tbody td:nth-child(2), table.emr-static-multi.emr-col-3 tbody td:nth-child(3),
table.emr-static-multi.emr-col-4 tbody td:nth-child(4), table.emr-static-multi.emr-col-5 tbody td:nth-child(5),
table.emr-static-multi.emr-col-6 tbody td:nth-child(6), table.emr-static-multi.emr-col-7 tbody td:nth-child(7),
table.emr-static-multi.emr-col-8 tbody td:nth-child(8), table.emr-static-multi.emr-col-9 tbody td:nth-child(9){background:rgba(217,166,46,0.10); font-weight:800;}
table.emr-static-multi tbody td:last-child{background:#F3F5F8; font-weight:800;}
.emr-note{margin:8px 2px 0; font-size:11.4px; color:var(--ink-600); line-height:1.9;}
.emr-notes{margin-top:16px; border-right:3px solid var(--gold-500);}
.emr-notes-list{list-style:none; margin:0; padding:0; display:flex; flex-direction:column; gap:8px;}
.emr-notes-list li{position:relative; padding-right:16px; font-size:12px; line-height:1.95; color:var(--ink-900);}
.emr-notes-list li::before{content:"!"; position:absolute; right:0; top:2px; font-size:10px; font-weight:900; color:var(--gold-700);}

/* ======================================
   v0.9.0 — ناپکو › پروژه فروآلیاژ بهاباد (گزارش ۵۴) — پیشوند np54
====================================== */
.np54-head{margin-bottom:14px;}
.np54-verdict b .np54-num{color:inherit;}
.np54-nav{display:flex; flex-wrap:wrap; gap:6px; margin:2px 0 18px;}
.np54-pill{all:unset; box-sizing:border-box; cursor:pointer; font-size:11.9px; font-weight:800; padding:7px 12px; border-radius:20px; border:1px solid var(--line); background:var(--card); color:var(--ink-600); white-space:nowrap;}
.np54-pill:hover{color:var(--graphite-950); border-color:#D5DCE4;}
.np54-pill.active{background:var(--graphite-900); border-color:var(--graphite-900); color:#fff;}
.np54-pill:focus-visible, .np54-seg:focus-visible{outline:2px solid var(--gold-500); outline-offset:2px;}
.np54-pane{display:none;}
.np54-pane.active{display:block; animation:fade .3s ease;}
.np54-g21{grid-template-columns:minmax(0,1.55fr) minmax(0,1fr);}
.np54-g11{grid-template-columns:minmax(0,1fr) minmax(0,1fr);}
.np54-stack{display:flex; flex-direction:column; gap:16px; min-width:0;}
.np54-card{min-width:0;}
.np54-card .card-title{flex-wrap:wrap;}
.np54-kpis .kpi-card .kpi-value{font-size:23px;}
.np54-kpi.feature{background:var(--graphite-950); border-color:var(--graphite-950);}
.np54-kpi.feature .kpi-label{color:#C9D2DC;} .np54-kpi.feature .kpi-value{color:var(--gold-500);} .np54-kpi.feature .kpi-sub{color:#A7B4C2;}
.np54-kpi.neg .kpi-value{color:#B23B33;}
.np54-num{direction:ltr; unicode-bidi:isolate; display:inline-block; font-weight:inherit;}
.np54-num.neg{color:#B23B33;} .np54-num.pos{color:var(--green);}
.np54-lat{direction:ltr; unicode-bidi:isolate; font-size:.94em; color:var(--steel-500);}
.np54-lat.sm{font-size:10.6px;}
.np54-fa{display:block; font-weight:700; color:var(--graphite-950);}
.np54-fa + .np54-lat{display:block; font-size:10.6px; margin-top:1px;}
.np54-muted{color:var(--ink-400); font-weight:600;}
.np54-notice{background:var(--gold-050); border:1px solid #EFE2CD; border-radius:var(--radius-sm); padding:10px 14px; font-size:12px; line-height:1.95; color:var(--ink-900); margin-bottom:16px;}
.np54-foot{margin:10px 2px 0; font-size:11.3px; color:var(--ink-600); line-height:1.95;}
.np54-note{margin:10px 0 0; padding:8px 12px; border-radius:8px; background:#F3F5F8; border-right:3px solid var(--steel-500); font-size:11.6px; line-height:1.9; color:var(--ink-900);}
.np54-p{font-size:12.6px; line-height:2.05; color:var(--ink-900); margin:0 0 10px;}
.np54-h5{margin:12px 0 6px; font-size:12.2px; font-weight:800; color:var(--graphite-900);}
.np54-h5:first-child{margin-top:0;}
.np54-list{list-style:none; margin:0; padding:0; display:flex; flex-direction:column; gap:8px;}
.np54-list li{position:relative; padding-right:16px; font-size:12.4px; line-height:1.95; color:var(--ink-900);}
.np54-list li::before{content:""; position:absolute; right:0; top:10px; width:7px; height:7px; border-radius:2px; background:var(--gold-600);}
.np54-list.warn li::before{background:#B23B33;}
.np54-list.small li{font-size:11.6px;}
.np54-list.small{margin-top:12px;}
.np54-chart{height:300px;}
.np54-chart.tall{height:340px;}
.np54-pbars{display:flex; flex-direction:column; gap:14px;}
.np54-pbar-top{display:flex; justify-content:space-between; align-items:baseline; gap:10px; font-size:12.2px; font-weight:700; color:var(--graphite-950); margin-bottom:6px;}
.np54-pbar-top small{font-size:11px; color:var(--ink-400); font-weight:600;}
.np54-w{font-size:10.6px; color:var(--ink-400); font-weight:600; margin-right:4px;}
.np54-pbar-track{position:relative; height:12px; border-radius:7px; background:#EEF1F5; overflow:hidden;}
.np54-pbar-track i{position:absolute; top:0; bottom:0; right:0; border-radius:7px;}
.np54-pbar-track i.plan{background:#C9D2DC;}
.np54-pbar-track i.act{background:var(--gold-500); top:3px; bottom:3px;}
.np54-legend{display:flex; flex-wrap:wrap; gap:6px 14px; font-size:11px; color:var(--ink-600); margin-top:4px; align-items:center;}
.np54-legend i{display:inline-block; width:10px; height:10px; border-radius:3px; margin-left:5px; vertical-align:-1px;}
.np54-legend i.act{background:var(--gold-500);} .np54-legend i.plan{background:#C9D2DC;}
.np54-legend i.contract{background:var(--graphite-800);} .np54-legend i.ext{background:var(--steel-500);} .np54-legend i.replan{background:#A7B4C2;} .np54-legend i.forecast{background:var(--gold-500);}
.np54-weights{display:flex; flex-direction:column; gap:9px;}
.np54-wrow{display:grid; grid-template-columns:minmax(0,1.1fr) minmax(0,1fr) auto; gap:10px; align-items:center; font-size:12px;}
.np54-wrow span{color:var(--ink-900); font-weight:600;}
.np54-wrow b{font-weight:800; color:var(--graphite-950); white-space:nowrap; min-width:56px; text-align:left;}
.np54-wtrack{height:8px; background:#EEF1F5; border-radius:5px; overflow:hidden;}
.np54-wtrack i{display:block; height:100%; background:var(--graphite-800); border-radius:5px; margin-left:auto; margin-right:0;}
.np54-segs{display:inline-flex; gap:4px; flex-wrap:wrap;}
.np54-seg{all:unset; box-sizing:border-box; cursor:pointer; font-size:11.2px; font-weight:800; padding:4px 11px; border-radius:16px; border:1px solid var(--line); color:var(--ink-600); background:var(--paper);}
.np54-seg.active{background:var(--gold-500); border-color:var(--gold-500); color:#241b06;}
/* جداول ماژول: عدد با .np54-num ایزوله است؛ تراز ستون‌ها مستقل از سایر ماژول‌ها */
table.np54-table{font-size:12px;}
table.np54-table thead th{white-space:normal; line-height:1.5; vertical-align:middle;}
table.np54-table thead th small{display:block; font-size:10px; font-weight:600; opacity:.82;}
table.np54-table tbody td{vertical-align:middle;}
table.np54-table tbody td.num{white-space:nowrap;}
table.np54-table tbody td.label-cell{min-width:170px;}
table.np54-prog{min-width:720px;}
table.np54-prog tr.np54-head-row td{background:var(--gold-050); font-weight:800;}
table.np54-wbs{min-width:1060px; font-size:11.6px;}
table.np54-wbs tbody td{padding:6px 7px;}
table.np54-wbs tbody td:nth-child(2){text-align:right; min-width:220px;}
table.np54-wbs tr.np54-l0 td{background:var(--graphite-900) !important; color:#fff; font-weight:800;}
table.np54-wbs tr.np54-l0 td .np54-lat, table.np54-wbs tr.np54-l0 td .np54-fa{color:#fff;}
table.np54-wbs tr.np54-l0 td .np54-num.neg{color:#FFB4A9;}
table.np54-wbs tr.np54-l1 td{background:#EEF1F5 !important; font-weight:800;}
table.np54-wbs tr.np54-l2 td:nth-child(2){padding-right:22px;}
table.np54-wbs tr.np54-l3 td:nth-child(2){padding-right:38px; font-weight:500;}
table.np54-wbs tr.np54-l3 .np54-fa{font-weight:600;}
table.np54-docs{min-width:820px;}
table.np54-ovd{min-width:1120px; font-size:11.4px;}
table.np54-ovd tbody td{text-align:right;}
table.np54-ovd tbody td:first-child{text-align:center;}
table.np54-qty{min-width:700px;}
table.np54-qty tbody td:nth-child(2){text-align:right;}
table.np54-qty tr.np54-active td{background:var(--gold-050) !important;}
.np54-up{color:var(--green);}
table.np54-man tbody td:nth-child(2), table.np54-table tbody td:nth-child(2){text-align:right;}
table.np54-events tbody td:nth-child(2){text-align:right;}
table.np54-pay{min-width:980px;}
table.np54-pay tr.np54-dup td{opacity:.55;}
table.np54-table tr.np54-flag td{background:#FCF6EE !important;}
.np54-flagtag{color:#B23B33; font-weight:900; cursor:help;}
table.np54-recon{min-width:640px;}
.np54-recon-box{margin-top:16px; background:var(--card); border:1px solid var(--line); border-radius:var(--radius); padding:12px 16px;}
.np54-recon-box summary, .np54-more summary{cursor:pointer; font-size:12.6px; font-weight:800; color:var(--graphite-950); padding:4px 0;}
.np54-recon-box[open] summary{margin-bottom:12px;}
.np54-more{background:var(--card); border:1px solid var(--line); border-radius:var(--radius); padding:12px 16px;}
.np54-more[open] summary{margin-bottom:12px;}
.np54-spec td.v{line-height:1.9;}
.np54-tl{list-style:none; margin:0; padding:0 18px 0 0; position:relative; display:flex; flex-direction:column; gap:10px;}
.np54-tl::before{content:""; position:absolute; right:5px; top:6px; bottom:6px; width:2px; background:var(--line);}
.np54-tl li{position:relative; display:flex; gap:12px; align-items:baseline; font-size:12.2px;}
.np54-tl li::before{content:""; position:absolute; right:-18px; top:6px; width:10px; height:10px; border-radius:50%; background:var(--graphite-800); border:2px solid #fff; box-shadow:0 0 0 1px var(--line);}
.np54-tl li.ext::before{background:var(--steel-500);} .np54-tl li.replan::before{background:#A7B4C2;}
.np54-tl li.forecast::before{background:var(--gold-500);}
.np54-tl li.last .np54-tl-lbl, .np54-tl li.forecast .np54-tl-lbl{font-weight:800;}
.np54-tl li.forecast .np54-tl-lbl{color:var(--gold-700);}
.np54-tl-date{font-weight:800; color:var(--graphite-950); min-width:78px;}
.np54-tl-lbl{color:var(--ink-900); line-height:1.8;}
.np54-org{margin:0; overflow-x:auto; text-align:center; background:#fff; border:1px solid var(--line); border-radius:10px; padding:10px;}
.np54-org img{max-width:100%; min-width:620px; height:auto; image-rendering:auto;}
.np54-issues{display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:16px;}
.np54-issue{border-top:3px solid #B23B33;}
.np54-issue-head{display:flex; align-items:center; gap:10px; margin-bottom:10px;}
.np54-issue-head h4{margin:0; font-size:13.4px; font-weight:800; color:var(--graphite-950);}
.np54-issue-no{width:26px; height:26px; flex:0 0 26px; border-radius:50%; background:#FBEAE9; color:#B23B33; font-weight:900; font-size:12px; display:flex; align-items:center; justify-content:center;}
.np54-issue dl{margin:0; display:flex; flex-direction:column; gap:4px;}
.np54-issue dt{font-size:11px; font-weight:800; color:var(--ink-600); margin-top:6px;}
.np54-issue dd{margin:0; font-size:12.2px; line-height:1.95; color:var(--ink-900);}
.np54-photos{display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:14px;}
.np54-photo{margin:0; background:var(--card); border:1px solid var(--line); border-radius:12px; overflow:hidden;}
.np54-photo img{display:block; width:100%; aspect-ratio:16/10; object-fit:cover; background:#EEF1F5;}
.np54-photo figcaption{padding:9px 12px; font-size:12px; font-weight:700; color:var(--graphite-950); display:flex; flex-direction:column; gap:2px;}
.np54-photo figcaption .np54-lat{font-size:10.6px; font-weight:600;}
@media(max-width:1100px){
  .np54-g21, .np54-g11, .np54-issues{grid-template-columns:minmax(0,1fr);}
  .np54-photos{grid-template-columns:repeat(2,minmax(0,1fr));}
}
@media(max-width:600px){
  .np54-photos{grid-template-columns:minmax(0,1fr);}
  .np54-nav{flex-wrap:nowrap; overflow-x:auto; padding-bottom:4px;}
  .np54-chart.tall{height:300px;}
  .np54-wrow{grid-template-columns:minmax(0,1fr) auto; }
  .np54-wrow .np54-wtrack{grid-column:1 / -1; grid-row:2;}
}
@media print{ .np54-pane{display:block !important;} .np54-nav{display:none;} }

/* v0.9.0 — QA: جلوگیری از سرریز افقی صفحه در زیرتب‌های نیروگاه (کارت‌های دارای جدول عریض داخل grid)
   جدول‌ها همچنان درون .table-wrap خود اسکرول افقی کنترل‌شده دارند؛ محتوا تغییر نکرده است. */
#page-energy-plants .grid > *, #page-commerce-trade .grid > *{min-width:0;}

/* v0.9.0 — برچسب‌های بلند کارت‌ها در موبایل شکسته شوند (فقط ماژول‌های آب‌شناسی و گزارش ۵۴) */
.emr .card-title, .np54 .card-title{flex-wrap:wrap;}
.emr .card-title .tag, .np54 .card-title .tag{white-space:normal; line-height:1.7;}

.np54-head .cfin-meta > span{white-space:normal;}
/*__V090_CSS_END__*/

/* ابزارهای سامانه — همان زبان بصری گزارش، بدون تغییر صفحات داده */

.topbar-tools{
  display:flex; align-items:center; gap:8px; flex:0 0 auto; flex-wrap:nowrap; justify-content:flex-end;
}
.tb-select, .tb-btn, .tb-link{
  font-family:inherit; font-size:12px; line-height:1.4;
  background:#fff; color:var(--ink-900);
  border:1px solid var(--line); border-radius:10px;
  padding:6px 10px; text-decoration:none; cursor:pointer;
}
.tb-btn.gold, .tb-link.gold{
  background:var(--gold-500); border-color:var(--gold-600); color:#fff; font-weight:700;
}
.tb-user{font-size:12px; color:var(--ink-600); white-space:nowrap;}
.tb-note{font-size:11px; color:var(--ink-400); max-width:160px; white-space:nowrap; overflow:hidden; text-overflow:ellipsis;}

.auth-wrap{max-width:460px; margin:7vh auto;}
.auth-wrap h2{font-size:22px; margin-bottom:6px;}
.auth-wrap .lede{color:var(--ink-600); font-size:13.5px; margin-bottom:18px; line-height:1.8;}
.fld{display:flex; flex-direction:column; gap:6px; margin-bottom:14px; font-size:13px; font-weight:600;}
.fld input, .fld select, .fld textarea{
  font-family:inherit; font-weight:500; font-size:14px;
  border:1px solid var(--line); border-radius:10px; padding:10px 12px; background:#fff; color:var(--ink-900);
}
.fld textarea{min-height:90px; resize:vertical;}
.form-error{
  background:#FDECEC; color:#9C2B24; border-radius:10px; padding:10px 12px; margin-bottom:14px; font-size:13px;
}
.form-ok{
  background:#E8F6EE; color:#1E7A45; border-radius:10px; padding:10px 12px; margin-bottom:14px; font-size:13px;
}
.form-ok[data-flash]{transition:opacity .4s ease;}
.form-ok.flash-out{opacity:0;}
.btn-row{display:flex; gap:8px; flex-wrap:wrap; align-items:center;}
.hint{color:var(--ink-400); font-size:12px; font-weight:500; line-height:1.7;}

.grid-editor{overflow:auto; max-height:640px; border:1px solid var(--line); border-radius:12px;}
.grid-editor table{border-collapse:collapse; min-width:100%; font-size:12.5px;}
.grid-editor th, .grid-editor td{border-bottom:1px solid var(--line); padding:4px 6px; white-space:nowrap; vertical-align:middle;}
.grid-editor th{position:sticky; top:0; background:var(--gold-050); font-weight:700; z-index:1;}
.grid-editor input{
  font-family:inherit; font-size:12.5px; border:1px solid transparent; background:transparent;
  padding:4px 6px; min-width:88px; border-radius:6px; width:100%;
}
.grid-editor input:focus{border-color:var(--gold-500); background:#fff; outline:none;}
.grid-editor .row-ops{display:flex; gap:4px; align-items:center;}
.grid-editor .row-handle{
  display:inline-flex; align-items:center; justify-content:center; min-width:28px; height:28px;
  border:1px solid var(--line); border-radius:8px; background:#fff; color:var(--ink-600);
  cursor:grab; font-size:14px; letter-spacing:-1px; user-select:none;
}
.grid-editor .row-ops .tb-btn{padding:4px 8px;}
.grid-editor tr.row-dragging{opacity:.45;}
.grid-editor tr.row-drop td{box-shadow:inset 0 2px 0 var(--gold-500);}
.grid-editor tr.total-row{background:var(--gold-100);}
.grid-editor tr.total-row input{font-weight:700;}

.tool-card{margin-bottom:16px;}
.perm-table{width:100%; border-collapse:collapse; font-size:13px;}
.perm-table th, .perm-table td{border-bottom:1px solid var(--line); padding:8px 6px; text-align:right;}
.perm-table th{font-size:12px; color:var(--ink-600);}
.badge-off{color:var(--red); font-weight:700; font-size:12px;}
.badge-on{color:var(--green); font-weight:700; font-size:12px;}

.jdp{position:relative; display:flex; gap:6px; align-items:center;}
.jdp-pop{
  position:absolute; top:calc(100% + 6px); right:0; z-index:30;
  background:#fff; border:1px solid var(--line); border-radius:12px;
  box-shadow:var(--shadow); padding:10px; width:280px;
}
.jdp-head{display:flex; justify-content:space-between; align-items:center; gap:6px; margin-bottom:8px;}
.jdp-head select{font-family:inherit; border:1px solid var(--line); border-radius:8px; padding:4px 6px;}
.jdp-grid{display:grid; grid-template-columns:repeat(7, 1fr); gap:3px;}
.jdp-grid button{
  font-family:inherit; border:0; background:transparent; border-radius:8px; padding:6px 0; cursor:pointer; font-size:12px;
}
.jdp-grid button:hover, .jdp-grid button.on{background:var(--gold-500); color:#fff;}
.jdp-dow{font-size:10px; color:var(--ink-400); text-align:center; padding:2px 0;}

.filters{display:flex; flex-wrap:wrap; gap:8px; margin-bottom:14px;}
.filters input, .filters select{
  font-family:inherit; border:1px solid var(--line); border-radius:10px; padding:8px 10px; background:#fff;
}
.pair{display:grid; grid-template-columns:1fr 1fr; gap:12px;}
.file-list{font-size:13px; line-height:1.9;}
.file-list a{color:var(--gold-700); font-weight:700;}
.file-row{display:flex; gap:12px; align-items:center; justify-content:space-between; padding:8px 0; border-bottom:1px solid var(--line);}
.file-actions{display:flex; gap:8px; align-items:center; flex-wrap:wrap;}
.file-actions form{margin:0;}
.dropzone{
  margin-top:14px; border:1.5px dashed var(--gold-500); background:var(--gold-050);
  border-radius:12px; padding:16px; text-align:center;
}
.dropzone input[type=file]{font-family:inherit; font-size:13px; margin-top:8px;}

.map-table input, .map-table select{font-family:inherit; font-size:12.5px; padding:4px 6px; border:1px solid var(--line); border-radius:8px; width:100%;}

a.brand, a.nav-home, a.nav-toggle{text-decoration:none;}

@media (max-width: 820px){
  .topbar-tools{width:100%;}
  .tb-note{display:none;}
  .auth-wrap{margin-top:24px;}
  .pair{grid-template-columns:1fr;}
  .file-row{flex-direction:column; align-items:stretch;}
}

/* صفحه عدم دسترسی */
.deny-wrap{max-width:520px; margin:9vh auto; text-align:center; padding:38px 30px 30px; border-top:4px solid var(--gold-500);}
.deny-icon{width:84px; height:84px; margin:0 auto 18px; border-radius:50%; display:flex; align-items:center; justify-content:center; color:var(--gold-600); background:var(--gold-050); border:1px solid var(--gold-100); box-shadow:0 0 0 8px rgba(217,166,46,0.08);}
.deny-wrap h2{font-size:21px; color:var(--ink-900); margin-bottom:10px;}
.deny-wrap .deny-reason{display:inline-block; font-size:13px; color:var(--gold-700); background:var(--gold-050); border:1px solid var(--gold-100); border-radius:var(--radius-sm); padding:6px 12px; margin-bottom:12px;}
.deny-wrap .lede{color:var(--ink-600); font-size:13.5px; line-height:1.9; margin:0 auto 22px; max-width:400px;}
.deny-actions{display:flex; gap:10px; justify-content:center; flex-wrap:wrap;}
.deny-actions .tb-btn, .deny-actions .tb-link{min-width:120px; justify-content:center; cursor:pointer; text-decoration:none;}

/* صفحه خوش‌آمد پیش از ورود */
.splash{position:fixed; inset:0; z-index:9999; display:flex; align-items:center; justify-content:center; overflow:hidden;
  background:radial-gradient(ellipse at 50% 40%, var(--graphite-800) 0%, var(--graphite-950) 70%);
  animation:splashOut .9s ease 4.2s forwards;}
.splash-glow{position:absolute; width:520px; height:520px; border-radius:50%; filter:blur(90px); opacity:.0; animation:glowIn 2.4s ease .1s forwards;}
.splash-glow.g1{background:rgba(217,166,46,.28); top:-140px; right:-120px;}
.splash-glow.g2{background:rgba(97,114,138,.30); bottom:-160px; left:-120px; animation-delay:.4s;}
.splash-ring{position:absolute; border-radius:50%; border:1px solid rgba(217,166,46,.22); opacity:0;}
.splash-ring.r1{width:340px; height:340px; border-top-color:var(--gold-500); animation:ringIn 1s ease .2s forwards, spin 9s linear infinite;}
.splash-ring.r2{width:460px; height:460px; border-color:rgba(167,180,194,.12); border-left-color:rgba(217,166,46,.55); animation:ringIn 1s ease .45s forwards, spin 14s linear infinite reverse;}
.splash-ring.r3{width:600px; height:600px; border-style:dashed; border-color:rgba(217,166,46,.10); animation:ringIn 1.2s ease .7s forwards, spin 30s linear infinite;}
.splash-core{position:relative; text-align:center; direction:ltr;}
.splash-logo{width:64px; height:64px; object-fit:contain; margin:0 auto 14px; display:block; opacity:0; transform:scale(.6); animation:pop .8s cubic-bezier(.2,.9,.3,1.3) .15s forwards;}
.splash-top{font-family:'Vazirmatn',sans-serif; font-weight:700; font-size:22px; letter-spacing:.42em; color:var(--steel-300); margin-right:-.42em;}
.splash-top span{display:inline-block; opacity:0; transform:translateY(14px); animation:letterUp .55s ease forwards;}
.splash-main{font-family:'Vazirmatn',sans-serif; font-weight:800; font-size:clamp(64px, 12vw, 128px); line-height:1.05; letter-spacing:.06em; margin-top:4px;
  background:linear-gradient(100deg, var(--gold-700) 0%, var(--gold-500) 30%, #FFF3CF 50%, var(--gold-500) 70%, var(--gold-700) 100%);
  background-size:250% 100%; -webkit-background-clip:text; background-clip:text; color:transparent;
  -webkit-text-fill-color:transparent; opacity:0; transform:scale(.85);
  animation:mainIn 1s cubic-bezier(.2,.8,.2,1) 1s forwards, shimmer 2.6s ease-in-out 1.8s infinite;}
.splash-line{height:2px; width:0; margin:14px auto 16px; background:linear-gradient(90deg, transparent, var(--gold-500), transparent); animation:lineGrow .9s ease 1.7s forwards;}
.splash-sub{direction:rtl; font-family:'Vazirmatn',sans-serif; font-size:17px; color:#E8ECF1; opacity:0; transform:translateY(10px); animation:letterUp .8s ease 2.1s forwards;}
@keyframes letterUp{to{opacity:1; transform:none;}}
@keyframes pop{to{opacity:1; transform:none;}}
@keyframes mainIn{to{opacity:1; transform:none;}}
@keyframes shimmer{0%{background-position:100% 0;} 100%{background-position:-50% 0;}}
@keyframes lineGrow{to{width:260px;}}
@keyframes ringIn{to{opacity:1;}}
@keyframes glowIn{to{opacity:1;}}
@keyframes spin{to{transform:rotate(360deg);}}
@keyframes splashOut{to{opacity:0; visibility:hidden; pointer-events:none;}}
@media (prefers-reduced-motion: reduce){
  .splash, .splash *{animation-duration:.01s !important; animation-delay:0s !important;}
  .splash{animation:splashOut .4s ease 1.6s forwards !important;}
}
.entry-group > summary{cursor:pointer; font-weight:800; font-size:15px; padding:2px 0 8px;}
.entry-group .hint{margin:0 0 12px;}
/* brand title on one line */
.brand-mark{width:64px; height:40px; flex:0 0 64px;}
.brand > div:last-child{min-width:0;}
.brand-name{font-size:13px; white-space:nowrap;}

.entry-drill{display:grid; grid-template-columns:repeat(auto-fill, minmax(220px, 1fr)); gap:12px; margin-top:4px;}
.entry-drill-btn{
  display:flex; align-items:center; justify-content:space-between; gap:12px;
  min-height:76px; padding:16px 18px; text-decoration:none; color:var(--ink-900);
  background:#fff; border:1px solid var(--line); border-radius:14px; box-shadow:var(--shadow);
  font-weight:800; font-size:15px; line-height:1.7;
}
.entry-drill-btn:hover{border-color:var(--gold-500); background:var(--gold-050);}
.entry-drill-go{color:var(--gold-600); font-size:22px; line-height:1;}
.entry-back{display:inline-flex;}
.entry-crumbs{display:flex; flex-wrap:wrap; gap:6px; align-items:center; color:var(--ink-400); font-size:12.5px; margin-bottom:12px;}
.entry-crumbs a{color:var(--gold-700); font-weight:700; text-decoration:none;}
@media (max-width: 820px){
  .entry-drill{grid-template-columns:1fr;}
}
.review-block{border-radius:12px; padding:8px 10px; margin-bottom:10px;}
.review-found{background:#E8F6EE; border:1px solid #8FCBAA;}
.review-missing{background:#FDF1E2; border:1px solid #E4C48A;}
.review-badge{display:inline-block; font-size:12px; font-weight:800; margin-bottom:6px;}
.review-badge.ok{color:#1E7A45;}
.review-badge.miss{color:#9C2B24;}
.review-choice{display:flex; flex-wrap:wrap; gap:10px 16px; align-items:center; font-size:12.5px; font-weight:700; margin:4px 0 8px;}
.review-choice label{display:flex; gap:6px; align-items:center; font-weight:700;}

.sample-badge{
  display:inline-flex; align-items:center; margin-inline-start:6px;
  padding:2px 8px; border-radius:999px; font-size:11px; font-weight:800;
  color:#8A5A12; background:#FDF1E2; border:1px solid #E4C48A; vertical-align:middle;
}
tr.is-sample{background:#FFF9EE;}
.legal-kpis{margin-bottom:16px;}

/* mobile login fix: splash never blocks taps, removed after animation */
.splash{pointer-events:none !important;}
.splash *{pointer-events:none !important;}
