/* ادامه‌ی سیستم طراحی (۳ از ۳) — بعد از base.css و screens.css.
   سه فایل یک آبشارند و ترتیب `<link>`ها در index.html جزو آن است. */

/* ─────────────────────────  مراقبت پس از درمان  ───────────────────────── */

.carecard{
  margin:6px 18px 0;padding:17px 18px;border-radius:var(--r-xl);
  background:linear-gradient(150deg,#FFF9F2,#FBEEE0);
  border:1px solid #EEDCC2;box-shadow:0 6px 18px rgba(168,127,102,.12);
}
.carecard .hd{display:flex;align-items:center;gap:10px;margin-bottom:11px;}
.carecard .hd .ic{
  width:36px;height:36px;border-radius:12px;flex:none;display:grid;place-items:center;
  background:linear-gradient(135deg,var(--gold-light),var(--gold-deep));color:#fff;
}
.carecard .hd .t{flex:1;min-width:0;}
.carecard .hd .t b{display:block;font-size:14.5px;font-weight:700;color:#6B4E1E;letter-spacing:-.2px;}
.carecard .hd .t span{font-size:11.5px;color:#9A7A4E;}
.carecard .now{
  background:rgba(255,255,255,.72);border:1px solid #F0E2CE;border-radius:var(--r);
  padding:12px 14px;margin-bottom:12px;
}
.carecard .now .lbl{font-size:11px;font-weight:700;color:var(--gold-deep);margin-bottom:6px;
  display:flex;align-items:center;gap:5px;}
.carecard .now ul{list-style:none;margin:0;padding:0;}
.carecard .now li{font-size:12.5px;line-height:1.95;color:#6B4E1E;padding-inline-start:15px;position:relative;}
.carecard .now li::before{content:'';position:absolute;inset-inline-start:0;top:9px;
  width:5px;height:5px;border-radius:50%;background:var(--gold);}
.carecard .btn{width:100%;}

.stage.past{opacity:.45;}
.stage.past .dot{background:var(--line);color:var(--muted);box-shadow:none;}
.stage.upcoming .dot{background:#fff;border:1.5px solid var(--line);color:var(--muted);}
.stage.current .dot{box-shadow:0 0 0 4px rgba(201,162,138,.24);}
.stage.current .content{
  background:#fff;border:1px solid var(--line-soft);border-radius:var(--r-lg);
  padding:12px 14px;box-shadow:var(--sh-1);margin-bottom:16px;
}
.stage .badge-now{
  display:inline-block;font-size:9.5px;font-weight:700;padding:2px 8px;border-radius:999px;
  background:linear-gradient(135deg,var(--gold-light),var(--gold));color:#fff;margin-inline-start:7px;
  vertical-align:middle;
}
.stage .when{font-size:10.5px;color:var(--muted);font-weight:400;margin-inline-start:6px;}

.prep{margin:0 18px;}
.prep-item{
  display:flex;gap:11px;align-items:flex-start;padding:13px 15px;margin-bottom:9px;
  background:#fff;border:1px solid var(--line-soft);border-radius:var(--r);box-shadow:var(--sh-1);
}
.prep-item .n{
  width:22px;height:22px;border-radius:50%;flex:none;margin-top:1px;
  background:var(--blush);color:var(--plum);display:grid;place-items:center;
  font-size:11px;font-weight:700;
}
.prep-item span{font-size:13px;line-height:1.95;color:var(--ink-2);}

.countdown{
  margin:6px 18px 0;padding:20px;border-radius:var(--r-xl);text-align:center;
  background:radial-gradient(120% 90% at 100% 0%, rgba(201,162,138,.28) 0%, transparent 55%),
             linear-gradient(155deg,var(--plum),var(--plum-900));
  color:#fff;
}
.countdown .n{font-size:40px;font-weight:800;color:var(--gold-light);line-height:1.1;letter-spacing:-2px;}
.countdown .k{font-size:12.5px;color:rgba(255,255,255,.7);margin-top:4px;}
.countdown .w{font-size:13px;color:#fff;margin-top:9px;font-weight:600;}

.masked{
  display:inline-flex;align-items:center;gap:6px;
  background:var(--plum);color:var(--gold-light);
  padding:3px 11px;border-radius:999px;font-size:11.5px;font-weight:600;
}
.revealbar{
  margin:0 18px 11px;padding:12px 14px;border-radius:var(--r);
  background:var(--blush-soft);border:1px dashed var(--blush);
  display:flex;align-items:center;gap:10px;
}
.revealbar .t{flex:1;font-size:12px;line-height:1.8;color:var(--plum-600);}

/* ─────────────────────────  صندوق پیام  ───────────────────────── */

.msg{
  display:block;width:100%;text-align:right;
  margin:0 0 10px;padding:14px 15px;background:#fff;
  border:1px solid var(--line-soft);border-radius:var(--r-lg);box-shadow:var(--sh-1);
  position:relative;overflow:hidden;
}
.msg::before{content:'';position:absolute;inset-inline-start:0;top:0;bottom:0;width:3.5px;background:var(--line-soft);}
.msg.unread::before{background:linear-gradient(180deg,var(--gold-light),var(--gold-deep));}
.msg .hd{display:flex;align-items:flex-start;gap:10px;}
.msg .hd .ic{
  width:34px;height:34px;border-radius:11px;flex:none;display:grid;place-items:center;
  background:var(--blush-soft);color:var(--plum);
}
.msg.unread .hd .ic{background:linear-gradient(135deg,var(--gold-light),var(--gold));color:#fff;}
.msg .hd .t{flex:1;min-width:0;}
.msg .hd .t b{display:block;font-size:13.5px;font-weight:700;line-height:1.6;}
.msg.unread .hd .t b::after{
  content:'';display:inline-block;width:7px;height:7px;border-radius:50%;
  background:var(--bad);margin-inline-start:6px;vertical-align:middle;
}
.msg .hd .t p{margin:3px 0 0;font-size:12.5px;color:var(--ink-2);line-height:1.85;}
.msg .when{font-size:10.5px;color:var(--muted);margin-top:6px;}
.msg .sections{margin-top:12px;padding-top:12px;border-top:1px dashed var(--line);}
.msg .sec-title{
  font-size:12.5px;font-weight:700;color:var(--plum);margin:0 0 8px;
  display:flex;align-items:center;gap:6px;
}
.msg .sec-title + .sec-title{margin-top:14px;}
.msg .acts{display:flex;gap:8px;margin-top:14px;padding-top:12px;border-top:1px dashed var(--line);}

.callbtn{
  display:inline-flex;align-items:center;justify-content:center;gap:7px;
  height:44px;border-radius:999px;flex:1;
  background:linear-gradient(135deg,#4E8F6B,#3F7A5A);color:#fff;
  font-size:13.5px;font-weight:700;box-shadow:0 5px 14px rgba(63,122,90,.26);
}

/* تماس با کلینیک در صندوق پیام: یک دکمه‌ی ثابت بالای نوار پایین، برای
   همه‌ی پیام‌ها یکی (پیش‌تر داخل هر پیام تکرار می‌شد). بیرون از `.view`
   می‌نشیند، پس با فهرست اسکرول نمی‌شود؛ `has-dock` ته فهرست را به
   اندازه‌ی آن خالی نگه می‌دارد تا آخرین پیام زیرش نرود. نیمه‌ی شفافِ
   بالایش کلیک را به فهرست زیرش می‌دهد. */
.dock{
  position:absolute;left:0;right:0;z-index:29;
  bottom:calc(var(--nav-h) + var(--safe-b));
  display:flex;padding:16px 18px 10px;
  background:linear-gradient(to top,var(--cream) 62%,transparent);
  pointer-events:none;
}
.dock .callbtn{pointer-events:auto;}
.view.has-dock{
  padding-bottom:calc(var(--nav-h) + var(--safe-b) + 88px);
  scroll-padding-bottom:calc(var(--nav-h) + var(--safe-b) + 82px);
}
/* با کیبورد باز (کادرِ نظرسنجی) همراه نوار پایین پنهان شود — همان دو شرط. */
html.kb-open .shell:has(.view input:focus, .view textarea:focus) .dock{display:none;}
.msg .msg-sv{margin-top:12px;padding-top:12px;border-top:1px dashed var(--line);}

/* نظرسنجی تک‌سؤالی (`surveyCard`)، در خانه و درون پیامش. تا ۱۴۰۵/۰۷/۳۰
   هیچ قاعده‌ای نداشت: کارت بی‌فاصله‌ی داخلی بود و گزینه‌ها به هم چسبیده. */
.svq{padding:14px 15px;}
.svq-q{font-size:13.5px;font-weight:700;color:var(--plum);margin-bottom:10px;}
.svq-opts{display:flex;gap:8px;}
.svq-opts .btn{flex:1;}
.svq-note{margin-top:10px;}
.svq > .btn.block{margin-top:10px;}
/* درون پیام، خودِ پیام کارت است و متنش همان سؤال را می‌گوید. */
.msg .svq{padding:0;border:0;box-shadow:none;background:none;}
.msg .svq-q{display:none;}

.opt{
  display:flex;align-items:flex-start;gap:10px;width:100%;text-align:right;
  padding:12px 14px;margin-bottom:8px;border-radius:var(--r);
  background:#fff;border:1.5px solid var(--line-soft);
  font-size:12.5px;line-height:1.85;color:var(--ink-2);
}
.opt .rd{
  width:18px;height:18px;border-radius:50%;flex:none;margin-top:3px;
  border:1.5px solid var(--line);display:grid;place-items:center;
}
.opt.on{border-color:var(--bad);background:var(--bad-bg);}
.opt.on .rd{border-color:var(--bad);background:var(--bad);color:#fff;}
.opt.other.on{border-color:var(--plum);background:var(--blush-soft);}
.opt.other.on .rd{border-color:var(--plum);background:var(--plum);}

.emergency{
  margin:0 0 14px;padding:12px 14px;border-radius:var(--r);
  background:var(--bad-bg);border:1px solid #F2CFD1;
  font-size:12px;line-height:1.85;color:#7E3A3E;
  display:flex;gap:9px;align-items:flex-start;
}
.emergency svg{flex:none;margin-top:3px;}

/* ─────────────────────────  داشبورد مراقبت  ───────────────────────── */

.rep{
  margin:0 0 10px;padding:14px;background:#fff;
  border:1px solid var(--line-soft);border-radius:var(--r-lg);box-shadow:var(--sh-1);
  position:relative;overflow:hidden;
}
.rep::before{content:'';position:absolute;inset-inline-start:0;top:0;bottom:0;width:3.5px;background:var(--line);}
.rep.urgent-r::before{background:var(--bad);}
.rep.handled::before{background:var(--ok);}
.rep .top{display:flex;align-items:flex-start;gap:9px;margin-bottom:8px;}
.rep .sym{flex:1;font-size:13.5px;font-weight:700;line-height:1.65;}
.rep .who{font-size:12px;color:var(--ink-2);display:flex;align-items:center;gap:6px;flex-wrap:wrap;}
.rep .note{margin-top:8px;font-size:12px;color:var(--muted);background:var(--line-soft);
  padding:9px 11px;border-radius:10px;line-height:1.8;}
.rep .acts{display:flex;gap:8px;margin-top:12px;padding-top:11px;border-top:1px dashed var(--line);}

.bar{
  height:8px;border-radius:5px;background:var(--line-soft);overflow:hidden;margin-top:8px;
}
.bar i{display:block;height:100%;border-radius:5px;
  background:linear-gradient(90deg,var(--gold-light),var(--gold-deep));}

/* ─────────────────────────  پکیج  ───────────────────────── */

.pkg{
  margin:0 0 12px;padding:16px;background:#fff;
  border:1px solid var(--line-soft);border-radius:var(--r-lg);box-shadow:var(--sh-1);
  position:relative;overflow:hidden;
}
.pkg::before{content:'';position:absolute;inset-inline-start:0;top:0;bottom:0;width:3.5px;background:var(--gold);}
.pkg.st-completed::before{background:var(--ok);}
.pkg.st-expired::before,.pkg.st-cancelled::before{background:var(--bad);}
.pkg.st-frozen::before{background:var(--muted);}
.pkg .top{display:flex;align-items:flex-start;gap:10px;margin-bottom:12px;}
.pkg .top .nm{flex:1;font-size:14.5px;font-weight:700;line-height:1.6;}

.beads{display:flex;flex-wrap:wrap;gap:7px;margin:2px 0 12px;}
.bead{
  width:26px;height:26px;border-radius:50%;flex:none;
  display:grid;place-items:center;font-size:11px;font-weight:700;
  border:1.5px solid var(--line);color:var(--muted);
  font-variant-numeric:tabular-nums;
}
.bead.on{
  background:linear-gradient(150deg,var(--gold-light),var(--gold-deep));
  border-color:transparent;color:#fff;
}
.bead.legacy{
  background:var(--blush);border-color:var(--blush);color:var(--plum);
}
.bead.next{border-color:var(--gold);border-style:dashed;color:var(--gold-deep);}

.pkg .facts{display:flex;flex-wrap:wrap;gap:8px 18px;margin:0 0 12px;font-size:12.5px;color:var(--ink-2);}
.pkg .facts span{display:inline-flex;align-items:center;gap:6px;}
.pkg .facts b{color:var(--plum);font-weight:700;}
.pkg .due{
  margin:0 0 12px;padding:11px 13px;border-radius:12px;
  font-size:12.5px;line-height:1.85;display:flex;gap:9px;align-items:flex-start;
}
.pkg .due.now{background:var(--warn-bg);color:var(--warn);}
.pkg .due.soon{background:var(--blush-soft);color:var(--plum-600);}
.pkg .due.warn{background:var(--bad-bg);color:var(--bad);}
.pkg .due svg{flex:none;margin-top:3px;}
.pkg .acts{display:flex;gap:8px;margin-top:12px;padding-top:12px;border-top:1px dashed var(--line);}

.hist{margin-top:12px;padding-top:12px;border-top:1px dashed var(--line);}
.hist .row{
  display:flex;justify-content:space-between;gap:12px;
  font-size:12px;color:var(--ink-2);padding:6px 0;
}
.hist .row + .row{border-top:1px dashed var(--line-soft);}
.hist .row b{color:var(--plum);font-weight:700;}

/* ─────────────────────────  پنل محتوا  ───────────────────────── */

.doc{
  /* دکمه، عرض auto را fit-content حساب می‌کند و چون محتوای این کارت کوتاه
     است جمع می‌شود. پس داخل ظرف padding‌دار می‌نشیند و width:100% می‌گیرد،
     نه حاشیه — همان الگوی .kv در فهرست پروفایل. */
  display:block;width:100%;
  margin:0 0 10px;padding:14px;background:#fff;text-align:right;
  border:1px solid var(--line-soft);border-radius:var(--r-lg);box-shadow:var(--sh-1);
  position:relative;overflow:hidden;
}
.doc::before{content:'';position:absolute;inset-inline-start:0;top:0;bottom:0;width:3.5px;background:var(--line);}
.doc.st-draft::before{background:var(--muted);}
.doc.st-in_review::before{background:var(--gold);}
.doc.st-published::before{background:var(--ok);}
.doc .top{display:flex;align-items:flex-start;gap:10px;margin-bottom:9px;}
.doc .top .nm{flex:1;font-size:14px;font-weight:700;line-height:1.6;}
.doc .meta{display:flex;flex-wrap:wrap;gap:7px;}
.pill{
  font-size:10.5px;font-weight:700;padding:3px 9px;border-radius:999px;
  display:inline-flex;align-items:center;gap:4px;
}
.pill.q{background:var(--warn-bg);color:var(--warn);}
.pill.w{background:#FDF0E4;color:#9A5B20;}
.pill.e{background:var(--bad-bg);color:var(--bad);}
.pill.s-open{background:var(--ok-bg);color:var(--ok);}
.pill.s-discreet{background:var(--warn-bg);color:var(--warn);}
.pill.s-confidential{background:var(--plum);color:var(--gold-light);}
.pill.cat{background:var(--blush-soft);color:var(--plum-600);}

.qbox{
  margin-top:10px;padding:11px 13px;border-radius:12px;
  background:var(--warn-bg);border:1px solid #EFE0BF;
}
.qbox .hd{font-size:11.5px;font-weight:700;color:var(--warn);margin-bottom:6px;}
.qbox ol{margin:0;padding-inline-start:16px;}
.qbox li{font-size:12px;line-height:1.9;color:#7A5B12;}
.qbox .path{font-family:ui-monospace,Menlo,Consolas,monospace;font-size:10.5px;
  color:#9A7420;direction:ltr;display:inline-block;}

.divider{height:1px;background:var(--line-soft);margin:22px 18px;}
.footnote{font-size:11px;color:var(--muted);text-align:center;padding:6px 30px 20px;line-height:1.9;}

/* ─────────────────────────  فرم پیش از مراجعه  ───────────────────────── */

.fprog{height:3px;background:var(--line-soft);margin:0 18px;border-radius:2px;overflow:hidden;}
.fprog i{display:block;height:100%;background:var(--gold);transition:width .25s ease;}
.fnote{
  display:flex;gap:8px;align-items:flex-start;
  font-size:11.5px;color:var(--muted);line-height:1.9;margin:0 0 14px;
}
.fnote svg{flex:none;margin-top:3px;}
.fstep{font-size:11.5px;color:var(--muted);margin:14px 0 8px;}
.card.fq{padding:20px 18px;}
.card.fq h3{font-size:15.5px;font-weight:700;line-height:2;margin:0 0 16px;}
.fprev{
  font-size:11.5px;color:var(--warn);background:var(--warn-bg);
  padding:8px 11px;border-radius:9px;margin:0 0 14px;line-height:1.8;
}
.qopts{display:flex;gap:8px;}
.qopts.col{flex-direction:column;}
.qopt{
  flex:1;padding:13px 10px;font:inherit;font-size:13.5px;
  border:1.5px solid var(--line);border-radius:12px;background:#fff;color:var(--ink);
  transition:border-color .15s,background .15s;
}
.qopt.on{border-color:var(--plum);background:var(--blush);font-weight:700;}
.qtext{
  width:100%;padding:12px 13px;font:inherit;font-size:14px;
  border:1.5px solid var(--line);border-radius:12px;background:#fff;color:var(--ink);
}
.ffollow{margin-top:14px;}
.ffollow label{display:block;font-size:12.5px;color:var(--muted);margin-bottom:7px;line-height:1.8;}
.fbtns{display:flex;gap:9px;margin-top:16px;}
.fbtns .btn{flex:1;}
.flater{
  display:block;width:100%;margin-top:14px;padding:10px;
  font:inherit;font-size:12.5px;color:var(--muted);background:none;border:none;
}
.okmark{color:var(--ok);display:flex;justify-content:center;}

/* نمای پزشک */
.alertbar{
  border:1.5px solid var(--risk);border-radius:var(--r-lg);
  background:var(--risk-bg);padding:14px;margin-bottom:14px;
}
.alertbar .hd{
  display:flex;gap:7px;align-items:center;
  font-size:13px;font-weight:700;color:var(--risk);margin-bottom:11px;
}
.alert{padding:10px 0;border-top:1px solid rgba(166,71,76,.18);}
.alert:first-of-type{border-top:none;padding-top:0;}
.alert b{display:block;font-size:13px;font-weight:700;line-height:1.85;}
.alert .ans{display:block;font-size:13px;color:var(--risk);font-weight:700;margin-top:4px;}
.alert .when{display:block;font-size:11px;color:var(--muted);margin-top:3px;}
/* «چه باید کرد» — کنار پاسخ پرچم‌دار، تا منشی برای کار روتین منتظر
   پزشک نماند. رنگش عمداً آرام است: خودِ پاسخ باید اول دیده شود. */
.alert .todo{display:flex;gap:6px;align-items:flex-start;margin-top:6px;
  font-size:12px;line-height:1.8;color:var(--ink);
  background:rgba(0,0,0,.035);border-radius:9px;padding:7px 9px;}
.alert .todo svg{flex:none;margin-top:3px;}
.alert .todo.doc{color:var(--risk);font-weight:700;background:rgba(166,71,76,.09);}
.alert.amber .ans{color:var(--warn);}
.okbar{
  display:flex;gap:8px;align-items:center;
  font-size:12.5px;color:var(--ok);background:var(--ok-bg);
  padding:12px 14px;border-radius:var(--r-lg);margin-bottom:14px;
}
.sumline{
  display:flex;gap:10px;margin-bottom:14px;
}
.sumline > div{
  flex:1;background:#fff;border:1px solid var(--line-soft);
  border-radius:var(--r-lg);padding:11px 12px;min-width:0;
}
.sumline span{display:block;font-size:10.5px;color:var(--muted);margin-bottom:3px;}
.sumline b{display:block;font-size:14px;font-weight:700;}
.orow{padding:11px 0;border-top:1px solid var(--line-soft);}
.orow:first-child{border-top:none;}
.orow b{display:block;font-size:12.5px;font-weight:700;line-height:1.85;}
.orow span{display:block;font-size:12.5px;color:var(--ink-2);margin-top:3px;}
.orow i{display:block;font-size:10.5px;color:var(--muted);font-style:normal;margin-top:3px;}
.orow.expired{opacity:.6;}
.orow.expired i{color:var(--warn);}
.frow{
  display:flex;align-items:center;gap:11px;width:100%;text-align:right;
  padding:12px;margin:0 0 9px;background:#fff;
  border:1px solid var(--line-soft);border-radius:var(--r-lg);
}
.frow.need{border-color:var(--risk);}
.fbadge{
  width:38px;height:38px;border-radius:11px;flex:none;
  display:grid;place-items:center;font-size:14px;font-weight:700;
  background:var(--ok-bg);color:var(--ok);
}
.fbadge.red{background:var(--risk-bg);color:var(--risk);}
.fbadge.amber{background:var(--warn-bg);color:var(--warn);}
.frow .grow{flex:1;min-width:0;}
.frow .grow b{display:block;font-size:13.5px;font-weight:700;line-height:1.6;}
.frow .grow span{display:block;font-size:11.5px;color:var(--muted);margin-top:1px;}
.fstat{font-size:11px;color:var(--muted);flex:none;}

/* بیمارانی که پیام اصلاً به دستشان نرسیده — از «باز نکرده» جدی‌تر است */
.kv.bad{background:var(--bad-bg);border-radius:var(--r);padding:10px 12px;margin-bottom:7px;}
.kv.bad .ic{color:var(--bad);}

/* درخواست انتقال نوبت در پنل منشی */
.rs-move{
  display:flex;align-items:center;gap:9px;flex-wrap:wrap;
  margin-top:11px;padding:10px 12px;
  background:var(--blush-soft);border-radius:var(--r);font-size:12.5px;
}
.rs-move .from{color:var(--muted);text-decoration:line-through;}
.rs-move .to{color:var(--plum);font-weight:700;}
.rs-move .arrow{color:var(--gold-deep);display:flex;transform:scaleX(-1);}

/* ─────────────────────────  گزارش‌ها  ─────────────────────────
   رنگ نمودارها با اعتبارسنج پالت سنجیده شده‌اند، روی زمینه‌ی سفید کارت
   (۱۴۰۵/۰۷/۳۰). رنگ‌های برند (بنفش و طلایی کم‌اشباع) آزمون اشباع را رد
   می‌کردند؛ این‌ها همان خانواده‌اند با اشباع بیشتر. وضعیت نوبت: چهار رنگ
   با ترتیب ثابت دور حلقه (قرمز و بنفش روبه‌روی هم، نه کنار هم). رضایت:
   دوقطبی با میانه‌ی خاکستری. میله‌ها: تک‌رنگ، بیشینه پررنگ. عوض کردن هر
   رنگ یعنی دوباره سنجیدن. هر عدد کنار نمودار به متن هم هست. */
.rp-c-done{--c:#8B4A7E;}
.rp-c-open{--c:#C38A2E;}
.rp-c-no_show{--c:#BF4B50;}
.rp-c-cancelled{--c:#3F82C4;}
.rp-c-good{--c:#3F8A5F;}
.rp-c-ok{--c:#A99BA3;}
.rp-c-bad{--c:#BF4B50;}
.rp-c-bar{--c:#8B4A7E;}
.rp-c-other{--c:#B9ADB3;}
.rp{transition:opacity .2s;}
.rp-stale{opacity:.5;pointer-events:none;}
.rp-kpis{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-bottom:12px;}
.rp-kpi{
  display:flex;flex-direction:column;gap:3px;min-width:0;padding:13px 14px;
  background:#fff;border:1px solid var(--line-soft);border-radius:var(--r);box-shadow:var(--sh-1);
}
.rp-kpi .k{font-size:11.5px;color:var(--ink-2);line-height:1.7;}
.rp-kpi .v{font-size:24px;font-weight:800;color:var(--plum);letter-spacing:-.5px;line-height:1.35;}
.rp-kpi .v small{font-size:13px;font-weight:700;margin-inline-start:2px;}
.rp-kpi .v .none{color:var(--muted);font-weight:600;}
.rp-sub{font-size:11px;color:var(--muted);}
.rp-d{font-size:11px;font-weight:700;line-height:1.7;}
.rp-d span{font-weight:500;color:var(--muted);}
.rp-d.good{color:var(--ok);}
.rp-d.bad{color:var(--bad);}
.rp-d.flat{color:var(--muted);font-weight:600;}
.rp-go{
  margin-top:auto;padding-top:6px;align-self:flex-start;
  display:inline-flex;align-items:center;gap:3px;
  font-size:11.5px;font-weight:700;color:var(--gold-deep);text-align:right;
}
.rp-card{padding:15px 16px;margin-bottom:12px;}
.rp-h{display:flex;align-items:baseline;justify-content:space-between;gap:8px;margin-bottom:13px;}
.rp-h h3{margin:0;font-size:14px;font-weight:700;color:var(--ink);}
.rp-h span{font-size:11px;color:var(--muted);}
.rp-empty{margin:0;font-size:12.5px;color:var(--muted);line-height:1.9;}
.rp-note{margin:8px 0 0;font-size:11px;color:var(--muted);line-height:1.8;}
.rp-donut{display:flex;align-items:center;gap:16px;}
.rp-ring{position:relative;flex:none;width:132px;height:132px;}
.rp-ring svg{display:block;}
.rp-ring circle{fill:none;stroke-width:16;stroke:var(--c);}
.rp-ring circle.trk{stroke:var(--line-soft);}
.rp-ring-c{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;}
.rp-ring-c b{font-size:22px;font-weight:800;color:var(--plum);line-height:1.2;}
.rp-ring-c span{font-size:11px;color:var(--muted);}
.rp-legend{flex:1;min-width:0;display:flex;flex-direction:column;gap:8px;}
.rp-legend.row{flex-direction:row;flex-wrap:wrap;gap:6px 16px;margin-top:11px;}
.rp-li{display:flex;align-items:center;gap:7px;font-size:12px;color:var(--ink-2);}
.rp-li .l{flex:1;min-width:0;}
.rp-legend.row .rp-li .l{flex:none;}
.rp-li b{font-weight:700;color:var(--ink);}
.rp-li .p{min-width:30px;font-size:11px;color:var(--muted);text-align:left;}
.rp-legend.row .rp-li .p{min-width:0;}
.rp-sw{flex:none;width:10px;height:10px;border-radius:3px;background:var(--c);}
.rp-stack{display:flex;gap:2px;height:14px;border-radius:4px;overflow:hidden;}
.rp-stack i{min-width:3px;background:var(--c);}
.rp-bar{margin-bottom:10px;}
.rp-bar .l{margin-bottom:4px;font-size:12px;color:var(--ink-2);line-height:1.6;}
.rp-bar .t{display:flex;align-items:center;gap:7px;}
/* میله از راست (خط پایه) می‌روید؛ فقط سرِ داده گرد است */
.rp-bar .t i{height:10px;background:var(--c);border-radius:4px;
  border-start-start-radius:0;border-end-start-radius:0;}
.rp-bar .t b{font-size:11.5px;font-weight:700;color:var(--ink);}
.rp-supp{font-size:11.5px;color:var(--muted);}
.rp-sec{margin:0 0 8px;font-size:12px;font-weight:700;color:var(--ink-2);}
.rp-cols{display:flex;align-items:flex-end;gap:4px;height:96px;border-bottom:1px solid var(--line);}
.rp-cols .c{flex:1;min-width:0;height:100%;display:flex;flex-direction:column;align-items:center;justify-content:flex-end;}
.rp-cols .c b{margin-bottom:3px;font-size:10.5px;font-weight:700;color:var(--ink-2);}
.rp-cols .c i{width:min(24px,72%);background:#DCC9D6;border-radius:4px 4px 0 0;}
.rp-cols .c.peak i{background:#8B4A7E;}
.rp-axis{display:flex;gap:4px;margin-top:5px;}
.rp-axis span{flex:1;min-width:0;text-align:center;font-size:10.5px;color:var(--muted);}
.rp-mini{display:flex;gap:10px;margin-bottom:14px;}
.rp-mini div{flex:1;display:flex;flex-direction:column;gap:2px;padding:10px 12px;
  background:var(--cream);border-radius:var(--r-sm);}
.rp-mini b{font-size:19px;font-weight:800;color:var(--plum);}
.rp-mini span{font-size:11px;color:var(--muted);line-height:1.6;}
.rp-mtr{display:flex;justify-content:space-between;align-items:baseline;gap:8px;margin-bottom:6px;font-size:12px;color:var(--ink-2);}
.rp-mtr b{font-size:14px;color:var(--plum);}
.rp-meter{height:8px;border-radius:4px;background:#EFE4EB;overflow:hidden;}
.rp-meter i{display:block;height:100%;background:#8B4A7E;border-radius:4px;}
.rp-neg{padding:11px 0;border-top:1px solid var(--line-soft);}
.rp-h + .rp-neg{border-top:0;padding-top:0;}
.rp-neg b{font-size:13px;}
.rp-neg p{margin:6px 0 0;font-size:12.5px;color:var(--ink-2);line-height:1.9;}
.rp-neg a{display:block;margin-top:6px;font-size:12px;color:var(--gold-deep);direction:ltr;text-align:right;}
