/* ============================================================
   پوستهٔ ۹ — «سکان»
   ============================================================
   نمونهٔ تأییدشده: کاغذِ گرمِ خودِ پنل، مرکبِ سرمه‌ای، یک لحظهٔ
   برنجی. ساختار از نمونه، رنگ از هویتِ فعلی.

   چرا پوستهٔ تازه و نه ویرایشِ app.css:
   · با `?th=9` روی همین سایتِ زنده دیده می‌شود، در حالی که برای
     بقیه هیچ‌چیز عوض نشده. تأیید پیش از تحویل، نه بعدش.
   · هیچ HTMLای عوض نمی‌شود؛ پس هیچ سطری از هیچ صفحه‌ای نمی‌تواند
     گم شود. سه بار سرِ همین خوردیم.
   · اگر پسند نشد، برگرداندنش یک عدد است.

   این فایل روی app.css و theme6.css سوار می‌شود و فقط ظاهر را
   عوض می‌کند — نه چیدمان را، نه رفتار را. theme6 لازم است چون
   چیدمانِ KPI و حلقه‌ها و جدول‌ها و قرص‌های بازه و داشبوردِ رصد
   فقط آنجاست؛ بی آن، آن اجزا لخت می‌شوند.

   دستهٔ ۱: اسکلتِ مشترکِ همهٔ صفحه‌ها. اجزای مخصوصِ هر صفحه
   (رصد، تقویم، پرونده، …) در دسته‌های بعدی می‌آیند.

   دو چیز عمداً اینجا نیست:
   · حالتِ شب — app.css دویست‌وهشت رنگِ خام دارد و نیمه‌کاره‌اش
     بدتر از نبودنش است. دستهٔ خودش را دارد.
   · فونتِ «مرکزی» برای عددهای درشت — روی سرور فقط وزیرمتن هست و
     فونت از گوگل بار نمی‌شود (قاعدهٔ خودِ پنل). اگر خواستی، یک
     فایلِ woff2 اضافه می‌کنیم.
   ============================================================ */

/* ---------- ۱ · رنگ‌ها ----------
   نام‌ها همان نام‌های app.css می‌مانند تا هر صفحه‌ای که از آن‌ها
   می‌خورد، بی‌تغییر رنگِ تازه بگیرد. */
:root{
  --paper:#F3F1EC; --card:#FFFFFF; --soft:#FAF8F3;
  --line:#E8E2D6;  --line2:#D8D0BF;
  --ink:#16283A;   --muted:#5C7183; --faint:#8FA3B3;
  --navy:#1B3A57;  --navy2:#0F2B44; --onnavy:#F2F7FB;
  --brass:#9A7A14; --brass-bg:#F6EFD9;
  --green:#217A4B; --green-bg:#E3F1E9;
  --red:#B23B2E;   --red-bg:#F8E8E5;
  --blue:#2C5F8A;  --blue-bg:#E8EFF6;
  --sky:#7FA8C9;

  --sh-1:0 1px 2px rgba(44,42,33,.05),0 4px 16px -6px rgba(44,42,33,.09);
  --sh-2:0 2px 4px rgba(44,42,33,.07),0 10px 28px -8px rgba(44,42,33,.15);
  --sh-brand:0 6px 18px -6px rgba(27,58,87,.45);
  --shadow:var(--sh-1);
  --glass:rgba(250,248,243,.85);
  --r:16px; --r-s:12px;
  --bar-h:56px;
}

/* ---------- عرضِ صفحه ----------
   ستونِ ۷۶۰ پیکسلیِ قدیم مالِ روزی بود که همه‌چیز فهرست بود. حالا
   کارت‌ها و جدول‌ها و نمودارها روی صفحهٔ بزرگ دو طرفشان خالی
   می‌ماند. عرض باز شد، ولی نه تا لبهٔ شیشه: خطِ متن که از حدی
   بلندتر شود، چشم سرِ سطرِ بعد را گم می‌کند.

   «باریک» برای صفحه‌های فرم‌محور (پرونده) همان باریک می‌ماند —
   آنجا خواندن مهم‌تر از پهنا است. */
.wrap{max-width:1440px;padding:12px 16px 14px}
.wrap.narrow{max-width:820px}
.wrap.wide{max-width:1680px}
@media (min-width:1100px){.wrap{padding-inline:24px}}

body{
  background:linear-gradient(180deg,#ECE8DF,var(--paper) 220px) no-repeat,var(--paper);
  font-size:15px;line-height:1.8;
  /* فاصلهٔ پایین = ارتفاعِ داک (۶۷) + فاصله‌اش از لبه (۱۴) + کمی هوا */
  padding-bottom:calc(88px + env(safe-area-inset-bottom));
}
body.plain{padding-bottom:24px}
:focus-visible{outline:2.5px solid var(--navy);outline-offset:2px;border-radius:8px}

/* ---------- ۲ · نوار بالا ----------
   از سرمه‌ایِ توپر به شیشهٔ روشن. موجِ افق — امضای پوسته — با
   background می‌آید نه با HTML، چون قرار نیست به صفحه‌ها دست
   بزنیم. */
.appbar{
  background:var(--glass);color:var(--ink);
  backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);
  border-bottom:1px solid var(--line);box-shadow:none;
  padding:0 14px;position:relative;
}
/* نوارِ بالا اینجا نمی‌چسبد (relative)، پس سربرگِ چسبانِ جدول‌ها از لبهٔ خودِ صفحه — نه با فاصلهٔ
   نواری که دیگر آنجا نیست (app.css، «سربرگِ چسبانِ فهرستِ دانش‌آموزان»، ۸ مهر ۱۴۰۵) */
:root{--stick-top:0px}
.appbar::after{
  /* خطِ افق — صاف. موجِ نمونه اینجا شلوغ می‌شد؛ یک خطِ نازکِ
     سرمه‌ای زیرِ نوار، همان کارِ جداکردن را بی سر و صدا می‌کند. */
  content:"";position:absolute;inset-inline:0;bottom:-2px;height:2px;
  background:linear-gradient(90deg,
    transparent,color-mix(in srgb,var(--navy) 45%,transparent) 12%,
    color-mix(in srgb,var(--navy) 45%,transparent) 88%,transparent);
  pointer-events:none;
}
.appbar .back{
  width:36px;height:36px;border-radius:11px;color:var(--ink);
  background:var(--card);border:1px solid var(--line2);
}
.appbar .back:hover{background:var(--soft);border-color:var(--faint)}
.appbar .ttl b{font-size:16.5px;font-weight:800;letter-spacing:.2px}
.appbar .ttl s{color:var(--muted);font-size:11.5px}
.appbar .act{
  background:var(--card);color:var(--navy);font-weight:700;
  border:1px solid color-mix(in srgb,var(--navy) 30%,transparent);border-radius:11px;
}
.appbar .act:hover{background:var(--soft)}
.appbar .act.hi{background:var(--brass);color:#fff;border-color:var(--brass)}
.appbar .act svg,.appbar .back svg{width:18px;height:18px}

/* ---------- ۳ · نوار پایین — جزیره‌ای ----------
   از نوارِ چسبیده به لبه، به قرصِ شناور. خودِ نوار جزیره می‌شود
   (نه یک لایهٔ پشتش) تا فقط به‌اندازهٔ شش تب پهن باشد، نه تمامِ
   عرضِ صفحه. padding پایینِ body بالاتر زیادتر شده تا آخرین کارت
   زیرش گم نشود. */
.tabbar{
  position:fixed;bottom:14px;right:auto;left:50%;transform:translateX(-50%);
  width:auto;max-width:calc(100% - 20px);
  background:var(--glass);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);
  border:1px solid var(--line);border-top:1px solid var(--line);border-radius:22px;
  box-shadow:var(--sh-2);
  padding:7px 7px calc(7px + env(safe-area-inset-bottom));gap:2px;
}
.tabbar a{
  flex:0 0 auto;min-width:52px;padding:8px 8px 7px;border-radius:15px;
  color:var(--muted);font-weight:700;
}
.tabbar a span{font-size:9.5px;font-weight:700;letter-spacing:-.2px}
.tabbar a svg{width:21px;height:21px}
.tabbar a:hover{color:var(--ink)}
.tabbar a.on{color:var(--onnavy);background:var(--navy);box-shadow:var(--sh-brand)}
.tabbar a.on span{font-weight:800}
.tabbar a i{border:2px solid var(--card);top:1px}

/* ---------- ۴ · کارت و بخش ---------- */
.card,.fcard{
  background:var(--card);border:1px solid var(--line);border-radius:var(--r);
  box-shadow:var(--sh-1);padding:14px 16px;margin-bottom:10px;
}
.hrow .card{padding:10px 12px}
.card.flat,.card.quiet{box-shadow:none}
.card>h2{font-size:15.5px;font-weight:800;letter-spacing:.1px}
.card>.sub{color:var(--muted);font-size:12.5px;line-height:1.75}
.sec{
  font-size:11.5px;font-weight:700;color:var(--muted);letter-spacing:.4px;
  display:flex;align-items:center;gap:8px;
}
.grp{font-size:11.5px;font-weight:800;color:var(--muted);letter-spacing:.3px}
.hint{color:var(--muted);font-size:11.5px;line-height:1.75}

/* ---------- ۵ · دکمه‌ها ---------- */
.btn{
  font-weight:700;font-size:13.5px;line-height:1;border-radius:12px;
  padding:11px 18px;border:1px solid var(--line2);background:var(--card);color:var(--ink);
  transition:transform .13s,box-shadow .13s,background .13s,border-color .13s;
  -webkit-tap-highlight-color:transparent;
}
.btn:hover{transform:translateY(-1px);box-shadow:var(--sh-1);border-color:var(--faint)}
.btn:active{transform:translateY(0)}
.btn.p{background:var(--navy);border-color:var(--navy);color:var(--onnavy);box-shadow:var(--sh-brand)}
.btn.p:hover{background:var(--navy2);border-color:var(--navy2)}
.btn.danger{color:var(--red);background:var(--red-bg);border-color:transparent}
.btn.sm{padding:7px 13px;font-size:12.5px;border-radius:10px}
.btn[disabled]{opacity:.45}

/* ---------- ۶ · سطر و فهرست ---------- */
.row{
  background:var(--card);border:1px solid var(--line);border-radius:var(--r-s);
  padding:11px 13px;box-shadow:var(--sh-1);transition:background .12s,border-color .12s;
}
a.row:hover,button.row:hover{background:var(--soft);border-color:var(--faint)}
.kv{border-bottom:1px dashed var(--line);padding:7px 0}
.kv:last-child{border-bottom:0}

/* ---------- ۷ · تگ و نشان ---------- */
.tag{
  border-radius:99px;padding:3px 11px;font-size:11.5px;font-weight:700;
  background:var(--soft);border:1px solid var(--line);color:var(--muted);
}
.tag.green{background:var(--green-bg);color:var(--green);border-color:transparent}
.tag.brass{background:var(--brass-bg);color:var(--brass);border-color:transparent}
.tag.red{background:var(--red-bg);color:var(--red);border-color:transparent}
.tag.blue{background:var(--blue-bg);color:var(--blue);border-color:transparent}

/* ---------- ۸ · کاشی و منوی خانه ---------- */
.tile{
  background:var(--card);border:1px solid var(--line);border-radius:var(--r-s);
  box-shadow:var(--sh-1);padding:11px 12px 10px;
}
.tile u{font-size:26px;font-weight:800;line-height:1.1}
.tile s{color:var(--muted);font-size:11.5px;font-weight:600}
/* منوی خانه — آیکون و نام سمتِ راست، اطلاعات در بقیهٔ فضا.

   سه قاعده که همه از یک ایراد درآمدند: کارتِ تردد دو ردیف چیپ
   داشت و تقویم یک ردیف، پس محتوا وسط‌چین می‌شد و عنوانِ تردد
   بالاتر از عنوانِ تقویم می‌افتاد.
     ۱ هر کارت یک گریدِ دوسطری است: سطرِ اول آیکون و نام، سطرِ دوم
       اطلاعات. جای هر دو در همهٔ کارت‌ها یکی است.
     ۲ محتوا از بالا می‌چیند (align-content:start)، نه از وسط.
     ۳ همهٔ سطرهای گرید یک ارتفاع دارند (grid-auto-rows:1fr) و هر
       کارت تمامِ خانه‌اش را می‌گیرد — پس همهٔ باکس‌ها هم‌اندازه‌اند. */
.menu{
  display:grid;grid-template-columns:repeat(auto-fill,minmax(258px,1fr));
  gap:8px;grid-auto-rows:1fr;margin-top:10px;
}
.menu a{
  display:grid;grid-template-columns:32px 1fr;column-gap:9px;row-gap:7px;
  align-content:start;align-items:center;height:100%;
  background:var(--card);border:1px solid var(--line);border-radius:var(--r-s);
  padding:10px 12px;margin-bottom:0;box-shadow:var(--sh-1);
  transition:transform .14s,box-shadow .14s,border-color .14s;
}
.menu a:hover{transform:translateY(-2px);box-shadow:var(--sh-2);border-color:var(--line2)}
.menu a .ic{
  grid-row:1;grid-column:1;
  width:32px;height:32px;border-radius:9px;
  background:color-mix(in srgb,var(--navy) 9%,transparent);color:var(--navy);
}
.menu a .ic svg{width:18px;height:18px}
.menu a .bd{grid-row:1;grid-column:2;min-width:0}
.menu a b{font-size:13.5px;font-weight:800;line-height:1.3}
.menu a s{display:none}          /* خطِ توضیحِ ثابت — جایش را عدد گرفت */
.menu a .ar{display:none}
.menu a .mi{grid-row:2;grid-column:1 / -1;align-content:start;padding:0;margin:0;gap:4px}
/* قرصِ خانه یک پله کوچک‌تر از قرصِ عمومی — دوازده کارت باید در یک
   نگاه جا شوند. عرضِ سه‌رقمیِ ثابت سرِ جایش می‌ماند. */
.menu a .mi em{border-color:transparent;background:var(--soft);border-radius:8px;
  padding:0 9px;height:24px;font-size:11px}
.menu a .mi em.g{background:var(--green-bg)}
.menu a .mi em.r{background:var(--red-bg)}

/* کارتِ نام و نقش: یک سلام است نه یک کارت — هرچه کوتاه‌تر، کارت‌های
   واقعی بالاتر می‌آیند و صفحهٔ اول در یک نگاه جا می‌شود. */
.hero{background:transparent;border:0;box-shadow:none;padding:0 2px;margin-bottom:2px}
/* تذکرِ «قدم بعد» جمع‌تر: یک جمله است، نه یک کارت */
.note{padding:8px 12px;font-size:12px;line-height:1.65;margin-bottom:8px}
.hero .mark{width:36px;height:36px;border-radius:11px}
.hero .mark svg{width:20px;height:20px}
.hero b{font-size:15px}
.hero s{font-size:11.5px}
.hero .mark{background:color-mix(in srgb,var(--navy) 10%,transparent);color:var(--navy);border-radius:14px}
.live{border-radius:99px;padding:9px 14px;font-size:12.5px}

/* ---------- ۹ · تب و قرصِ بازه ---------- */
.tabs{background:var(--soft);border:1px solid var(--line);border-radius:12px;padding:3px}
.tabs a{border-radius:9px;font-weight:700;font-size:12.5px;padding:7px 13px;border:0;color:var(--muted)}
.tabs a.on{background:var(--navy);color:var(--onnavy);box-shadow:var(--sh-brand)}
.per{background:var(--soft);border:1px solid var(--line);border-radius:12px;padding:3px;gap:2px}
.per a{border-radius:9px;font-weight:700;color:var(--muted);border:0;padding:7px 14px}
.per a.on{background:var(--navy);color:var(--onnavy);box-shadow:var(--sh-brand)}

/* ---------- ۱۰ · فرم ---------- */
input,select,textarea{
  border:1.5px solid var(--line);border-radius:12px;background:var(--soft);color:var(--ink);
  padding:10px 13px;transition:border-color .13s,background .13s;
}
input:focus,select:focus,textarea:focus{border-color:var(--navy);background:var(--card);outline:none}
.field label{font-size:12.5px;font-weight:700;color:var(--muted)}
.pick input:checked+span,.tp.picked{
  background:var(--navy);color:var(--onnavy);border-color:var(--navy);
}

/* ---------- ۱۱ · پیام‌ها و حالتِ خالی ---------- */
.msg{border-radius:12px;padding:10px 14px;font-size:13px;line-height:1.75}
.msg.good{background:var(--green-bg);color:var(--green);border-color:transparent}
.msg.bad{background:var(--red-bg);color:var(--red);border-color:transparent}
.msg.warn{background:var(--brass-bg);color:var(--brass);border-color:color-mix(in srgb,var(--brass) 35%,transparent)}
.note{
  background:var(--soft);color:var(--muted);border:0;border-radius:10px;
  border-inline-start:3px solid var(--navy);padding:9px 13px;
}
.empty{padding:34px 20px;color:var(--muted)}
.empty b{color:var(--ink)}

/* ---------- ۱۲ · کارتِ تاشو ---------- */
.fold,details.card{border-radius:var(--r);border:1px solid var(--line);box-shadow:var(--sh-1)}
.fold>summary,details.card>summary{font-weight:700}
.fold>summary s,details.card>summary s{color:var(--muted);font-weight:400}

/* ---------- ۱۳ · جدول ---------- */
.tbl th{color:var(--muted);font-size:11.5px;font-weight:700;border-bottom:1px solid var(--line2)}
.tbl td{border-bottom:1px solid var(--line)}
.tbl tr:hover td{background:var(--soft)}

/* ---------- ۱۴ · ریز ---------- */
.gchip{
  border-radius:99px;border:1px solid color-mix(in srgb,var(--navy) 30%,transparent);
  color:var(--navy);font-weight:700;font-size:12px;padding:7px 12px;background:transparent;
}
.gchip:hover{background:var(--soft)}
.dot{border-radius:99px}
code,.mono,.stamp{font-family:ui-monospace,'IBM Plex Mono',Menlo,Consolas,monospace}

/* ---------- ۱۵ · صفحهٔ ورود ----------
   تا امروز کارتِ کرم روی زمینهٔ سرمه‌ایِ توپر بود. در نمونهٔ
   تأییدشده، ورود هم روی همان کاغذِ گرمِ بقیهٔ پنل می‌نشیند و
   کارتش سفید است — یک زبان در همهٔ صفحه‌ها. */
body.login{
  background:linear-gradient(180deg,#ECE8DF,var(--paper) 320px) no-repeat,var(--paper);
  color:var(--ink);
}
.logincard{
  background:var(--card);border:1px solid var(--line);border-radius:var(--r);
  box-shadow:var(--sh-2);
}
.logincard .brand .mark{background:color-mix(in srgb,var(--navy) 10%,transparent);color:var(--navy)}
.logincard h1{color:var(--ink)}
.logincard input{background:var(--soft);border-color:var(--line)}
.logincard .devcode{background:var(--brass-bg);color:var(--brass);border-color:transparent}

/* ---------- ۱۶ · خلاصهٔ برگه (brief.php) ----------
   چهار تکه، همیشه به یک ترتیب: جمله، عددها، نمودارِ روند، کارِ باز.
   جعبه خودش کارت است، پس عددهایش نباید کارتِ دوم بگیرند — وگرنه
   کادر توی کادر می‌شود. */
.brief{padding:14px 16px 12px}
.brief .bsay{font-size:14px;line-height:1.85;margin-bottom:10px}
.brief .bsay b{font-weight:800}
.brief .kpis{margin:0;gap:8px}
.brief .kpis.n4{grid-template-columns:repeat(2,1fr)}
.brief .kpi{background:var(--soft);box-shadow:none;border-color:transparent;padding:10px 12px}
.brief .kpi u{font-size:27px;min-width:52px}
.brief .bspark{display:flex;align-items:center;gap:10px;margin-top:10px}
.brief .bspark svg{flex:1;height:26px}
.brief .bspark span{font-size:10.5px;color:var(--faint);flex:none}
.brief .btodo{
  display:flex;align-items:center;gap:10px;flex-wrap:wrap;
  margin:12px -16px -12px;padding:11px 16px;
  background:var(--brass-bg);border-top:1px solid color-mix(in srgb,var(--brass) 30%,transparent);
  border-radius:0 0 var(--r) var(--r);
}
.brief .btodo b{flex:1;min-width:150px;font-size:12.5px;font-weight:700;color:var(--brass)}

/* ---------- ۱۷ · خانه ----------
   طرحِ انتخاب‌شده: قهرمانِ رصد بالای صفحه. دو طرحِ دیگر (کارت‌ها و
   داشبوردِ بی‌قهرمان) ساخته و کنارِ هم دیده شدند و برداشته شدند؛
   قاعده‌های مشترکشان همین‌جا ماند چون طرحِ پ هم از آن‌ها می‌خورد. */
.dline{
  display:flex;flex-wrap:wrap;align-items:center;gap:6px 12px;
  padding:8px 14px;margin:0 0 8px;
  background:var(--card);border:1px solid var(--line);border-radius:var(--r-s);box-shadow:var(--sh-1);
  font-size:13px;
}
.dline>b{font-size:15px;font-weight:800}
.dline>s{text-decoration:none;font-variant-numeric:tabular-nums;color:var(--muted);font-weight:700}
.dline em{
  font-style:normal;display:inline-flex;align-items:center;gap:6px;color:var(--muted);
  padding:0 10px;height:26px;border-radius:8px;background:var(--soft);white-space:nowrap;
}
.dline em b{color:var(--ink);font-weight:800;font-variant-numeric:tabular-nums}
.dline em i{width:7px;height:7px;border-radius:99px;background:currentColor;display:inline-block}
.dline em.g{background:var(--green-bg);color:var(--green)}
.dline em.r{background:var(--red-bg);color:var(--red)}

/* کارِ باز — قرصی با دکمهٔ خودش. قاعدهٔ «هیچ صفحه‌ای بن‌بست ندارد» */
.todo2 .sec{font-size:11.5px;font-weight:800;color:var(--muted);letter-spacing:.3px;margin-inline-end:4px}
.todo2 .ti{
  display:inline-flex;align-items:center;gap:8px;text-decoration:none;color:var(--ink);
  padding:5px 6px 5px 12px;border-radius:10px;background:var(--brass-bg);font-size:12.5px;font-weight:600;
  border:1px solid color-mix(in srgb,var(--brass) 25%,transparent);
}
.todo2 .ti b{
  background:var(--navy);color:var(--onnavy);border-radius:8px;padding:5px 10px;font-size:11.5px;font-weight:800;
}
.todo2 .ti:hover b{background:var(--navy2)}
.todo2 .ok{display:inline-flex;align-items:center;gap:8px;color:var(--green);font-size:13px;font-weight:600}
.todo2 .ok i{width:8px;height:8px;border-radius:99px;background:var(--green)}

/* ردیفِ ابزار — صفحه‌هایی که هر روز باز نمی‌شوند، هم‌قدِ رصد نباشند */
.tools{
  display:flex;flex-wrap:wrap;align-items:center;gap:6px 8px;margin:12px 2px 0;font-size:12px;
}
.tools a{
  display:inline-flex;align-items:center;gap:6px;text-decoration:none;color:var(--muted);
  padding:6px 11px;border-radius:9px;border:1px solid var(--line);background:var(--card);font-weight:600;
}
.tools a:hover{color:var(--ink);border-color:var(--line2)}
.tools a svg{width:15px;height:15px;stroke:currentColor;fill:none;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}
.tools .ver{margin-inline-start:auto;font-family:ui-monospace,Menlo,Consolas,monospace;font-size:11px;color:var(--faint);direction:ltr}

/* مخرج کنارِ عنوانِ کارت */
.menu a b small{font-weight:600;font-size:11px;color:var(--muted);margin-inline-start:4px}

/* ---------- ۱۸ · خانه، طرحِ پ (قهرمانِ رصد) ----------
   یک عددِ قهرمان با نمودارش بالای صفحه، بعد دو پنل، بعد کارت‌های
   کوچک. چیزی که در دو طرحِ دیگر نبود: سلسله‌مراتب. */
.hero2{padding:10px 14px 8px;margin-bottom:8px}
.hero2 .hh{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-bottom:6px}
.hero2 .hh .sec{margin:0;flex:1}
.hero2 .hbody{display:grid;gap:10px 14px;align-items:center}
@media (min-width:760px){.hero2 .hbody{grid-template-columns:minmax(160px,.62fr) 1fr}}
@media (min-width:1080px){.hero2 .hbody{grid-template-columns:minmax(170px,.55fr) 1fr 1fr}}
.hero2 .hnum u{
  display:block;text-decoration:none;font-size:40px;font-weight:800;line-height:1;
  font-variant-numeric:tabular-nums;letter-spacing:-1px;
}
.hero2 .hnum u small{font-size:26px;font-weight:700;color:var(--muted);margin-inline-start:2px}
.hero2 .hnum b{display:block;font-size:14.5px;font-weight:800;margin-top:6px}
.hero2 .hnum s{display:block;text-decoration:none;color:var(--muted);font-size:12.5px;line-height:1.75}
.hero2 .hchart{width:100%;min-width:0}
.hero2 .hchart svg{width:100%;height:auto;max-height:104px;display:block}
/* راهنمای رنگ کنارِ هر نمودار — نقطه‌ای، نه یک جملهٔ بلند */
.hero2 .cap .lg{width:8px;height:8px;border-radius:99px;display:inline-block;margin-inline-end:4px}
.hero2 .cap .lg.g{background:var(--green)}
.hero2 .cap .lg.n{background:var(--navy)}
.hero2 .cap .lg.r{background:var(--red)}
.hero2 .cap .lg.s{background:var(--sky)}
.hero2 .hchart .cap{font-size:11px;color:var(--muted);margin-top:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.hero2 .hfoot{
  display:flex;flex-wrap:wrap;gap:5px;align-items:center;
  margin-top:8px;padding-top:8px;border-top:1px solid var(--line);
}
.hero2 .hfoot a{
  display:inline-flex;align-items:center;gap:6px;text-decoration:none;color:var(--muted);
  font-size:12px;font-weight:600;background:var(--soft);border-radius:8px;padding:5px 11px;
}
.hero2 .hfoot a b{color:var(--ink);font-weight:800;font-variant-numeric:tabular-nums;
  min-width:2.6ch;text-align:center;display:inline-block}
.hero2 .hfoot a.r{background:var(--red-bg);color:var(--red)}
.hero2 .hfoot a.r b{color:var(--red)}
.hero2 .hfoot .go{margin-inline-start:auto}

.hrow{display:grid;gap:8px;margin-bottom:8px}
@media (min-width:820px){.hrow{grid-template-columns:minmax(240px,.8fr) 1.6fr}}
.hpanel{margin:0;display:block;text-decoration:none;color:var(--ink)}
/* کارتِ حضور به اندازهٔ خودش — نه هم‌قدِ «الان چه کار کنم» کنارش، که
   زیرِ دو خطش جای خالیِ بزرگی می‌ساخت (۷ مهر: «اندازه باکس رو کوچکتر کن») */
.hrow>a.hpanel{align-self:start}
/* مشاور کارتِ حضور ندارد (۶ مهر) — «الان چه کار کنم» تنها، تمام‌عرض */
.hrow>.card:only-child{grid-column:1/-1}
a.hpanel:hover{border-color:var(--line2);box-shadow:var(--sh-2)}
.hpanel .hp{display:flex;align-items:center;gap:12px;margin:2px 0 6px}
.hpanel .hp u{text-decoration:none;font-size:30px;font-weight:800;line-height:1;font-variant-numeric:tabular-nums}
.hpanel .hp s{text-decoration:none;color:var(--muted);font-size:12px;line-height:1.7}
.hpanel .hchips{display:flex;flex-wrap:wrap;gap:5px}
.hpanel .hchips em{
  font-style:normal;display:inline-flex;align-items:center;gap:6px;font-size:11px;font-weight:600;
  height:24px;padding:0 9px;border-radius:8px;background:var(--soft);color:var(--muted);
}
.hpanel .hchips em b{color:inherit;font-weight:800;font-variant-numeric:tabular-nums;min-width:2.6ch;text-align:center}
.hpanel .hchips em i{width:7px;height:7px;border-radius:99px;background:currentColor}
.hpanel .hchips em.g{background:var(--green-bg);color:var(--green)}
.hpanel .hchips em.r{background:var(--red-bg);color:var(--red)}
.todo2 .lst{display:grid;gap:5px}
@media (min-width:640px){.todo2 .lst{grid-template-columns:1fr 1fr}}
.todo2 .ti{display:flex;align-items:center;gap:8px;margin:0;width:100%;font-size:12px}
.todo2 .ti span{flex:1;min-width:0}
.todo2 .ti b{flex:none;padding:4px 9px;font-size:11px}
.todo2 .more{font-size:11.5px;color:var(--muted);margin-top:2px}
/* کارت‌های کوچکِ طرحِ پ — بخش‌های درجهٔ دو */
/* کارت‌های درجهٔ دو: ریزتر و بیشتر در هر ردیف — قهرمان بالا جا
   می‌خواهد، و این‌ها فقط راهِ رفتن‌اند نه خبر. */
.menu.sm{grid-template-columns:repeat(auto-fill,minmax(196px,1fr));gap:6px}
.menu.sm a{padding:8px 10px;column-gap:8px;row-gap:5px;grid-template-columns:26px 1fr}
.menu.sm a .ic{width:26px;height:26px;border-radius:8px}
.menu.sm a .ic svg{width:15px;height:15px}
.menu.sm a b{font-size:12px}
.menu.sm a .mi{padding-inline-start:34px}
.menu.sm a .mi em{height:22px;font-size:10.5px;padding:0 8px}

/* ---------- ۱۹ · جدولِ نظراتِ قاضی ----------
   سطر ثابت، ستون روز، خانه یک حکم. عرضِ خانه‌ها با --n تقسیم
   می‌شود تا هفت روز و سی روز هر دو در همین قاب جا شوند.

   قاعدهٔ رنگ همان bwj_row_sev است و اینجا فقط پوشیده می‌شود —
   دو تعریف از «قرمز» یعنی روزی یکی‌شان کهنه می‌ماند. */
.jtbl{
  /* خانه مربع می‌ماند نه کشیده: با 1fr روی صفحهٔ بزرگ هر خانه صد و
     پنجاه پیکسل می‌شد و جدول شبیهِ نوارِ رنگی درمی‌آمد. سقفِ ۴۴
     پیکسل هم می‌گذارد هفت‌روزه جمع بماند، هم سی‌روزه جا شود. */
  display:grid;
  grid-template-columns:minmax(130px,220px) repeat(var(--n),minmax(24px,44px));
  gap:3px;align-items:center;justify-content:start;
}
.jth{
  font-size:10px;color:var(--muted);text-align:center;font-variant-numeric:tabular-nums;
  padding-bottom:2px;line-height:1.3;
}
.jth u{display:block;text-decoration:none;font-size:8.5px;color:var(--faint)}
.jnm{
  display:block;text-decoration:none;color:var(--ink);padding:3px 6px 3px 0;min-width:0;
}
.jnm b{display:block;font-size:12.5px;font-weight:700;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.jnm s{display:block;text-decoration:none;font-size:10.5px;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.jnm:hover b{color:var(--navy)}
/* خانه: نبودِ قضاوت = خالیِ خط‌دار، نه سبز. «نمی‌دانیم» با «خوب» یکی نیست. */
.jc{
  display:block;height:26px;border-radius:6px;text-decoration:none;
  background:var(--soft);border:1px dashed var(--line2);
  transition:transform .1s,box-shadow .1s;
}
a.jc:hover{transform:scale(1.12);box-shadow:var(--sh-1);position:relative;z-index:2}
.jc.g{background:var(--green);border:0}
.jc.w{background:var(--brass);border:0}
.jc.r{background:var(--red);border:0}
/* سکوت: همان رنگ، ولی راه‌راه — تا معلوم باشد ثبتِ ماشین است نه حرفِ قاضی */
.jc.sil{
  background-image:repeating-linear-gradient(45deg,
    rgba(255,255,255,.55) 0 3px,transparent 3px 6px);
}
.jc.sil.g{background-color:color-mix(in srgb,var(--green) 55%,var(--card))}
.jc.sil.w{background-color:color-mix(in srgb,var(--brass) 60%,var(--card))}
.jc.sil.r{background-color:color-mix(in srgb,var(--red) 60%,var(--card))}
.jlg{display:flex;flex-wrap:wrap;gap:6px 14px;font-size:11px;color:var(--muted);margin-top:10px}
.jlg i{width:12px;height:12px;border-radius:4px;display:inline-block;vertical-align:-2px;
  margin-inline-end:5px;background:var(--soft);border:1px dashed var(--line2)}
.jlg i.g{background:var(--green);border:0}
.jlg i.w{background:var(--brass);border:0}
.jlg i.r{background:var(--red);border:0}
.jlg i.sil{background:var(--muted);border:0;
  background-image:repeating-linear-gradient(45deg,rgba(255,255,255,.55) 0 3px,transparent 3px 6px)}
.jlg .e{margin-inline-start:auto}

/* ---------- ۲۰ · رصد: سطرِ دوستونی ----------
   دو ستون، نه چهار: سمتِ راست هویت (چه کسی، با کدام شناسه، در
   کدام گروه)، سمتِ چپ کارنامه (خانه‌های رنگی، عددها، حرفِ قاضی).

   چرا: «یک ستون در سطر سمت راست، نظر قاضی و باکس‌های رنگی سمت
   چپ» — و منطقش درست است. تا دیروز نام و گروه و خانه‌ها و عددها
   چهار ستونِ هم‌وزن بودند و چشم نمی‌دانست از کجا شروع کند. حالا
   یک لنگرِ ثابت در راست هست و بقیه کنارِ هم خوانده می‌شود.

   خانه‌ها فقط رنگ‌اند و عددِ روز یک بار بالای جدول است؛ تاریخ و
   جملهٔ همان روز روی موس می‌آید. */
/* راهنما بالای جدول — کسی که پایین می‌خواندش، بالا را اشتباه خوانده */
.jlg.top{
  margin:0 0 10px;padding:7px 10px;border-radius:10px;
  background:var(--soft);border:1px solid var(--line);
}
.jhead{
  display:grid;grid-template-columns:minmax(150px,230px) 1fr;
  gap:4px 14px;align-items:end;padding:0 2px 6px;border-bottom:1px solid var(--line);
  margin-bottom:2px;
}
.jh-days{grid-column:2;justify-self:start;display:inline-flex;gap:3px;direction:ltr}
.jh-days i{
  width:22px;text-align:center;font-style:normal;font-size:9.5px;font-weight:700;
  color:var(--muted);font-variant-numeric:tabular-nums;
}
.jh-nm{grid-column:1;font-size:9.5px;color:var(--faint);text-align:start}

/* سرِ گروه — نامِ سرمشاور بالای مشاورهایش (۳۰ شهریور). `jgrp` نه
   `grp`: `.grp` در جدولِ مقایسه هست. */
.jgrp{display:flex;align-items:baseline;gap:10px;flex-wrap:wrap;
  margin:14px 0 4px;padding:6px 10px;border-radius:8px;
  background:var(--soft);border-inline-start:3px solid var(--navy)}
.jgrp:first-child{margin-top:4px}
.jgrp a{font-weight:700;font-size:13px;text-decoration:none;color:var(--ink)}
.jgrp small{font-size:11px;color:var(--muted)}
.jrow{
  display:grid;grid-template-columns:minmax(150px,230px) 1fr;
  gap:4px 14px;align-items:start;padding:9px 2px;
}
/* ستونِ هویت — راست، ثابت، چهار سطرِ کوتاه */
.jrow .who{
  grid-column:1;grid-row:1;display:flex;flex-direction:column;gap:1px;
  min-width:0;margin:0;padding-inline-end:12px;
  border-inline-end:1px solid var(--line);
}
.jrow .who .nm{
  font-size:13px;display:flex;align-items:center;gap:6px;
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis;
}
.jrow .who .bn{font-size:10.5px;color:var(--muted);direction:ltr;text-align:start;
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.jrow .who .gr{font-size:10.5px;color:var(--muted);white-space:nowrap}
.jrow .who .id{font-size:10px;color:var(--faint);font-variant-numeric:tabular-nums}
/* ستونِ کارنامه — چپ: خانه‌ها و عددها در یک خط، حرفِ قاضی زیرش */
.jrow .body{
  grid-column:2;grid-row:1;display:flex;flex-wrap:wrap;align-items:center;
  gap:6px 14px;min-width:0;
}
.jrow .jdays{display:inline-flex;gap:3px;direction:ltr;margin:0}
.jrow .jdays i,.jrow .jdays a{
  width:22px;height:22px;border-radius:6px;display:block;font-style:normal;
  background:var(--soft);border:1px dashed var(--line2);
}
.jrow .jdays i.g,.jrow .jdays a.g{background:var(--green);border:0}
.jrow .jdays i.w,.jrow .jdays a.w{background:var(--brass);border:0}
.jrow .jdays i.r,.jrow .jdays a.r{background:var(--red);border:0}
/* راه‌راه یعنی ثبتِ خودِ سامانه، نه حرفِ قاضی */
.jrow .jdays i.sil,.jrow .jdays a.sil{
  background-image:repeating-linear-gradient(45deg,
    rgba(255,255,255,.55) 0 3px,transparent 3px 6px);
}
.jrow .jdays i.sil.g,.jrow .jdays a.sil.g{background-color:color-mix(in srgb,var(--green) 55%,var(--card))}
.jrow .jdays i.sil.w,.jrow .jdays a.sil.w{background-color:color-mix(in srgb,var(--brass) 60%,var(--card))}
.jrow .jdays i.sil.r,.jrow .jdays a.sil.r{background-color:color-mix(in srgb,var(--red) 60%,var(--card))}
.jrow .nums{
  display:flex;flex-wrap:nowrap;gap:10px;margin:0;
  font-size:11px;white-space:nowrap;overflow:hidden;
}
/* جملهٔ قاضی — خطِ دومِ همان ستونِ چپ، کوتاه‌شونده */
.jrow .jd{
  flex:1 0 100%;font-size:12px;line-height:1.6;
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:var(--muted);
}
.jrow .jd b{color:var(--muted)}
@media (max-width:760px){
  /* روی گوشی دو ستون جا نمی‌شود؛ هویت اول می‌آید، بعد کارنامه */
  .jhead{display:none}
  .jrow{grid-template-columns:1fr;gap:6px}
  .jrow .who{grid-column:1;grid-row:1;padding-inline-end:0;border:0}
  .jrow .body{grid-column:1;grid-row:2}
  .jrow .nums{flex-wrap:wrap;white-space:normal}
  .jrow .jd{white-space:normal}
}

/* ---------- ۲۱ · نوارِ کنترل، بالای داشبورد ----------
   پنج عنصرِ این نوار روی هم ۲۷۱۲ پیکسل عرض دارند و صفحه ۱۴۲۵
   است — «یک خط» شدنی نبود مگر چیزی از دست برود. پس دو خطِ
   عمدی، هرکدام با یک کارِ روشن:

     خط ۱ — چه کسی: ردیفِ نام‌ها (خودش ۱۳۵۱ است، یعنی یک خطِ کامل)
     خط ۲ — کدام بازه و حالِ داده: جملهٔ روز + بازه + چراغ (۱۳۳۱)

   و هر دو خط *پیش از* داشبوردند، نه بعدش. */
.top.ctl{
  display:flex;flex-wrap:wrap;align-items:center;gap:8px 10px;margin-bottom:8px;
}
.top.ctl > .navrow{flex:1 1 100%}          /* خط ۱ کامل */
.top.ctl > .say{flex:1 1 260px;min-width:0}/* خط ۲: جمله جا را پر می‌کند */
.top.ctl > .per,.top.ctl > .lamp{flex:0 0 auto}
/* درِ صفحهٔ اختصاصی — قرص نیست، تا با قرص‌های دامنه اشتباه نشود */
.top.ctl > .own{flex:0 0 auto}
.own{
  border:0;background:none;box-shadow:none;color:var(--navy);
  font-weight:700;font-size:12px;padding:6px 4px;text-decoration:underline;
  text-underline-offset:3px;text-decoration-thickness:1px;
}
.own:hover{background:none;color:var(--brass)}

/* ---------- ۲۲ · دو تب و سه خانه ----------
   قاضی | رصد — یک سرستون، دو صفحهٔ کوتاه. و در هر سطرِ قاضی سه
   خانهٔ ثابت: روز، هفتهٔ تمام‌شده، ماهِ تمام‌شده — هرکدام با
   آهنگِ خودش عوض می‌شود، هیچ‌کدام از قرصِ بازه نمی‌خورد. */
.vtabs{display:flex;gap:6px;margin:0 0 12px}
.vtabs a{
  padding:6px 16px;border-radius:10px;border:1px solid var(--line);background:var(--card);
  font-weight:700;font-size:13px;color:var(--ink);text-decoration:none;
}
.vtabs a:hover{background:var(--soft);border-color:var(--line2)}
.vtabs a.on{background:var(--navy);border-color:var(--navy);color:var(--onnavy);box-shadow:var(--sh-brand)}
/* دو ستون، سه سطر: تاریخ | توضیحاتِ قاضی. سه خانهٔ کنارِ هم
   هرکدام یک‌سومِ عرض داشتند و جمله در سه کلمه بریده می‌شد. */
.j3{
  flex:1 0 100%;display:grid;grid-template-columns:minmax(96px,132px) minmax(0,1fr);
  gap:0 12px;min-width:0;align-items:stretch;
}
.j3 > *{padding:6px 0;border-bottom:1px solid var(--line);min-width:0}
.j3 > *:nth-last-child(-n+2){border-bottom:0;padding-bottom:2px}
.j3 > *:nth-child(-n+2){padding-top:2px}
.j3d{
  display:flex;flex-direction:column;gap:0;padding-inline-start:9px;
  border-inline-start:3px solid var(--line2);
}
.j3d.g{border-inline-start-color:var(--green)}
.j3d.w{border-inline-start-color:var(--brass)}
.j3d.r{border-inline-start-color:var(--red)}
.j3d b{font-size:12.5px;line-height:1.5}
.j3d small{font-size:10.5px;color:var(--muted);line-height:1.5;white-space:nowrap;
  overflow:hidden;text-overflow:ellipsis}
.j3d u{font-size:10px;color:var(--brass);text-decoration:none;line-height:1.5}
.j3t{
  font-size:12.5px;line-height:1.6;color:var(--ink);
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis;
}
.j3t em{color:var(--faint);font-style:normal;font-size:12px}
.j3t details{font-size:11.5px;margin-top:3px;white-space:normal}
.j3t details summary{cursor:pointer;color:var(--muted)}
.j3t details .jfull{margin-top:4px;color:var(--ink);white-space:normal}
.j3card .j3{margin-top:2px}
.j3.big{grid-template-columns:minmax(110px,158px) minmax(0,1fr)}
.j3.big > *{padding:9px 0}
.j3.big .j3t{white-space:normal;font-size:13px}
.j3.big .j3d b{font-size:13.5px}
/* نوارِ روز — هفت چیپ، هم‌جنسِ بقیهٔ نوارهای صفحه */
.filterbar.dayjump{display:flex;flex-wrap:wrap;gap:5px;align-items:center;margin:0 0 10px}
.filterbar.dayjump .lbl{font-size:11.5px;color:var(--muted);font-weight:700;
  margin-inline-end:2px}
.filterbar.dayjump .gchip{font-variant-numeric:tabular-nums}
.filterbar.dayjump .sep{font-size:11.5px;color:var(--muted);margin-inline-start:auto}
@media (max-width:760px){
  .j3{grid-template-columns:1fr;gap:0}
  .j3 > *{border-bottom:0;padding:2px 0}
  .j3 .j3d{padding-top:8px;border-bottom:0}
  .j3 .j3t{padding-bottom:8px;border-bottom:1px solid var(--line);white-space:normal;
    padding-inline-start:12px}
  .j3 > *:nth-last-child(-n+2){border-bottom:0}
}

/* ---------- ۲۳ · نام لینک است، پنج نقطه، دفترچهٔ قاضی ----------
   سطر دیگر لینک نیست (داخلش «قضاوتِ کامل» باز می‌شود)؛ نام لینک
   است به دفترچه. پنج نقطهٔ معیار همیشه در سطر. دفترچه: هر روز یک
   کارت، تازه‌ترین بالا، هفتگی و ماهانه لای روزها. */
.jrow .who .nm{color:var(--ink);text-decoration:none}
.jrow .who .nm:hover{text-decoration:underline;text-underline-offset:3px}
.jrow .who .lnks{font-size:10.5px;color:var(--faint);margin-top:2px}
.jrow .who .lnks a{color:var(--navy);text-decoration:none}
.jrow .who .lnks a:hover{text-decoration:underline}
.jrow .jdays a{cursor:pointer}
.jrow .jdays a:hover{outline:2px solid var(--sky);outline-offset:1px}
.jcrit5{display:inline-flex;gap:5px;align-items:center;margin-inline-start:8px;vertical-align:middle}
.jcrit5 i{width:10px;height:10px;border-radius:99px;background:var(--line2);display:block}
.jcrit5 i.g{background:var(--green)}
.jcrit5 i.w{background:var(--brass)}
.jcrit5 i.r{background:var(--red)}
.jcrit5 i.none{background:transparent;border:1px dashed var(--line2)}
.jlg .c5{color:var(--muted)}
.jnote{white-space:pre-wrap;color:var(--ink);font-size:12.5px;line-height:1.75;
  padding:6px 10px;border-inline-start:3px solid var(--line);margin:4px 0}
.jfull .jparts{margin-top:4px}
.jfull .jpart{font-size:12.5px;line-height:1.7;white-space:normal}
.logday .sec{display:flex;gap:8px;align-items:center;flex-wrap:wrap}
.logday .sec b{font-size:14px}
.logsum{font-weight:700;margin:2px 0 4px;font-size:13.5px;line-height:1.6}
.logv .logsum{font-size:14px}
.logitem{margin:5px 0;padding:4px 0;border-top:1px solid var(--line)}
.logitem:first-of-type{border-top:0}
.logitem > summary{cursor:pointer;list-style:none;font-size:12.5px;line-height:1.7;display:flex;
  gap:6px;align-items:center;flex-wrap:wrap}
.logitem > summary::-webkit-details-marker{display:none}
.logitem > summary::before{content:"◂";color:var(--faint);font-size:11px}
.logitem[open] > summary::before{content:"▾"}
.logitem > summary a{color:var(--ink);text-decoration:none}
.logitem > summary a:hover{text-decoration:underline}
.logbody{padding:4px 12px 2px;margin:4px 0 2px;border-inline-start:3px solid var(--line)}
.jfact{font-size:12px;color:var(--muted);margin-top:6px}
.jfact a{color:var(--navy)}
.logpath{margin:4px 0}
.logpath > summary{cursor:pointer;font-size:12.5px;color:var(--muted)}
.filterbar.dayjump .sep a{color:var(--navy);text-decoration:none}
.filterbar.dayjump .sep a:hover{text-decoration:underline}

/* ---------- ۲۲ · منوی رصد با خلاصه ----------
   کنارِ هر مقصد، یک عدد: از منو معلوم است بقیهٔ بخش‌ها چطورند.
   کشویی نشد و عمدی است — همین منو یک بار <details> بود و روی
   مرورگرِ صاحب سامانه باز نمی‌شد. */
.navrow.sumrow{display:flex;flex-wrap:wrap;gap:6px;align-items:center}
.navrow.sumrow a{
  display:inline-flex;align-items:center;gap:6px;
  padding:6px 12px;border-radius:11px;font-size:12.5px;font-weight:700;
  border:1px solid var(--line);background:var(--card);color:var(--ink);text-decoration:none;
}
.navrow.sumrow a:hover{border-color:var(--line2);background:var(--soft)}
.navrow.sumrow a.on{background:var(--navy);border-color:var(--navy);color:var(--onnavy);
  box-shadow:var(--sh-brand)}
.navrow.sumrow a u{
  text-decoration:none;font-size:10.5px;font-weight:600;color:var(--muted);
  background:var(--soft);border-radius:7px;padding:1px 7px;white-space:nowrap;
  font-variant-numeric:tabular-nums;
}
.navrow.sumrow a.on u{background:color-mix(in srgb,var(--onnavy) 22%,transparent);
  color:var(--onnavy)}
.navrow.sumrow .sep{font-size:11px;color:var(--faint);margin-inline-start:4px}
