/*
 * سبک‌های درگاه انجمن؛ ترتیب بخش‌ها بخشی از cascade است و در این مرتب‌سازی حفظ شده است.
 * ابتدا پایه و مؤلفه‌ها، سپس تغییرات اندازه نمایشگر و ترجیحات دسترس‌پذیری قرار دارند.
 */
/* قلم محلی Estedad با وزن متغیر؛ مسیر و مجوز فایل در public/fonts/estedad نگهداری می‌شود. */
@font-face {
  font-family: Estedad;
  src: url('/fonts/estedad/Estedad.ttf') format('truetype');
  font-weight: 100 900;
  font-style: normal;
  font-display: swap
}
/* متغیرهای طرح و تایپوگرافی؛ رنگ، فاصله پوسته و اندازه‌های مشترک از این بخش آغاز می‌شوند. */
:root {
  /* رنگ هویت انجمن از نشان رسمی؛ تون روشن برای زمینه و تون میانی برای تأکید است. */
  --brand-primary: #12205e;
  --brand-deep: #0b143f;
  --brand-accent: #334b96;
  --brand-soft: #eef1fa;
  --ink: var(--brand-primary);
  --ink-deep: var(--brand-deep);
  --gold: var(--brand-accent);
  --gold-dark: #263b80;
  --gold-pale: var(--brand-soft);
  --paper: #fafbfe;
  --white: #fff;
  --text: #26304d;
  --muted: #626b82;
  --line: #dfe4ef;
  --success: #245f48;
  --danger: #a13735;
  --radius: 10px;
  --shadow: 0 12px 34px #12205e0a;
  --shell: 1280px;
  font-family: Estedad,Tahoma,Arial,sans-serif;
  color: var(--text);
  background: var(--paper);
  font-synthesis: none;
  line-height: 1.85;
  font-size: 14px
}
/* قواعد پایه و دسترس‌پذیری؛ ویژگی‌های inline/block چیدمان را با RTL هماهنگ نگه می‌دارند. */
* {
  box-sizing: border-box
}
body {
  margin: 0
}
a {
  color: inherit;
  text-decoration: none
}
button,input,textarea,select {
  font: inherit
}
button,a,input,select,textarea {
  -webkit-tap-highlight-color: transparent
}
button {
  cursor: pointer;
  border: 0
}
button:disabled {
  cursor: wait;
  opacity: .6
}
img {
  max-inline-size: 100%;
  display: block
}
svg {
  display: block
}
h1,h2,h3,p {
  margin-block: 0
}
h1,h2,h3 {
  line-height: 1.65;
  color: var(--ink)
}
h1 {
  font-size: clamp(26px,3.1vw,42px);
  font-weight: 750;
  letter-spacing: -1.2px
}
h2 {
  font-size: 24px;
  font-weight: 720;
  letter-spacing: -.55px
}
h3 {
  font-size: 17px;
  font-weight: 700
}
p {
  margin-block: 10px 16px
}
ul {
  padding-inline-start: 24px
}
fieldset {
  border: 0;
  padding: 0;
  margin: 0 0 16px
}
legend {
  font-weight: 700;
  margin-block-end: 12px
}
::selection {
  background: #cad5f5;
  color: var(--ink)
}
:focus-visible {
  outline: 3px solid #334b96;
  outline-offset: 4px
}
main:focus {
  outline: none
}
[hidden] {
  display: none!important
}
/* پوسته محدودکننده عرض؛ در نمایشگر پهن کشیده نمی‌شود و فاصله کناری در breakpointها تنظیم می‌شود. */
.shell {
  inline-size: min(var(--shell),calc(100% - 64px));
  margin-inline: auto
}
.section {
  padding-block: 52px 64px
}
.icon {
  inline-size: 24px;
  block-size: 24px;
  stroke: currentColor;
  stroke-width: 1.6;
  fill: none;
  stroke-linecap: round;
  stroke-linejoin: round;
  flex-shrink: 0
}
.svg-defs {
  display: none
}
/* متن مخصوص صفحه‌خوان و لینک پرش؛ پنهان‌سازی دیداری نباید آن‌ها را از مسیر دسترسی حذف کند. */
.sr-only {
  position: absolute;
  inline-size: 1px;
  block-size: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0,0,0,0);
  white-space: nowrap;
  border: 0
}
.skip-link {
  position: fixed;
  top: -100px;
  inset-inline-start: 16px;
  z-index: 100;
  background: var(--ink);
  color: white;
  padding: 14px 20px;
  border-radius: 8px
}
.skip-link:focus {
  top: 12px
}
/* پوسته ثابت انجمن: نوار بالا، نشان، حساب و ناوبری؛ ساختار متناظر در index.html است. */
.utility {
  background: var(--ink);
  color: #dce3f5;
  font-size: 11px
}
.utility-inner,.utility-end {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 24px
}
.utility-inner {
  min-block-size: 38px
}
.utility-end a {
  color: #dce3f5
}
.pilot-label {
  border-inline-start: 1px solid #ffffff30;
  padding-inline-start: 20px;
  font-size: 10px;
  color: #d4dced
}
.site-header {
  background: var(--white)
}
.masthead {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 28px;
  min-block-size: 115px
}
.brand {
  display: flex;
  align-items: center;
  gap: 16px;
  flex-shrink: 0
}
.brand-mark {
  inline-size: 59px;
  block-size: 64px;
  display: flex;
  align-items: center;
  justify-content: center;
  color: var(--gold)
}
/* نشان رسمی با نسبت اصلی در همه اندازه‌های سربرگ؛ فرم و رنگ لوگو آینه یا بریده نمی‌شود. */
.brand-mark img { display:block; inline-size:100%; block-size:100%; object-fit:contain }
.brand-mark svg {
  inline-size: 54px;
  block-size: 54px;
  stroke: currentColor;
  stroke-width: 1.3;
  fill: none;
  stroke-linejoin: round
}
.brand strong {
  display: block;
  font-size: 22px;
  font-weight: 750;
  color: var(--ink);
  line-height: 1.8
}
.brand small {
  font-size: 11px;
  color: var(--muted);
  letter-spacing: .15px
}
.masthead-actions,.actions {
  display: flex;
  gap: 12px;
  align-items: center;
  flex-wrap: wrap
}
/* دکمه و حالت‌های مشترک؛ غیرفعال‌شدن هنگام ارسال فرم را منطق app.js کنترل می‌کند. */
.button {
  display: inline-flex;
  justify-content: center;
  align-items: center;
  gap: 15px;
  min-block-size: 45px;
  padding: 10px 22px;
  border-radius: 5px;
  border: 1px solid transparent;
  font-size: 12px;
  font-weight: 650;
  line-height: 1.8;
  transition: background .18s,color .18s,transform .18s
}
.primary {
  background: var(--ink);
  color: var(--white);
  border-color: var(--ink)
}
.primary:hover {
  background: #263b80
}
.secondary {
  color: var(--ink);
  background: transparent;
  border-color: #d2d6d5
}
.secondary:hover {
  background: #f1f3fa
}
.menu-button {
  display: none;
  background: transparent;
  color: var(--ink);
  min-inline-size: 44px;
  min-block-size: 44px;
  font-size: 25px
}
.nav-wrap {
  border-block: 1px solid var(--line)
}
.main-nav {
  display: flex;
  align-items: stretch;
  min-block-size: 58px;
  gap: 38px
}
.main-nav a {
  display: flex;
  align-items: center;
  gap: 13px;
  font-size: 12px;
  font-weight: 550;
  position: relative;
  padding-block: 15px;
  white-space: nowrap
}
.main-nav a:after {
  content: '';
  position: absolute;
  inset-inline: 0;
  bottom: 0;
  height: 2px;
  background: transparent
}
.main-nav a:hover,.main-nav a[aria-current] {
  color: var(--gold-dark)
}
.main-nav a[aria-current]:after {
  background: var(--gold)
}
.main-nav .market-nav {
  margin-inline-start: auto;
  color: var(--gold-dark)
}
.eyebrow {
  display: block;
  color: var(--gold-dark);
  font-size: 11px;
  font-weight: 650;
  margin-block-end: 8px
}
/* خانه خبری: معرفی انجمن، خبر شاخص، میراث زرین و دعوت به عضویت. */
.home-intro {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 24px;
  padding-block: 34px 28px
}
.home-title .eyebrow {
  margin-block-end: 1px
}
.home-title h1 {
  font-size: 32px;
  line-height: 1.7;
  letter-spacing: -1.1px
}
.home-title h1 span {
  font-weight: 450;
  color: var(--gold-dark)
}
.home-intro>p {
  margin: 0;
  font-size: 12px;
  color: var(--muted);
  line-height: 2.1;
  max-inline-size: 465px
}
.lead-grid {
  display: grid;
  grid-template-columns: 1.63fr 1fr;
  gap: 22px
}
.lead-story {
  position: relative;
  isolation: isolate;
  border-radius: 8px;
  overflow: hidden;
  min-block-size: 433px;
  background: var(--ink)
}
.lead-story>img {
  position: absolute;
  inset: 0;
  inline-size: 100%;
  block-size: 100%;
  object-fit: cover;
  object-position: center 35%;
  z-index: -2
}
.lead-story:after {
  content: '';
  position: absolute;
  inset: 0;
  background: linear-gradient(0deg,#0b143fec 0%,#0b143f87 35%,#0b143f00 75%);
  z-index: -1
}
.lead-story-content {
  padding: 29px 34px;
  display: flex;
  flex-direction: column;
  justify-content: flex-end;
  block-size: 100%;
  min-block-size: 433px;
  color: white
}
.lead-story h2 {
  font-size: 25px;
  font-weight: 650;
  line-height: 1.85;
  max-inline-size: 600px;
  color: white;
  margin-block: 12px 17px
}
.lead-story-content .tag {
  align-self: flex-start
}
.lead-story-bottom {
  display: flex;
  align-items: center;
  justify-content: space-between;
  font-size: 10px;
  color: #e1e5e6;
  border-block-start: 1px solid #ffffff35;
  padding-block-start: 15px
}
.lead-story-bottom a {
  font-size: 11px;
  color: #dce3f5
}
.lead-side {
  display: grid;
  grid-template-rows: 1.06fr 1fr;
  gap: 18px
}
.heritage-teaser {
  position: relative;
  isolation: isolate;
  overflow: hidden;
  border-radius: 8px;
  color: white;
  padding: 23px 28px;
  display: flex;
  align-items: center;
  background: var(--ink)
}
.heritage-teaser>img {
  position: absolute;
  inset: 0;
  inline-size: 100%;
  block-size: 100%;
  object-fit: cover;
  z-index: -2;
  opacity: .35
}
.heritage-teaser:after {
  content: '';
  position: absolute;
  inset: 0;
  background: linear-gradient(270deg,#12205ee3,#12205e05);
  z-index: -1
}
.heritage-teaser .eyebrow {
  color: #cad5f5;
  font-size: 10px
}
.heritage-teaser h2 {
  font-size: 34px;
  font-weight: 500;
  color: white;
  letter-spacing: -1px;
  line-height: 1.5
}
.heritage-teaser p {
  font-size: 11px;
  margin-block: 4px 14px;
  color: #dce2e5
}
.heritage-teaser .text-link {
  color: #cad5f5;
  font-size: 10px
}
.member-teaser {
  background: var(--gold-pale);
  padding: 23px 28px;
  border-radius: 8px;
  position: relative;
  overflow: hidden
}
.member-teaser:after {
  content: '◇';
  position: absolute;
  inset-inline-end: 10px;
  bottom: -95px;
  font-size: 230px;
  line-height: 1;
  color: #334b9614;
  pointer-events: none
}
.member-teaser .eyebrow {
  font-size: 10px
}
.member-teaser h2 {
  font-size: 20px
}
.member-teaser p {
  font-size: 11px;
  max-inline-size: 360px;
  margin-block: 6px 11px
}
.text-link {
  display: inline-flex;
  align-items: center;
  gap: 12px;
  font-size: 12px;
  font-weight: 650;
  color: var(--gold-dark);
  min-block-size: 35px
}
.text-link:hover {
  color: var(--ink)
}
/* دسترسی سریع به چهار خدمت اصلی؛ تعداد ستون‌ها در موبایل کاهش می‌یابد. */
.service-strip {
  display: grid;
  grid-template-columns: repeat(4,1fr);
  background: white;
  margin-block: 25px 35px;
  border: 1px solid var(--line);
  border-radius: 8px;
  padding-block: 22px;
  box-shadow: var(--shadow)
}
.service-item {
  display: flex;
  gap: 14px;
  align-items: center;
  min-inline-size: 0;
  padding-inline: 24px;
  border-inline-end: 1px solid var(--line)
}
.service-item:last-child {
  border: 0
}
.service-icon {
  inline-size: 38px;
  block-size: 44px;
  color: var(--gold-dark);
  display: grid;
  place-items: center;
  flex-shrink: 0
}
.service-icon .icon {
  inline-size: 29px;
  block-size: 29px
}
.service-item strong {
  font-size: 12px;
  display: block;
  color: var(--ink);
  font-weight: 650
}
.service-item small {
  display: block;
  color: var(--muted);
  font-size: 9px;
  margin-block-start: 4px
}
.service-arrow {
  margin-inline-start: auto;
  font-size: 18px;
  color: var(--gold)
}
/* نوار نرخ‌ها؛ رقم‌های هم‌عرض و متن منبع/زمان برای مقایسه خوانا در هر اندازه. */
.prices-section {
  background: #f3f5fc;
  border-block: 1px solid #e2e6f0;
  padding-block: 19px 23px
}
.prices-heading {
  display: flex;
  align-items: center;
  gap: 19px;
  margin-block-end: 15px
}
.prices-heading h2 {
  display: flex;
  gap: 10px;
  align-items: center;
  font-size: 15px;
  font-weight: 700
}
.prices-heading h2 .icon {
  color: var(--gold-dark);
  inline-size: 20px;
  block-size: 20px
}
.prices-heading>span {
  font-size: 10px;
  color: var(--muted)
}
.prices-heading>a,.prices-heading>button {
  margin-inline-start: auto;
  font-size: 10px;
  color: var(--gold-dark)
}
.price-grid {
  display: grid;
  grid-template-columns: repeat(5,1fr);
  gap: 0
}
.price-item {
  border-inline-end: 1px solid #dfe4ef;
  padding-inline: 21px;
  display: flex;
  flex-direction: column;
  gap: 3px
}
.price-item:first-child {
  padding-inline-start: 0
}
.price-item:last-child {
  border: 0
}
.price-item>span {
  font-size: 11px;
  font-weight: 550
}
.price-item>strong {
  font-size: 23px;
  line-height: 1.65;
  font-variant-numeric: tabular-nums;
  font-weight: 700
}
.price-item>strong small {
  font-size: 9px;
  font-weight: 450;
  margin-inline-start: 7px;
  color: var(--muted)
}
.price-item>small {
  font-size: 9px;
  color: var(--muted);
  line-height: 1.9;
  overflow-wrap: anywhere
}
/* عنوان بخش و کارت‌های خبر؛ ابعاد تصویر از جابه‌جایی ناگهانی محتوا هنگام بارگیری می‌کاهد. */
.section-heading {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 20px;
  margin-block-end: 25px
}
.section-heading .eyebrow {
  margin-block-end: 2px
}
.section-heading h2 {
  font-size: 24px
}
.section-heading>.text-link {
  align-self: flex-end
}
.news-grid {
  display: grid;
  grid-template-columns: repeat(3,minmax(0,1fr));
  gap: 25px
}
.news-card {
  border: 1px solid var(--line);
  background: white;
  border-radius: 7px;
  overflow: hidden;
  min-inline-size: 0
}
.news-image {
  display: block;
  aspect-ratio: 1.8;
  overflow: hidden;
  background: #e4e8f1
}
.news-image img {
  inline-size: 100%;
  block-size: 100%;
  object-fit: cover;
  transition: transform .35s
}
.news-card:hover .news-image img {
  transform: scale(1.03)
}
.news-card-body {
  padding: 20px 22px 17px
}
.meta {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 9px;
  color: var(--muted);
  font-size: 10px;
  margin-block-end: 12px
}
.meta time {
  margin-inline-start: auto
}
.tag {
  display: inline-flex;
  align-items: center;
  font-size: 9px;
  line-height: 1.8;
  padding: 3px 9px;
  background: #f1f3fa;
  color: #566969;
  border: 1px solid transparent;
  border-radius: 3px;
  white-space: nowrap
}
.tag.gold {
  background: #334b96;
  color: white
}
.tag.success {
  background: #e7f1e9;
  color: var(--success)
}
.tag.danger {
  background: #f8e9e4;
  color: var(--danger)
}
.news-card h3 {
  font-size: 16px;
  line-height: 1.95;
  margin-block-end: 11px
}
.news-card .text-link {
  font-size: 10px
}
.media-placeholder {
  inline-size: 100%;
  block-size: 100%;
  display: grid;
  place-items: center;
  color: var(--gold-dark);
  background: var(--gold-pale)
}
.media-placeholder .icon {
  inline-size: 55px;
  block-size: 55px
}
/* کارت‌های معرفی کمیته‌ها؛ ترتیب داده‌ها از app.js یا تنظیمات سرور می‌آید. */
.committees-section {
  background: #f1f3fa;
  border-block: 1px solid #dfe4ef
}
.committee-grid {
  display: grid;
  grid-template-columns: repeat(4,minmax(0,1fr));
  gap: 15px
}
.committee-tile {
  position: relative;
  padding: 26px 24px;
  background: #fff;
  border: 1px solid #dfe4ef;
  border-radius: 6px;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 9px;
  transition: border-color .18s,transform .18s;
  min-inline-size: 0
}
.committee-tile:hover {
  transform: translateY(-3px);
  border-color: var(--gold)
}
.committee-tile>.icon {
  inline-size: 31px;
  block-size: 31px;
  color: var(--gold-dark);
  margin-block-end: 10px
}
.committee-number {
  position: absolute;
  inset-inline-end: 22px;
  top: 20px;
  font-size: 22px;
  color: #bcc4c3;
  font-weight: 300
}
.committee-tile h3 {
  font-size: 15px;
  line-height: 1.9
}
.committee-tile .text-link {
  font-size: 10px;
  margin-block-start: auto
}
.committee-tile small {
  color: var(--muted);
  font-size: 10px
}
.join-band {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 40px;
  padding-block: 53px 58px
}
.join-band h2 {
  font-size: 23px;
  max-inline-size: 800px
}
.join-band p {
  color: var(--muted);
  font-size: 12px;
  margin-block: 8px 0
}
.join-band>.button {
  flex-shrink: 0
}
/* پابرگ مشترک و پیوندهای خدمات، نصب و دبیرخانه. */
.site-footer {
  background: var(--ink-deep);
  color: #bac6e1;
  padding-block-start: 45px
}
.footer-grid {
  display: grid;
  grid-template-columns: 1.5fr .8fr .8fr 1.2fr;
  gap: 55px;
  padding-block-end: 35px
}
.site-footer h2 {
  font-size: 12px;
  font-weight: 650;
  color: #eef1fa;
  margin-block: 6px 15px
}
.site-footer p {
  font-size: 11px;
  line-height: 2.1;
  margin-block: 8px 13px
}
.site-footer a {
  font-size: 10px;
  display: block;
  margin-block: 9px;
  min-block-size: 24px
}
.site-footer a:hover {
  color: #cad5f5
}
.site-footer .footer-brand {
  font-size: 18px;
  font-weight: 700;
  color: #f1f3fa;
  margin-block: 0 15px
}
.footer-signature {
  font-size: 10px;
  color: #cad5f5;
  display: block;
  margin-block-start: 20px
}
.footer-bottom {
  border-block-start: 1px solid #ffffff20;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 20px;
  padding-block: 20px;
  font-size: 9px;
  color: #8e9fa9
}
/* قالب مشترک صفحه داخلی، پنل، اعلان، حالت خالی و پیام موقت. */
.page-head {
  background: #f1f3fa;
  border-block-end: 1px solid #dfe4ef
}
.page-head-inner {
  padding-block: 32px 38px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 30px
}
.page-head h1 {
  font-size: 33px;
  line-height: 1.8
}
.page-head p {
  font-size: 12px;
  color: var(--muted);
  max-inline-size: 800px;
  margin-block: 6px 0
}
.page-head .eyebrow {
  margin-block-end: 1px
}
.page-head .button {
  flex-shrink: 0
}
.panel {
  padding: 26px;
  background: white;
  border: 1px solid var(--line);
  border-radius: 8px;
  min-inline-size: 0
}
.panel h2 {
  font-size: 20px;
  margin-block-end: 15px
}
.panel h3 {
  margin-block: 10px
}
.panel p {
  font-size: 12px
}
.muted-panel {
  background: #f5f7fc;
  margin-block: 20px
}
.notice {
  padding: 16px 20px;
  margin-block: 22px;
  background: #eef1fa;
  border: 1px solid #dfe4ef;
  border-radius: 6px;
  color: #334b96;
  font-size: 12px;
  line-height: 2
}
.notice.error,.form-error {
  background: #fbefec;
  color: var(--danger);
  border-color: #ecc4b9
}
.notice.success {
  background: #edf5ef;
  color: var(--success);
  border-color: #c4d8c6
}
.notice .button {
  margin-block-start: 10px
}
.empty-state {
  text-align: center;
  padding: 35px 24px;
  grid-column: 1/-1;
  color: var(--muted);
  background: #fafbfe;
  border: 1px dashed #dfe4ef;
  border-radius: 7px
}
.empty-state>.icon {
  inline-size: 32px;
  block-size: 32px;
  color: var(--gold);
  margin: 0 auto 10px
}
.empty-state h3 {
  font-size: 16px;
  margin-block: 8px
}
.empty-state p {
  font-size: 11px;
  max-inline-size: 540px;
  margin-inline: auto
}
.empty-state .button {
  margin-block-start: 10px
}
.loading {
  padding-block: 75px;
  text-align: center;
  color: var(--muted);
  font-size: 13px
}
.toast {
  position: fixed;
  bottom: 25px;
  inset-inline-start: 50%;
  transform: translateX(50%);
  z-index: 99;
  background: var(--ink);
  color: #fff;
  padding: 16px 24px;
  border-radius: 7px;
  box-shadow: 0 10px 35px #0003;
  max-inline-size: min(560px,calc(100% - 32px));
  font-size: 12px
}
.muted {
  color: var(--muted)
}
.small,small.small {
  font-size: 11px
}
.preserve-lines {
  white-space: pre-wrap;
  overflow-wrap: anywhere;
  line-height: 2.1
}
/* کنترل‌های فرم و حریم خصوصی؛ داده لاتین با dir=ltr محدود به همان ورودی می‌شود. */
.field {
  display: block;
  min-inline-size: 0;
  color: var(--ink);
  font-size: 12px;
  font-weight: 550;
  margin-block-end: 18px
}
.field input,.field textarea,.field select {
  display: block;
  inline-size: 100%;
  min-block-size: 45px;
  margin-block-start: 8px;
  padding: 10px 13px;
  color: var(--text);
  background: #fff;
  border: 1px solid #cfd6d5;
  border-radius: 5px;
  font-size: 12px;
  font-weight: 450;
  transition: border-color .18s
}
.field textarea {
  resize: vertical;
  min-block-size: 120px;
  line-height: 2
}
.field input:focus,.field select:focus,.field textarea:focus {
  border-color: var(--gold-dark);
  outline: 2px solid #cad5f577;
  outline-offset: 1px
}
.field input::placeholder,.field textarea::placeholder {
  color: #899496;
  font-weight: 400
}
.field small {
  display: block;
  margin-block-start: 6px;
  font-size: 10px;
  color: var(--muted);
  font-weight: 400
}
.field input[dir=ltr] {
  text-align: left
}
.field select {
  padding-inline-end: 28px
}
.form-grid {
  display: grid;
  grid-template-columns: repeat(2,minmax(0,1fr));
  gap: 0 20px
}
.form-page {
  max-inline-size: 890px
}
.form-page>.text-link {
  margin-block-end: 20px
}
.form-actions {
  display: flex;
  gap: 12px;
  margin-block-start: 20px
}
.form-error {
  font-size: 12px;
  border: 1px solid;
  padding: 12px 15px;
  margin-block: 15px;
  border-radius: 5px
}
.read-value {
  margin-block-start: 8px;
  padding: 10px 13px;
  background: #f3f5fc;
  border-radius: 5px;
  min-block-size: 45px;
  font-weight: 450
}
.check {
  display: flex;
  align-items: center;
  gap: 10px;
  font-size: 12px;
  font-weight: 450;
  margin-block: 10px;
  cursor: pointer
}
.check input,.vote-option input {
  inline-size: 18px;
  block-size: 18px;
  accent-color: var(--ink);
  flex-shrink: 0
}
.check a {
  text-decoration: underline;
  text-underline-offset: 3px
}
.privacy-options {
  background: #f5f7fc;
  border: 1px solid var(--line);
  padding: 18px 20px;
  border-radius: 6px;
  margin-block: 20px
}
.privacy-options legend {
  float: inline-start;
  inline-size: 100%;
  font-size: 13px;
  margin: 0 0 5px
}
.privacy-options p {
  clear: both;
  color: var(--muted);
  font-size: 11px
}
.privacy-options .check {
  display: inline-flex;
  margin-inline-end: 25px
}
/* فیلترها، تب‌ها و مسیر صفحه؛ در اندازه کوچک کنترل‌ها به ردیف‌های جدا تبدیل می‌شوند. */
.filters {
  display: flex;
  align-items: flex-end;
  gap: 17px;
  background: white;
  border: 1px solid var(--line);
  padding: 20px;
  border-radius: 7px;
  margin-block-end: 28px;
  flex-wrap: wrap
}
.filters .field {
  margin: 0;
  min-inline-size: 170px
}
.filters .grow {
  flex: 1;
  min-inline-size: 230px
}
.filters .button {
  min-block-size: 45px
}
.tabs {
  display: flex;
  gap: 30px;
  border-block-end: 1px solid var(--line);
  margin-block-end: 28px;
  flex-wrap: wrap
}
.tabs a {
  display: flex;
  align-items: center;
  min-block-size: 45px;
  padding-block: 10px;
  border-block-end: 2px solid transparent;
  font-size: 12px
}
.tabs a[aria-current] {
  border-color: var(--gold);
  color: var(--gold-dark);
  font-weight: 650
}
.breadcrumb {
  display: flex;
  gap: 13px;
  font-size: 11px;
  color: var(--muted);
  margin-block-end: 25px
}
/* نمای کامل خبر؛ عرض خواندن متن و نسبت تصویر مستقل از شبکه کارت‌های آرشیو است. */
.article {
  max-inline-size: 960px
}
.article h1 {
  font-size: 34px;
  margin-block: 10px 25px
}
.article-image {
  inline-size: 100%;
  max-block-size: 540px;
  object-fit: cover;
  border-radius: 8px;
  margin-block: 25px
}
.article-body {
  font-size: 14px;
  line-height: 2.3;
  margin-block: 25px;
  overflow-wrap: anywhere
}
.article-body p {
  margin-block: 16px
}
.article>.button {
  margin-block: 25px;
  display: flex;
  inline-size: fit-content
}
.article h2 {
  margin-block-start: 25px
}
/* معرفی میراث زرین و فهرست رویدادها. */
.heritage-layout {
  display: grid;
  grid-template-columns: .9fr 1.1fr;
  gap: 45px;
  align-items: start
}
.heritage-layout>div>img {
  border-radius: 9px;
  aspect-ratio: .85;
  object-fit: cover
}
.heritage-layout>div>small {
  display: block;
  font-size: 10px;
  margin-block: 7px
}
.heritage-layout h2 {
  font-size: 29px;
  line-height: 1.9
}
.heritage-layout p {
  font-size: 13px;
  line-height: 2.2
}
.event-list {
  margin-block: 25px
}
.event-row {
  display: flex;
  align-items: flex-start;
  gap: 20px;
  border-block-start: 1px solid var(--line);
  padding-block: 25px
}
.event-symbol {
  display: grid;
  place-items: center;
  inline-size: 47px;
  block-size: 55px;
  background: var(--gold-pale);
  border-radius: 30px 30px 5px 5px;
  color: var(--gold-dark);
  flex-shrink: 0
}
.event-row h3 {
  font-size: 19px;
  margin-block-start: 5px
}
.event-row p {
  font-size: 11px;
  margin-block: 6px
}
.event-row small {
  color: var(--muted);
  font-size: 10px
}
/* معرفی انجمن و کارت مسئولان؛ اسامی واقعی در API تنظیمات مدیریت می‌شوند. */
.about-intro {
  display: flex;
  gap: 35px;
  max-inline-size: 920px;
  margin-block: 10px 65px;
  align-items: center
}
.about-seal {
  display: grid;
  place-items: center;
  border: 1px solid #cad5f5;
  inline-size: 160px;
  block-size: 190px;
  border-radius: 90px 90px 4px 4px;
  background: var(--gold-pale);
  flex-shrink: 0
}
.about-seal .icon {
  inline-size: 75px;
  block-size: 75px;
  color: var(--gold-dark);
  stroke-width: .8
}
.about-intro h2 {
  font-size: 28px
}
.about-intro p {
  font-size: 13px;
  line-height: 2.2
}
.board-grid {
  display: grid;
  grid-template-columns: repeat(3,minmax(0,1fr));
  gap: 22px
}
.board-card {
  background: white;
  border: 1px solid var(--line);
  text-align: center;
  padding: 33px 20px;
  border-radius: 7px
}
.avatar {
  display: flex;
  align-items: center;
  justify-content: center;
  inline-size: 47px;
  block-size: 47px;
  background: var(--gold-pale);
  color: var(--gold-dark);
  border-radius: 50%;
  flex-shrink: 0
}
.board-card .avatar {
  margin-inline: auto;
  margin-block-end: 17px;
  inline-size: 66px;
  block-size: 66px
}
.board-card .avatar .icon {
  inline-size: 30px;
  block-size: 30px
}
.two-columns {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 25px
}
/* ورود و ثبت حساب؛ پیام معرفی کنار فرم در دسکتاپ و بالای فرم در موبایل قرار می‌گیرد. */
.auth-layout {
  display: grid;
  grid-template-columns: minmax(0,1fr) minmax(0,1fr);
  gap: 80px;
  max-inline-size: 1030px;
  align-items: center;
  padding-block: 60px 75px
}
.auth-message h2 {
  font-size: 37px;
  line-height: 1.85
}
.auth-message p {
  font-size: 11px;
  color: var(--muted);
  line-height: 2.2;
  max-inline-size: 380px
}
.feature-list {
  list-style: none;
  padding: 0;
  margin-block: 25px
}
.feature-list li {
  display: flex;
  align-items: center;
  gap: 11px;
  font-size: 12px;
  margin-block: 12px
}
.feature-list .icon {
  inline-size: 19px;
  block-size: 19px;
  color: var(--gold-dark)
}
.auth-panel {
  padding: 30px
}
.auth-panel .tabs {
  gap: 25px
}
.auth-panel .form-actions .button {
  inline-size: 100%
}
/* میان‌برهای میز کار اعضا و فهرست دسترسی‌های کمیته‌ای. */
.dashboard-services {
  display: grid;
  grid-template-columns: repeat(3,minmax(0,1fr));
  gap: 22px;
  margin-block-end: 44px
}
.dashboard-service .icon {
  inline-size: 33px;
  block-size: 33px;
  color: var(--gold-dark);
  margin-block-end: 20px
}
.dashboard-service h2 {
  font-size: 18px;
  margin: 0
}
.dashboard-service p {
  color: var(--muted);
  font-size: 11px;
  margin-block: 8px
}
.record-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 20px;
  border-block-end: 1px solid var(--line);
  padding-block: 17px;
  font-size: 12px
}
.record-row:last-child {
  border: 0
}
.record-row>span {
  color: var(--muted)
}
/* میز کمیته: فهرست اعضا، اسناد، فرم پیگیری و رأی‌گیری؛ مجوز نمایش در سرور بررسی می‌شود. */
.committee-layout {
  display: grid;
  grid-template-columns: 280px 1fr;
  gap: 30px;
  margin-block-start: 22px;
  align-items: start
}
.committee-members {
  padding: 22px
}
.committee-members h2 {
  font-size: 18px
}
.committee-members .empty-state {
  padding: 22px 10px
}
.member-row {
  display: flex;
  align-items: center;
  gap: 12px;
  padding-block: 15px;
  border-block-end: 1px solid var(--line)
}
.member-row strong,.member-row small {
  display: block
}
.member-row strong {
  font-size: 12px
}
.member-row small {
  font-size: 10px;
  color: var(--muted)
}
.committee-work>div>h2 {
  font-size: 22px;
  margin-block: 24px 17px
}
.composer {
  margin-block-end: 23px
}
.composer>summary {
  font-size: 13px;
  font-weight: 650;
  cursor: pointer;
  color: var(--ink);
  min-block-size: 27px
}
.composer[open]>summary {
  margin-block-end: 24px;
  padding-block-end: 18px;
  border-block-end: 1px solid var(--line)
}
.composer summary small {
  display: block;
  font-size: 10px;
  color: var(--muted);
  font-weight: 400
}
.records-list,.poll-list {
  display: grid;
  gap: 20px
}
.record-card .meta {
  margin-block-end: 8px
}
.record-card h3 {
  margin-block: 6px 14px
}
.record-footer {
  display: flex;
  justify-content: space-between;
  gap: 15px;
  color: var(--muted);
  font-size: 10px;
  margin-block-start: 22px;
  flex-wrap: wrap
}
.inline-form {
  display: flex;
  align-items: flex-end;
  flex-wrap: wrap;
  gap: 15px;
  border-block-start: 1px solid var(--line);
  padding-block-start: 20px;
  margin-block-start: 20px
}
.inline-form .field {
  margin: 0
}
.inline-form .form-error {
  inline-size: 100%
}
.poll-card h3 {
  margin-block: 10px
}
.vote-option {
  display: flex;
  align-items: center;
  gap: 12px;
  border: 1px solid #d8dfd9;
  padding: 10px 13px;
  border-radius: 5px;
  font-size: 12px;
  margin-block: 10px;
  cursor: pointer
}
.vote-option:has(input:checked) {
  background: #eef1fa;
  border-color: var(--gold)
}
.poll-results>div {
  margin-block: 15px
}
.result-label {
  display: flex;
  justify-content: space-between;
  gap: 15px;
  font-size: 12px
}
.poll-results progress {
  inline-size: 100%;
  block-size: 11px;
  border-radius: 4px;
  accent-color: var(--gold);
  direction: rtl
}
/* دفتر عمومی اعضا؛ کارت‌ها تنها فیلدهای مجازِ دریافتی از API را نمایش می‌دهند. */
.directory-grid {
  display: grid;
  grid-template-columns: repeat(3,minmax(0,1fr));
  gap: 22px
}
.directory-card .avatar {
  margin-block-end: 15px
}
.directory-card h2 {
  font-size: 19px;
  margin-block: 10px
}
.directory-card>strong {
  font-size: 12px;
  color: var(--muted)
}
.directory-card p {
  font-size: 11px;
  overflow-wrap: anywhere
}
.directory-card .meta {
  margin-block: 20px 0
}
/* بازار نیازمندی‌ها: راهنمای مراحل، فهرست درخواست‌ها و صفحه جزئیات. */
.market-layout {
  display: grid;
  grid-template-columns: 235px 1fr;
  gap: 30px;
  align-items: start
}
.market-sidebar {
  border-inline-end: 1px solid var(--line);
  padding-inline-end: 25px
}
.market-sidebar h2 {
  font-size: 18px
}
.workflow {
  list-style: none;
  padding: 0;
  counter-reset: step;
  margin-block: 25px
}
.workflow li {
  position: relative;
  counter-increment: step;
  padding-inline-start: 45px;
  padding-block: 0 30px;
  min-block-size: 75px
}
.workflow li:before {
  content: counter(step,persian);
  position: absolute;
  inset-inline-start: 0;
  top: 0;
  display: grid;
  place-items: center;
  inline-size: 29px;
  block-size: 29px;
  border-radius: 50%;
  background: var(--gold-pale);
  color: var(--gold-dark);
  font-size: 12px;
  z-index: 1
}
.workflow li:not(:last-child):after {
  content: '';
  position: absolute;
  inset-inline-start: 14px;
  top: 29px;
  bottom: 0;
  border-inline-start: 1px solid #dfe4ef
}
.workflow strong {
  font-size: 12px
}
.workflow small {
  display: block;
  font-size: 10px;
  color: var(--muted);
  margin-block-start: 4px
}
.listing-grid {
  display: grid;
  grid-template-columns: repeat(2,minmax(0,1fr));
  gap: 20px
}
.results-count {
  font-size: 11px;
  color: var(--muted);
  margin-block-end: 15px
}
.listing-card {
  padding: 23px
}
.listing-card h2 {
  font-size: 18px;
  margin-block: 5px 12px
}
.listing-card p {
  font-size: 11px;
  color: var(--muted)
}
.line-clamp {
  display: -webkit-box;
  -webkit-line-clamp: 3;
  -webkit-box-orient: vertical;
  overflow: hidden;
  overflow-wrap: anywhere
}
.listing-details {
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
  font-size: 10px;
  padding-block: 15px;
  border-block-end: 1px solid var(--line);
  color: #586e78
}
.listing-footer {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 15px;
  padding-block-start: 13px
}
.listing-footer small {
  font-size: 9px;
  color: var(--muted);
  overflow-wrap: anywhere
}
.listing-footer .text-link {
  font-size: 10px;
  white-space: nowrap
}
.listing-page {
  display: grid;
  grid-template-columns: 1.4fr 1fr;
  gap: 25px;
  align-items: start;
  margin-block-start: 20px
}
.detail-grid {
  display: grid;
  grid-template-columns: repeat(2,minmax(0,1fr));
  padding-block: 14px;
  border-block: 1px solid var(--line);
  gap: 16px;
  margin-block: 25px
}
.detail-grid dt {
  color: var(--muted);
  font-size: 10px
}
.detail-grid dd {
  margin: 3px 0 0;
  font-size: 12px
}
/* گفت‌وگوی هر نیازمندی؛ پیام خود کاربر فقط با کلاس own تمایز دیداری می‌گیرد. */
.conversation .empty-state {
  padding: 25px 10px
}
.messages {
  display: flex;
  flex-direction: column;
  gap: 15px;
  margin-block: 20px;
  max-block-size: 540px;
  overflow: auto;
  padding: 4px
}
.message {
  align-self: flex-start;
  background: #edf1ee;
  border: 1px solid #e1e6df;
  border-radius: 10px 10px 3px 10px;
  padding: 11px 15px;
  max-inline-size: 94%;
  min-inline-size: 45%
}
.message.own {
  background: #eef1fa;
  border-color: #dfe4ef;
  align-self: flex-end;
  border-radius: 10px 10px 10px 3px
}
.message strong {
  font-size: 10px
}
.message p {
  font-size: 12px;
  margin-block: 7px;
  white-space: pre-wrap;
  overflow-wrap: anywhere
}
.message time {
  font-size: 9px;
  color: var(--muted);
  display: block
}
/* مدیریت حساب و انتساب کمیته‌ها؛ جدول سابقه در ظرف اسکرول افقی محصور است. */
.admin-user-list {
  display: grid;
  gap: 18px
}
.admin-user summary {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 20px;
  cursor: pointer;
  font-size: 12px
}
.admin-user summary strong {
  font-size: 14px
}
.admin-user summary small {
  display: block;
  color: var(--muted);
  font-size: 10px;
  margin-block-start: 4px
}
.admin-user[open] summary {
  padding-block-end: 20px;
  margin-block-end: 23px;
  border-block-end: 1px solid var(--line)
}
.assignment-row {
  display: grid;
  grid-template-columns: 1fr 130px 150px;
  align-items: center;
  gap: 20px;
  padding: 12px 0;
  border-block-end: 1px solid var(--line)
}
.assignment-row .field {
  margin: 0;
  font-size: 10px
}
.assignment-row .field select {
  margin-block-start: 3px
}
.assignment-row>.check:first-child {
  font-weight: 550
}
.table-wrap {
  overflow-x: auto;
  background: white;
  border: 1px solid var(--line);
  border-radius: 7px
}
table {
  border-collapse: collapse;
  inline-size: 100%;
  font-size: 11px;
  min-inline-size: 700px
}
caption {
  text-align: start;
  padding: 17px 20px;
  font-weight: 700;
  font-size: 16px
}
th,td {
  text-align: start;
  padding: 13px 17px;
  border-block-start: 1px solid var(--line)
}
th {
  background: #f3f5fc;
  font-size: 11px
}
td bdi {
  display: block;
  max-inline-size: 240px;
  overflow-wrap: anywhere;
  font-size: 10px
}
.text-button {
  background: transparent;
  color: inherit;
  font-size: 11px;
  text-decoration: underline;
  min-block-size: 36px;
  padding: 5px 12px
}
/* راهنمای نصب PWA و APK؛ تصویر گوشی در این بخش با CSS ساخته شده است. */
.install-layout {
  display: grid;
  grid-template-columns: .85fr 1.15fr;
  gap: 65px;
  align-items: center;
  max-inline-size: 1080px
}
.install-layout>div>h2 {
  font-size: 30px;
  margin-block: 10px
}
.install-layout>div>p {
  font-size: 13px;
  line-height: 2.2
}
.install-illustration {
  background: #eef1fa;
  min-block-size: 550px;
  border-radius: 150px 150px 10px 10px;
  display: grid;
  place-items: center;
  position: relative;
  padding: 35px
}
.phone-frame {
  background: var(--ink);
  border: 7px solid #26304d;
  border-radius: 37px;
  inline-size: 240px;
  min-block-size: 440px;
  color: white;
  padding: 37px 19px 20px;
  box-shadow: 0 20px 25px #12205e28;
  position: relative;
  transform: rotate(-4deg)
}
.phone-notch {
  position: absolute;
  inline-size: 80px;
  block-size: 17px;
  top: 0;
  inset-inline-start: 50%;
  transform: translateX(50%);
  background: #26304d;
  border-radius: 0 0 12px 12px
}
.phone-frame>.eyebrow {
  color: #cad5f5;
  font-size: 8px
}
.phone-frame h2 {
  color: white;
  font-size: 27px;
  margin-block: 10px 25px;
  line-height: 1.7
}
.phone-card {
  background: #fff;
  color: var(--ink);
  padding: 14px;
  border-radius: 8px;
  margin-block: 13px
}
.phone-card .icon {
  color: var(--gold-dark);
  margin-block-end: 9px
}
.phone-card strong {
  font-size: 10px;
  display: block
}
.phone-card span {
  display: block;
  font-size: 8px;
  color: var(--muted);
  margin-block-start: 3px
}
.phone-caption {
  font-size: 8px;
  color: #bac6e1;
  display: block;
  text-align: center;
  margin-block-start: 20px
}
.install-help {
  margin-block: 25px;
  padding: 22px
}
.install-help h3 {
  font-size: 16px
}
.install-help p {
  font-size: 11px;
  line-height: 2.2
}
.is-marketplace .market-nav {
  font-weight: 700
}
/* نمایشگر پهن: افزایش محدود پوسته و تصویر شاخص، بدون کشیدگی نامحدود متن. */
@media(min-width:1550px) {
  :root {
    --shell: 1360px
  }
  .lead-story,.lead-story-content {
    min-block-size: 475px
  }
  .lead-story h2 {
    font-size: 29px
  }
  .home-intro {
    padding-block: 39px 31px
  }
  .home-title h1 {
    font-size: 36px
  }
  .main-nav {
    gap: 46px
  }
}
/* لپ‌تاپ کوچک: کاهش فاصله‌ها و تعداد ستون میان‌برها. */
@media(max-width:1150px) {
  .shell {
    inline-size: calc(100% - 44px)
  }
  .main-nav {
    gap: 23px
  }
  .main-nav a {
    font-size: 11px
  }
  .brand strong {
    font-size: 20px
  }
  .masthead-actions .button {
    padding-inline: 16px;
    font-size: 11px
  }
  .lead-story,.lead-story-content {
    min-block-size: 420px
  }
  .lead-story h2 {
    font-size: 22px
  }
  .lead-story-content {
    padding: 25px
  }
  .heritage-teaser,.member-teaser {
    padding: 21px
  }
  .member-teaser h2 {
    font-size: 18px
  }
  .service-item {
    padding-inline: 15px;
    gap: 9px
  }
  .service-item strong {
    font-size: 10px
  }
  .service-arrow {
    display: none
  }
  .service-item small {
    font-size: 9px
  }
  .footer-grid {
    gap: 28px
  }
  .news-card-body {
    padding: 17px
  }
  .news-card h3 {
    font-size: 14px
  }
  .committee-tile {
    padding: 24px 20px
  }
  .committee-tile h3 {
    font-size: 13px
  }
  .committee-layout {
    grid-template-columns: 235px 1fr;
    gap: 20px
  }
  .market-layout {
    grid-template-columns: 200px 1fr;
    gap: 22px
  }
  .listing-card {
    padding: 20px
  }
  .listing-page {
    grid-template-columns: 1.15fr 1fr
  }
  .install-layout {
    gap: 35px
  }
  .auth-layout {
    gap: 50px
  }
  .dashboard-services {
    grid-template-columns: repeat(2,minmax(0,1fr))
  }
}
/* تبلت: بازآرایی ستون‌های محتوایی و پنل‌های جانبی. */
@media(max-width:900px) {
  .utility-inner {
    font-size: 10px
  }
  .brand strong {
    font-size: 18px
  }
  .brand small {
    font-size: 9px
  }
  .brand-mark {
    inline-size: 43px;
    block-size: 50px
  }
  .brand-mark svg {
    inline-size: 43px;
    block-size: 43px
  }
  .masthead {
    min-block-size: 95px;
    gap: 15px
  }
  .masthead-actions .membership-shortcut {
    display: none
  }
  .main-nav {
    gap: 20px;
    justify-content: space-between
  }
  .main-nav .market-nav {
    margin-inline-start: 0
  }
  .main-nav a {
    font-size: 10px
  }
  .home-title h1 {
    font-size: 27px
  }
  .home-intro>p {
    font-size: 10px;
    max-inline-size: 370px
  }
  .lead-grid {
    grid-template-columns: 1.25fr 1fr;
    gap: 16px
  }
  .lead-story,.lead-story-content {
    min-block-size: 405px
  }
  .lead-story h2 {
    font-size: 20px
  }
  .heritage-teaser h2 {
    font-size: 29px
  }
  .member-teaser h2 {
    font-size: 16px
  }
  .member-teaser p {
    font-size: 10px
  }
  .service-strip {
    grid-template-columns: repeat(2,1fr);
    padding-block: 8px
  }
  .service-item {
    padding: 17px 22px
  }
  .service-item:nth-child(2) {
    border: 0
  }
  .service-item:nth-child(-n+2) {
    border-block-end: 1px solid var(--line)
  }
  .service-item strong {
    font-size: 12px
  }
  .service-item small {
    font-size: 10px
  }
  .service-arrow {
    display: block
  }
  .price-item {
    padding-inline: 12px
  }
  .price-item>span {
    font-size: 10px
  }
  .price-item>strong {
    font-size: 20px
  }
  .section {
    padding-block: 40px 50px
  }
  .section-heading h2 {
    font-size: 22px
  }
  .news-grid {
    gap: 17px
  }
  .news-card-body {
    padding: 15px
  }
  .news-card .meta {
    font-size: 8px;
    gap: 5px
  }
  .news-card .tag {
    font-size: 8px;
    padding-inline: 6px
  }
  .news-card h3 {
    font-size: 13px
  }
  .committee-grid {
    grid-template-columns: repeat(3,minmax(0,1fr))
  }
  .join-band {
    gap: 25px;
    padding-block: 40px
  }
  .join-band h2 {
    font-size: 20px
  }
  .join-band p {
    font-size: 11px
  }
  .footer-grid {
    grid-template-columns: 1.2fr 1fr 1fr;
    gap: 30px
  }
  .footer-grid>div:last-child {
    grid-column: 1/-1;
    display: grid;
    grid-template-columns: 1fr 2fr 1fr;
    gap: 20px;
    align-items: start
  }
  .footer-grid>div:last-child h2 {
    grid-column: 1/-1;
    margin: 0
  }
  .footer-grid>div:last-child p {
    margin: 0
  }
  .footer-grid>div:last-child a {
    margin: 0
  }
  .page-head h1 {
    font-size: 29px
  }
  .page-head p {
    font-size: 11px
  }
  .heritage-layout {
    gap: 28px
  }
  .heritage-layout h2 {
    font-size: 24px
  }
  .auth-layout {
    gap: 35px
  }
  .auth-message h2 {
    font-size: 31px
  }
  .auth-panel {
    padding: 24px
  }
  .committee-layout {
    grid-template-columns: 1fr
  }
  .committee-members .member-row {
    display: inline-flex;
    margin-inline-end: 20px
  }
  .market-layout {
    grid-template-columns: 1fr
  }
  .market-sidebar {
    border: 0;
    padding: 0
  }
  .market-sidebar .workflow {
    display: grid;
    grid-template-columns: repeat(4,minmax(0,1fr));
    gap: 10px
  }
  .workflow li:not(:last-child):after {
    display: none
  }
  .market-sidebar>.small {
    display: none
  }
  .listing-page {
    grid-template-columns: 1fr
  }
  .conversation {
    max-inline-size: none
  }
  .messages {
    max-block-size: 440px
  }
  .directory-grid {
    grid-template-columns: repeat(2,minmax(0,1fr))
  }
  .install-layout {
    grid-template-columns: .8fr 1.2fr;
    gap: 30px
  }
  .install-illustration {
    min-block-size: 470px;
    padding: 25px
  }
  .phone-frame {
    inline-size: 205px;
    min-block-size: 410px;
    padding-inline: 15px
  }
  .phone-frame h2 {
    font-size: 24px
  }
  .install-layout>div>h2 {
    font-size: 26px
  }
  .assignment-row {
    grid-template-columns: 1fr 110px 125px;
    gap: 14px
  }
  .filters .field {
    min-inline-size: 150px
  }
  .filters .grow {
    flex-basis: 100%
  }
  .filters .button {
    margin-inline-start: auto
  }
  .board-card h3 {
    font-size: 15px
  }
}
/* موبایل: منوی جمع‌شونده، فرم‌های تک‌ستونی و کنترل‌های مناسب لمس. */
@media(max-width:680px) {
  .shell {
    inline-size: calc(100% - 32px)
  }
  .utility-inner {
    min-block-size: 31px;
    font-size: 8px
  }
  .utility-end {
    gap: 10px
  }
  .utility-end a,.pilot-label {
    display: none
  }
  .masthead {
    min-block-size: 83px;
    gap: 6px
  }
  .brand {
    gap: 8px;
    min-inline-size: 0;
    flex-shrink: 1
  }
  .brand strong {
    font-size: 14px;
    line-height: 1.9
  }
  .brand small {
    font-size: 8px;
    white-space: nowrap
  }
  .brand-mark {
    inline-size: 35px;
    block-size: 42px;
    flex-shrink: 0
  }
  .brand-mark svg {
    inline-size: 35px;
    block-size: 39px
  }
  .masthead-actions {
    gap: 5px;
    flex-shrink: 0
  }
  .masthead-actions .button {
    font-size: 9px;
    padding: 8px 10px;
    min-block-size: 37px
  }
  .menu-button {
    display: block;
    min-inline-size: 35px;
    min-block-size: 38px;
    font-size: 21px
  }
  .nav-wrap {
    border-block-start: 0
  }
  .main-nav {
    display: none;
    padding-block: 10px 18px;
    min-block-size: 0;
    gap: 0
  }
  .main-nav.is-open {
    display: flex;
    flex-direction: column
  }
  .main-nav a {
    font-size: 12px;
    min-block-size: 44px;
    padding: 9px 10px;
    border-block-start: 1px solid #edf0eb
  }
  .main-nav a:after {
    display: none
  }
  .main-nav a[aria-current] {
    background: #f1f3fa
  }
  .main-nav .market-nav {
    justify-content: space-between
  }
  .home-intro {
    display: block;
    padding-block: 24px 20px
  }
  .home-title h1 {
    font-size: 28px
  }
  .home-title .eyebrow {
    font-size: 9px
  }
  .home-intro>p {
    font-size: 10px;
    max-inline-size: none;
    margin-block-start: 8px;
    line-height: 2
  }
  .home-intro>p br {
    display: none
  }
  .lead-grid {
    grid-template-columns: 1fr;
    gap: 14px
  }
  .lead-story,.lead-story-content {
    min-block-size: 360px
  }
  .lead-story-content {
    padding: 23px
  }
  .lead-story h2 {
    font-size: 22px;
    line-height: 1.9;
    max-inline-size: 450px
  }
  .lead-story>img {
    object-position: center 30%
  }
  .lead-story-bottom {
    font-size: 9px
  }
  .lead-side {
    grid-template-columns: 1fr 1fr;
    grid-template-rows: auto;
    gap: 13px
  }
  .heritage-teaser,.member-teaser {
    padding: 20px 16px;
    min-block-size: 220px
  }
  .heritage-teaser .eyebrow {
    font-size: 8px;
    line-height: 2
  }
  .heritage-teaser h2 {
    font-size: 26px
  }
  .heritage-teaser p {
    font-size: 9px
  }
  .heritage-teaser .text-link {
    font-size: 9px;
    line-height: 2
  }
  .member-teaser .eyebrow {
    font-size: 9px
  }
  .member-teaser h2 {
    font-size: 17px;
    line-height: 1.95
  }
  .member-teaser p {
    font-size: 9px;
    line-height: 2
  }
  .member-teaser .text-link {
    font-size: 9px;
    line-height: 2
  }
  .service-strip {
    margin-block: 19px 25px
  }
  .service-item {
    padding: 15px 12px;
    gap: 9px
  }
  .service-icon {
    inline-size: 28px
  }
  .service-icon .icon {
    inline-size: 24px;
    block-size: 24px
  }
  .service-item strong {
    font-size: 10px
  }
  .service-item small {
    font-size: 8px
  }
  .service-arrow {
    display: none
  }
  .prices-section {
    padding-block: 17px 20px
  }
  .prices-heading {
    gap: 12px;
    flex-wrap: wrap
  }
  .prices-heading h2 {
    font-size: 13px
  }
  .prices-heading>span {
    font-size: 8px
  }
  .prices-heading>a {
    font-size: 9px
  }
  .price-grid {
    grid-template-columns: repeat(2,minmax(0,1fr));
    gap: 18px 0
  }
  .price-item {
    padding-inline: 15px;
    border: 0;
    border-inline-end: 1px solid #dfe4ef
  }
  .price-item:nth-child(2n) {
    border: 0
  }
  .price-item:first-child {
    padding-inline-start: 15px
  }
  .price-item:last-child {
    grid-column: 1/-1;
    border: 0;
    border-block-start: 1px solid #dfe4ef;
    padding-block-start: 15px
  }
  .price-item>span {
    font-size: 11px
  }
  .price-item>strong {
    font-size: 23px
  }
  .price-item>small {
    font-size: 9px
  }
  .section {
    padding-block: 31px 40px
  }
  .section-heading {
    gap: 16px;
    margin-block-end: 20px
  }
  .section-heading .eyebrow {
    font-size: 9px
  }
  .section-heading h2 {
    font-size: 20px
  }
  .section-heading>.text-link {
    font-size: 10px;
    gap: 5px;
    white-space: nowrap
  }
  .news-grid {
    grid-template-columns: 1fr;
    gap: 20px
  }
  .news-image {
    aspect-ratio: 1.85
  }
  .news-card-body {
    padding: 19px 21px
  }
  .news-card h3 {
    font-size: 17px
  }
  .news-card .meta {
    font-size: 10px
  }
  .news-card .tag {
    font-size: 9px
  }
  .news-card .text-link {
    font-size: 11px
  }
  .committee-grid {
    grid-template-columns: repeat(2,minmax(0,1fr));
    gap: 12px
  }
  .committee-tile {
    padding: 23px 17px;
    gap: 8px
  }
  .committee-tile>.icon {
    inline-size: 27px;
    block-size: 27px
  }
  .committee-tile h3 {
    font-size: 13px
  }
  .committee-tile .text-link {
    font-size: 9px
  }
  .committee-number {
    font-size: 19px;
    inset-inline-end: 17px;
    top: 16px
  }
  .join-band {
    display: block;
    padding-block: 34px 40px
  }
  .join-band h2 {
    font-size: 22px
  }
  .join-band .eyebrow {
    font-size: 10px
  }
  .join-band p {
    font-size: 11px;
    margin-block: 12px 22px
  }
  .site-footer {
    padding-block-start: 32px
  }
  .footer-grid {
    grid-template-columns: 1fr 1fr;
    gap: 28px 25px;
    padding-block-end: 30px
  }
  .footer-intro {
    grid-column: 1/-1
  }
  .site-footer .footer-brand {
    font-size: 19px;
    margin-block-end: 10px
  }
  .footer-signature {
    margin-block-start: 10px
  }
  .footer-grid>div:last-child {
    display: block
  }
  .footer-grid>div:last-child h2 {
    margin-block-end: 12px
  }
  .footer-grid>div:last-child a {
    margin-block: 10px
  }
  .footer-bottom {
    display: block;
    font-size: 8px;
    padding-block: 17px
  }
  .footer-bottom span {
    display: block;
    margin-block: 4px
  }
  .page-head-inner {
    display: block;
    padding-block: 25px 29px
  }
  .page-head .eyebrow {
    font-size: 10px
  }
  .page-head h1 {
    font-size: 26px;
    letter-spacing: -.7px
  }
  .page-head p {
    font-size: 11px;
    line-height: 2.1
  }
  .page-head .button {
    margin-block-start: 18px
  }
  .panel {
    padding: 21px
  }
  .panel h2 {
    font-size: 18px
  }
  .panel p {
    font-size: 12px
  }
  .form-grid {
    grid-template-columns: 1fr;
    gap: 0
  }
  .field {
    font-size: 12px
  }
  .field input,.field select,.field textarea {
    font-size: 13px;
    min-block-size: 47px
  }
  .privacy-options {
    padding: 17px
  }
  .privacy-options .check {
    display: flex;
    margin-inline-end: 0
  }
  .button {
    font-size: 12px;
    min-block-size: 45px;
    padding: 10px 18px
  }
  .filters {
    padding: 17px;
    gap: 14px
  }
  .filters .field,.filters .grow {
    min-inline-size: 0;
    flex-basis: 100%
  }
  .filters .button {
    inline-size: 100%;
    margin: 0
  }
  .tabs {
    gap: 16px 22px;
    margin-block-end: 22px
  }
  .tabs a {
    font-size: 11px;
    padding-block: 9px
  }
  .auth-layout {
    grid-template-columns: 1fr;
    gap: 26px;
    padding-block: 29px 40px
  }
  .auth-message h2 {
    font-size: 28px
  }
  .auth-message h2 br {
    display: none
  }
  .auth-message>p {
    max-inline-size: none;
    font-size: 10px
  }
  .feature-list {
    display: none
  }
  .auth-message .text-link {
    font-size: 10px
  }
  .auth-panel {
    padding: 24px
  }
  .dashboard-services {
    grid-template-columns: 1fr 1fr;
    gap: 13px
  }
  .dashboard-service {
    padding: 21px 16px
  }
  .dashboard-service h2 {
    font-size: 14px
  }
  .dashboard-service p {
    font-size: 10px
  }
  .dashboard-service .icon {
    inline-size: 27px;
    block-size: 27px;
    margin-block-end: 12px
  }
  .dashboard-service .text-link {
    font-size: 10px
  }
  .record-row {
    flex-wrap: wrap;
    gap: 5px
  }
  .record-row strong {
    inline-size: 100%;
    font-size: 12px
  }
  .record-row span {
    font-size: 10px
  }
  .committee-members {
    display: block
  }
  .committee-layout {
    gap: 20px
  }
  .committee-members .member-row {
    display: inline-flex;
    margin-inline-end: 20px;
    border: 0
  }
  .committee-members .member-row .avatar {
    inline-size: 37px;
    block-size: 37px
  }
  .record-card h3 {
    font-size: 16px
  }
  .record-card p {
    font-size: 12px
  }
  .record-footer {
    font-size: 9px
  }
  .inline-form {
    gap: 13px
  }
  .inline-form .field {
    flex: 1
  }
  .inline-form .button {
    font-size: 10px;
    padding-inline: 12px
  }
  .committee-work>div>h2 {
    font-size: 20px
  }
  .vote-option {
    font-size: 12px
  }
  .result-label {
    font-size: 11px
  }
  .directory-grid {
    grid-template-columns: 1fr
  }
  .listing-grid {
    grid-template-columns: 1fr;
    gap: 18px
  }
  .listing-card h2 {
    font-size: 19px
  }
  .listing-card {
    padding: 22px
  }
  .listing-card p {
    font-size: 12px
  }
  .listing-page {
    gap: 22px
  }
  .listing-page .actions>.button {
    inline-size: 100%
  }
  .detail-grid {
    gap: 20px 12px
  }
  .listing-page .muted-panel {
    padding: 17px
  }
  .market-sidebar .workflow {
    grid-template-columns: 1fr 1fr;
    gap: 10px
  }
  .workflow li {
    padding-block-end: 8px
  }
  .assignment-row {
    grid-template-columns: 1fr 1fr;
    gap: 10px;
    padding-block: 17px
  }
  .assignment-row>.check:first-child {
    grid-column: 1/-1;
    margin-block: 0
  }
  .assignment-row .check {
    font-size: 11px
  }
  .admin-user summary {
    gap: 14px;
    align-items: flex-start
  }
  .admin-user summary>span:last-child {
    font-size: 9px;
    white-space: nowrap
  }
  .admin-user summary strong {
    font-size: 13px
  }
  .about-intro {
    gap: 20px;
    align-items: flex-start;
    margin-block: 0 40px
  }
  .about-seal {
    inline-size: 80px;
    block-size: 110px
  }
  .about-seal .icon {
    inline-size: 42px;
    block-size: 42px
  }
  .about-intro h2 {
    font-size: 22px
  }
  .about-intro p {
    font-size: 12px;
    line-height: 2
  }
  .about-intro .eyebrow {
    font-size: 9px
  }
  .board-grid {
    grid-template-columns: 1fr;
    gap: 15px
  }
  .board-card {
    padding: 22px
  }
  .board-card .avatar {
    inline-size: 56px;
    block-size: 56px
  }
  .board-card h3 {
    font-size: 18px
  }
  .two-columns {
    grid-template-columns: 1fr
  }
  .heritage-layout {
    grid-template-columns: 1fr;
    gap: 30px
  }
  .heritage-layout>div>img {
    aspect-ratio: 1.25
  }
  .heritage-layout h2 {
    font-size: 26px
  }
  .event-row {
    gap: 15px
  }
  .event-row h3 {
    font-size: 19px
  }
  .article h1 {
    font-size: 27px;
    margin-block: 10px 20px
  }
  .article-image {
    margin-block: 22px
  }
  .article-body {
    font-size: 13px
  }
  .install-layout {
    grid-template-columns: 1fr;
    gap: 35px
  }
  .install-illustration {
    min-block-size: 460px;
    max-inline-size: 360px;
    inline-size: 100%;
    margin-inline: auto
  }
  .phone-frame {
    inline-size: 218px;
    min-block-size: 400px
  }
  .install-layout>div>h2 {
    font-size: 28px
  }
  .install-layout>div>.actions {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 10px
  }
  .install-layout>div>.actions .button {
    font-size: 11px;
    padding-inline: 12px
  }
  .notice {
    padding: 15px 17px;
    font-size: 11px
  }
  .toast {
    bottom: 18px;
    padding: 14px 20px;
    font-size: 11px;
    inline-size: max-content
  }
  .loading {
    padding-block: 55px
  }
}
/* موبایل باریک: تنظیم تکمیلی برای جلوگیری از سرریز برند، کارت و دکمه‌ها. */
@media(max-width:380px) {
  .shell {
    inline-size: calc(100% - 24px)
  }
  .brand strong {
    font-size: 12px
  }
  .brand small {
    font-size: 7px
  }
  .brand-mark {
    inline-size: 30px
  }
  .brand-mark svg {
    inline-size: 30px
  }
  .masthead-actions .button {
    padding-inline: 8px;
    font-size: 8px;
    gap: 4px
  }
  .menu-button {
    min-inline-size: 30px;
    font-size: 19px
  }
  .home-title h1 {
    font-size: 25px
  }
  .lead-story,.lead-story-content {
    min-block-size: 330px
  }
  .lead-story-content {
    padding: 20px
  }
  .lead-story h2 {
    font-size: 19px
  }
  .lead-side {
    grid-template-columns: 1fr
  }
  .heritage-teaser,.member-teaser {
    min-block-size: 175px;
    padding: 20px 23px
  }
  .member-teaser h2 {
    font-size: 20px
  }
  .member-teaser p {
    font-size: 11px
  }
  .heritage-teaser h2 {
    font-size: 30px
  }
  .service-item {
    padding-inline: 9px;
    gap: 7px
  }
  .service-item strong {
    font-size: 9px
  }
  .service-item small {
    font-size: 7px
  }
  .section-heading h2 {
    font-size: 18px
  }
  .section-heading>.text-link {
    font-size: 9px
  }
  .committee-tile {
    padding: 21px 13px
  }
  .committee-tile h3 {
    font-size: 12px
  }
  .dashboard-services {
    grid-template-columns: 1fr
  }
  .board-grid {
    gap: 13px
  }
  .about-intro {
    gap: 15px
  }
  .about-seal {
    inline-size: 60px;
    block-size: 90px
  }
  .about-intro h2 {
    font-size: 20px
  }
  .page-head h1 {
    font-size: 24px
  }
  .phone-frame {
    inline-size: 205px
  }
  .install-layout>div>.actions {
    grid-template-columns: 1fr
  }
  .news-card h3 {
    font-size: 16px
  }
}
/* احترام به تنظیم کاهش حرکت سیستم؛ جلوه‌های جابه‌جایی و انیمیشن حذف می‌شوند. */
@media(prefers-reduced-motion:reduce) {
  *,*:before,*:after {
    scroll-behavior: auto!important;
    transition: none!important;
    animation: none!important
  }
  .committee-tile:hover,.news-card:hover .news-image img {
    transform: none
  }
}
/* حالت کنتراست اجباری: مرز کنترل‌ها و خوانایی متن روی تصاویر حفظ می‌شود. */
@media(forced-colors:active) {
  .button,.tag,.panel,.committee-tile,.service-strip,.vote-option {
    border: 1px solid CanvasText
  }
  .lead-story-content,.heritage-teaser>div {
    background: Canvas;
    color: CanvasText
  }
  .lead-story h2,.heritage-teaser h2 {
    color: CanvasText
  }
}
/* چاپ صفحه‌های عمومی: ناوبری و کنترل تعاملی حذف و پنل‌ها تا حد ممکن یک‌پارچه چاپ می‌شوند. */
@media print {
  .utility,.masthead-actions,.nav-wrap,.site-footer,.toast,.filters,.tabs,.form-actions {
    display: none
  }
  .shell {
    inline-size: 100%
  }
  .section {
    padding-block: 20px
  }
  .panel {
    break-inside: avoid
  }
  .page-head {
    background: transparent
  }
  .site-header {
    border-block-end: 1px solid #aaa
  }
  .lead-story,.lead-story-content {
    min-block-size: 350px
  }
  a {
    color: inherit
  }
}
/* تکمیل پروفایل و ابزار بازنشانی رمز مدیریت؛ ترتیب انتهایی برای حفظ تقدم همین قواعد است. */
.password-panel {
  margin-block-start: 30px
}
.password-reset {
  border-block-start: 1px solid var(--line);
  padding-block-start: 20px;
  margin-block-start: 24px
}
.password-reset[open] {
  padding-block-start: 20px
}
/* کتابخانه و خدمات: کارت‌های هم‌خانواده با پوسته انجمن، بدون ارتفاع ثابت برای متن فارسی. */
.book-grid,.membership-journey { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:24px }
.book-grid:has(.empty-state) { grid-template-columns:1fr }
.book-card { display:flex; flex-direction:column; gap:24px; min-inline-size:0 }
.book-card h2 { font-size:1.2rem; overflow-wrap:anywhere }
.book-cover { min-block-size:180px; padding:24px; display:flex; flex-direction:column; justify-content:space-between; background:var(--ink,#12205e); color:#e0e6f7; border-inline-start:8px solid #7186bd }
.book-cover strong { font-family:serif; font-size:2.5rem; letter-spacing:.12em }
.book-card .actions { margin-block-start:18px }
.book-delete { border-block-start:1px solid var(--line); margin-block-start:24px; padding-block-start:20px }
.office-hours { margin-block:16px 28px }
.office-hours div { display:flex; justify-content:space-between; flex-wrap:wrap; gap:12px; padding-block:12px; border-block-end:1px solid var(--line) }
.office-hours dd { margin:0; font-weight:700 }
.service-guidance { align-self:start }
.service-guidance li { margin-block:12px }
.request-list { display:grid; gap:16px; margin-block:24px }
.service-request { min-inline-size:0 }
.service-request summary { display:flex; justify-content:space-between; align-items:center; gap:20px; cursor:pointer; padding-block:8px }
.service-request summary small { display:block; color:var(--muted); margin-block-start:6px }
.service-request p,.service-request strong,.request-history { overflow-wrap:anywhere; white-space:pre-wrap }
.request-history { border-inline-start:2px solid var(--line); padding-inline-start:28px }
.request-history li { margin-block:20px }
.request-history time { font-size:.8rem; color:var(--muted) }
.stat-number { font-size:2.5rem; color:var(--gold,#334b96) }
.membership-journey .panel { display:flex; flex-direction:column; align-items:start }
.membership-journey .button,.membership-journey .text-link { margin-block-start:auto }
/* ناوبری متراکم در عرض متوسط می‌شکند؛ مخفی‌کردن پیوندهای خدمات راه‌حل کمبود جا نیست. */
.main-nav { flex-wrap:wrap }
@media (max-width:1050px) { .book-grid {grid-template-columns:repeat(2,minmax(0,1fr))} .membership-journey {grid-template-columns:1fr} }
@media (max-width:600px) { .book-grid {grid-template-columns:1fr} .service-request summary {align-items:start; flex-direction:column; gap:12px} }
.app-shortcuts { display:none }
@media (display-mode:standalone) and (max-width:800px) {
  body {padding-block-end:calc(70px + env(safe-area-inset-bottom))}
  .app-shortcuts {display:flex; position:fixed; inset-inline:0; inset-block-end:0; z-index:50; background:#fff; border-block-start:1px solid var(--line); padding-block-end:env(safe-area-inset-bottom)}
  .app-shortcuts a {flex:1; text-align:center; padding:20px 3px; font-size:.78rem}
  .app-shortcuts a[aria-current] {color:#263b80; background:#eef1fa; font-weight:700}
  .toast {inset-block-end:calc(86px + env(safe-area-inset-bottom))}
}
/* امنیت حساب: کلید و کد بازیابی در بلوک چپ‌به‌راست و قابل خواندن، بدون خروج از عرض گوشی. */
.security-layout { display: grid; grid-template-columns: minmax(220px, .8fr) minmax(0, 1.2fr); gap: 2rem; align-items: start; }
.security-intro { position: sticky; inset-block-start: 2rem; }
.security-intro p { line-height: 2; }
.security-intro .text-button { display: block; margin-block-start: 1rem; }
#security-content { display: grid; gap: 1.25rem; min-inline-size: 0; }
.security-secret code { display: block; padding: 1rem; font: 1rem/1.8 monospace; overflow-wrap: anywhere; user-select: all; }
.totp-qr { max-inline-size: 280px; margin: 1rem auto; padding: .75rem; background: #fff; color: #111; border-radius: 12px; }
.totp-qr svg { display: block; inline-size: 100%; block-size: auto; }
.recovery-codes { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .75rem; list-style: none; padding: 0; }
.recovery-codes li { padding: .75rem; border: 1px solid #dfe4ef; border-radius: 8px; text-align: center; overflow-wrap: anywhere; }
.recovery-codes code { font: .95rem/1.8 monospace; user-select: all; }
/* کمیته: اسناد و گفت‌وگو از داده خصوصی API ساخته می‌شوند؛ کنترل‌های رسانه همیشه در دسترس‌اند. */
.committee-jump, .meeting-controls { display: flex; flex-wrap: wrap; gap: .65rem; margin-block: 1rem; }
.committee-work > section { margin-block: 2rem; scroll-margin-block-start: 1.5rem; }
.committee-work .form-grid, .committee-work form, .committee-work .panel { min-inline-size: 0; }
.publication-controls { display: grid; gap: .8rem; margin-block-start: 1rem; }
.publication-controls form { padding-block-start: 1rem; border-block-start: 1px solid #dfe4ef; }
.meeting-card { margin-block-end: 1rem; }
.committee-chat-messages { max-block-size: 28rem; overflow-y: auto; display: grid; gap: .8rem; padding: .5rem; overscroll-behavior: contain; }
.committee-message { padding: .9rem 1rem; background: #f1f3fa; border-radius: 12px; border-inline-start: 3px solid #7186bd; overflow-wrap: anywhere; }
.committee-message.own { background: #e9f1ed; border-color: #245646; }
.committee-message > div { display: flex; justify-content: space-between; flex-wrap: wrap; gap: .5rem; }
.committee-message small { color: #625b4e; }
.meeting-media { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 210px), 1fr)); gap: .75rem; }
.meeting-participant { background: #16251f; color: #fff; border-radius: 12px; overflow: hidden; }
.meeting-participant video { display: block; inline-size: 100%; max-block-size: 350px; object-fit: contain; }
.meeting-participant audio { inline-size: 100%; }
.meeting-participant p { padding: .5rem .8rem; margin: 0; }
.meeting-controls .button[aria-pressed="true"] { background: #245646; color: #fff; }
.button.danger { background: #94392e; color: #fff; }
#committee-chat-status:not(:empty) { padding: .8rem; margin-block-end: .75rem; border: 1px solid #7186bd; border-radius: 8px; }
@media (max-width: 760px) {
  .security-layout { grid-template-columns: minmax(0, 1fr); }
  .security-intro { position: static; }
  .committee-jump .button, .meeting-controls .button { flex: 1 1 140px; }
}
@media (max-width: 380px) { .recovery-codes { grid-template-columns: minmax(0, 1fr); } }
@media (prefers-reduced-motion: reduce) { html { scroll-behavior: auto; } }

/* لید خبر و عکس تحریریه: خوانایی روی تصویر، فرم راست‌چین و پیش‌نمایش بدون اسکرول افقی. */
.lead-story-summary { color:#f2f5f7; font-size:15px; line-height:1.95; margin:0 0 20px; max-inline-size:650px; overflow-wrap:anywhere; text-wrap:pretty }
.lead-story:has(.lead-story-summary):after { background:linear-gradient(0deg,#0b143ff7 0%,#0b143fc9 50%,#0b143f15 100%) }
.news-card-lead { color:var(--muted); font-size:13px; line-height:1.9; overflow-wrap:anywhere; display:-webkit-box; -webkit-line-clamp:3; -webkit-box-orient:vertical; overflow:hidden }
.article-lead { font-size:18px; line-height:2; font-weight:500; padding-inline-start:18px; border-inline-start:3px solid var(--gold); overflow-wrap:anywhere; margin-block:18px 26px }
.editorial-image { margin:20px 0; border:1px solid var(--line); border-radius:8px; padding:20px; min-inline-size:0 }
.editorial-image legend { padding-inline:8px; font-weight:650 }
.editorial-image-preview { inline-size:min(100%,480px); block-size:auto; max-block-size:270px; aspect-ratio:16/10; object-fit:contain; background:var(--paper); border-radius:6px; margin-block-end:16px }
.editorial-image [hidden] { display:none }
.editorial-image input[type=file] { max-inline-size:100%; padding:12px; cursor:pointer }
.editorial-image input[type=file]::file-selector-button { font:inherit; border:1px solid var(--line); border-radius:6px; padding:8px 12px; margin-inline-end:10px; cursor:pointer }
.editorial-image [data-image-status] { overflow-wrap:anywhere }
.editorial-image [role=alert] { color:var(--danger,#a52b36) }
.editorial-archive-choice { margin-block-start:18px }
.editorial-archive-choice summary { cursor:pointer; padding-block:10px }
@media(max-width:640px) { .lead-story-summary { font-size:13px; line-height:1.95 } .editorial-image { padding:14px } .article-lead { font-size:16px; padding-inline-start:12px } }
@media(forced-colors:active) { .lead-story-summary { color:CanvasText } }

/* راهنمای تحریریه و برچسب‌های قابل جست‌وجو؛ در موبایل بدون ستون ثابت نمایش داده می‌شوند. */
.editorial-seo { border:1px solid var(--line); border-radius:12px; padding:20px; margin-block:20px; min-inline-size:0; }
.editorial-seo legend { font-weight:700; padding-inline:8px; }
.editorial-seo-check { line-height:1.9; overflow-wrap:anywhere; }
.article-tags { display:flex; flex-wrap:wrap; align-items:center; gap:8px; margin-block:24px; }
.article-tags a { border:1px solid var(--line); border-radius:8px; padding:6px 12px; text-decoration:none; }

/* ستون‌های ثبت‌نام اندازه ذاتی متن را به عرض ظرف تحمیل نمی‌کنند. */
.auth-layout > * { min-inline-size: 0; }

/* نشان تیره روی زمینه روشن مستقل از رنگ زمینه پایین صفحه خوانا می‌ماند. */
.site-footer .footer-brand { display:inline-flex; align-items:center; gap:12px }
.site-footer .footer-brand img { inline-size:48px; block-size:48px; object-fit:contain; background:#fff; padding:5px; border-radius:8px; flex-shrink:0 }

/* مجله عمومی در کتابخانه: منبع فایل محلی است و در موبایل دکمه دانلود تمام عرض می‌شود. */
.magazine-download{display:grid;grid-template-columns:84px minmax(0,1fr) auto;align-items:center;gap:24px;margin-block-end:36px;border-inline-start:4px solid var(--brand-primary)}
.magazine-file{display:grid;place-content:center;gap:6px;inline-size:84px;block-size:108px;border-radius:8px;background:var(--brand-primary);color:#fff;text-align:center}
.magazine-file strong{font:700 24px/1.3 Tahoma,sans-serif;letter-spacing:.06em}.magazine-file span{font-size:12px}.magazine-copy{min-inline-size:0}.magazine-copy h2{font-size:23px}.magazine-copy p{margin-block:8px}.magazine-copy .eyebrow{color:var(--brand-accent)}.library-books-title{margin-block-end:20px}
@media(max-width:640px){.magazine-download{grid-template-columns:64px minmax(0,1fr);gap:16px}.magazine-file{inline-size:64px;block-size:94px}.magazine-copy h2{font-size:19px}.magazine-copy p{font-size:12px}.magazine-download>.button{grid-column:1/-1;inline-size:100%}}


/* رزرو جای کارت‌ها هنگام ورود داخلی به خانه؛ برای HTML اولیه سرور هیچ جایگزینی انجام نمی‌شود. */
.home-news-placeholder .news-card-body { min-block-size: 12rem; }
.home-placeholder-line { block-size: 1rem; margin-block: 1rem; border-radius: 0.3rem; background: var(--brand-soft); }
