/* طراحی مشترک چک‌یار: رنگ‌ها و اندازه‌ها فقط در :root تعریف شده‌اند. */
:root {
  --paper: #EEF2EC;
  --card: #FBFCFA;
  --ink: #1B2A41;
  --ink-soft: #55627A;
  --line: #C8D2C6;
  --green: #2E6B5B;
  --green-ink: #FFFFFF;
  --rust: #B5452F;
  --radius: 10px;
  font-family: Vazirmatn, "Segoe UI", Tahoma, "Noto Sans Arabic", system-ui, sans-serif;
  color-scheme: light;
}

* { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; }
body {
  margin: 0;
  background: var(--paper);
  color: var(--ink);
  line-height: 1.7;
  padding-bottom: 96px;
}
button, input, textarea { font: inherit; color: inherit; }
:focus-visible { outline: 3px solid var(--green); outline-offset: 2px; }

.top {
  background: var(--ink);
  color: #fff;
  padding: calc(14px + env(safe-area-inset-top, 0px)) 16px 14px;
  display: flex; align-items: center; justify-content: space-between;
}
.top h1 { margin: 0; font-size: 1.35rem; font-weight: 800; }

main { max-width: 640px; margin: 0 auto; padding: 16px; }

.tabs { display: flex; gap: 8px; margin-bottom: 16px; }
.tab {
  flex: 1; padding: 8px 0; border: 1px solid var(--line); border-radius: var(--radius);
  background: transparent; cursor: pointer; color: var(--ink-soft);
}
.tab.is-on { background: var(--ink); border-color: var(--ink); color: #fff; }

/* هر چک مثل یک برگه چک است: بدنه اصلی و یک ته‌چک که با خط‌چین جدا می‌شود. */
.cheque {
  display: flex;
  background: var(--card);
  border: 1px solid var(--line);
  border-radius: var(--radius);
  margin-bottom: 12px;
  overflow: hidden;
}
.stub {
  width: 112px; flex: none;
  padding: 12px 8px;
  display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 4px;
  border-inline-end: 2px dashed var(--line);
  background: #E4EBE2;
  text-align: center;
}
.stub-date { font-weight: 700; font-size: .95rem; }
.stub-left { font-size: .8rem; color: var(--ink-soft); }
.cheque.late .stub { background: #F3DDD6; }
.cheque.late .stub-left { color: var(--rust); font-weight: 700; }

.body { flex: 1; min-width: 0; padding: 12px 14px; }
.row { display: flex; align-items: center; justify-content: space-between; gap: 8px; }
.who { font-size: 1.05rem; overflow-wrap: anywhere; }
.kind { font-size: .8rem; color: var(--green); border: 1px solid var(--green); border-radius: 999px; padding: 0 10px; }
.cheque.issued .kind { color: var(--rust); border-color: var(--rust); }
.amount { font-size: 1.5rem; font-weight: 800; letter-spacing: .01em; }
.meta, .note { font-size: .88rem; color: var(--ink-soft); overflow-wrap: anywhere; }
.foot { margin-top: 6px; }
.status { font-size: .82rem; color: var(--ink-soft); }

.empty { text-align: center; padding: 48px 16px; color: var(--ink-soft); }
.empty .hint { font-size: .9rem; }

button.primary, a.primary, .btn {
  background: var(--green); color: var(--green-ink);
  border: 0; border-radius: var(--radius); padding: 10px 18px; cursor: pointer;
  text-decoration: none; display: inline-block; text-align: center;
}
button.ghost { background: transparent; border: 1px solid currentColor; border-radius: var(--radius); padding: 6px 14px; cursor: pointer; }
.top .ghost { color: #fff; font-size: .9rem; }
dialog .ghost { color: var(--ink-soft); }
button.link { background: none; border: 0; padding: 4px 0; cursor: pointer; text-decoration: underline; }
button.danger { color: var(--rust); }

.fab {
  position: fixed; inset-inline-start: 16px;
  bottom: calc(16px + env(safe-area-inset-bottom, 0px));
  background: var(--ink); color: #fff; border: 0; border-radius: 999px;
  padding: 14px 24px; font-weight: 700; cursor: pointer;
  box-shadow: 0 4px 14px rgba(27, 42, 65, .3);
}

dialog {
  width: min(92vw, 440px); max-height: 90vh; overflow: auto;
  border: 0; border-radius: 14px; padding: 20px;
  background: var(--card); color: var(--ink);
}
dialog::backdrop { background: rgba(27, 42, 65, .55); }
dialog h2 { margin: 0 0 12px; font-size: 1.2rem; }

.field { display: block; margin-bottom: 12px; font-size: .92rem; color: var(--ink-soft); }
.field input, .field textarea {
  display: block; width: 100%; margin-top: 4px; padding: 9px 12px;
  border: 1px solid var(--line); border-radius: 8px; background: #fff; color: var(--ink);
}
.seg { display: flex; gap: 8px; margin-bottom: 14px; }
.seg label { flex: 1; }
.seg input { position: absolute; opacity: 0; }
.seg span { display: block; text-align: center; padding: 8px; border: 1px solid var(--line); border-radius: 8px; cursor: pointer; }
.seg input:checked + span { background: var(--green); border-color: var(--green); color: #fff; }
.seg input:focus-visible + span { outline: 3px solid var(--green); outline-offset: 2px; }

.actions { display: flex; gap: 8px; flex-wrap: wrap; margin-top: 8px; }
.error { color: var(--rust); margin: 0 0 8px; }

#toast {
  position: fixed; inset-inline: 16px; bottom: calc(84px + env(safe-area-inset-bottom, 0px));
  max-width: 420px; margin-inline: auto; text-align: center;
  background: var(--ink); color: #fff; padding: 10px 16px; border-radius: var(--radius);
}

@media (max-width: 400px) {
  .stub { width: 92px; }
  .amount { font-size: 1.3rem; }
}
@media (prefers-reduced-motion: reduce) { * { transition: none !important; animation: none !important; } }

.top-actions { display: flex; gap: 8px; }
.unit { font-size: .8rem; font-weight: 400; color: var(--ink-soft); margin-inline-start: 6px; }
.field-title { margin: 0 0 6px; font-size: .92rem; color: var(--ink-soft); }
.hint-text { font-size: .85rem; color: var(--ink-soft); margin: 0 0 8px; }
@media (max-width: 400px) { .top .ghost { padding: 6px 10px; font-size: .82rem; } }

/* بخش‌ها (چک‌ها / اقساط) */
.views { display: flex; gap: 0; margin-bottom: 12px; border: 1px solid var(--ink); border-radius: var(--radius); overflow: hidden; }
.view { flex: 1; padding: 10px 0; border: 0; background: transparent; cursor: pointer; font-weight: 700; color: var(--ink); }
.view.is-on { background: var(--ink); color: #fff; }
.tabs[hidden] { display: none; }

.cheque.closed { opacity: .65; }
.acts { display: flex; gap: 14px; }
button.ok { color: var(--green); font-weight: 700; }

/* وام */
.loan { background: var(--card); border: 1px solid var(--line); border-radius: var(--radius); padding: 14px; margin-bottom: 12px; }
.bar { height: 8px; background: #DCE4DA; border-radius: 99px; margin: 8px 0 10px; overflow: hidden; }
.bar-fill { height: 100%; background: var(--green); }
.sched { margin-top: 10px; border-top: 1px dashed var(--line); padding-top: 8px; }
.sched-list { list-style: none; margin: 0; padding: 0; max-height: 280px; overflow: auto; }
.sched-list li { display: flex; justify-content: space-between; gap: 8px; padding: 5px 0; font-size: .9rem; border-bottom: 1px solid #E4EBE2; }
.sched-list li.past { color: var(--ink-soft); }
.sched-list .tag { font-size: .78rem; color: var(--green); }
.sched-list .past .tag { color: var(--ink-soft); }

.loan.summary { background: var(--ink); color: #fff; border-color: var(--ink); }
.loan.summary .meta { color: #D5DDE8; }

.fab[hidden] { display: none; }
.more p { margin: 4px 0 10px; font-size: .9rem; color: var(--ink-soft); }
.more .actions { margin-top: 4px; }
.imp-list { list-style: none; margin: 8px 0; padding: 0; max-height: 220px; overflow: auto; font-size: .9rem; }
.imp-list li { padding: 4px 0; border-bottom: 1px solid #E4EBE2; overflow-wrap: anywhere; }
.imp-list.bad li { color: var(--rust); }

.entry-methods { margin: 0 0 12px; }
.ltr { direction: ltr; unicode-bidi: plaintext; text-align: left; overflow-wrap: anywhere; }
.info-row { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; margin: 6px 0; }
.info-row .ltr { flex: 1; min-width: 0; }
.support { margin-top: 18px; padding-top: 12px; border-top: 1px dashed var(--line); }
.support h3 { margin: 0 0 4px; font-size: 1rem; }

form.editing .only-new { display: none; }

.ltab { flex: 1; padding: 8px 4px; border: 1px solid var(--line); border-radius: var(--radius); background: transparent; cursor: pointer; color: var(--ink-soft); font-size: .85rem; }
.ltab.is-on { background: var(--ink); border-color: var(--ink); color: #fff; }
.sched-list.tall { max-height: none; }
.chips { display: flex; flex-wrap: wrap; gap: 8px; margin: 8px 0 12px; }
.chip input { position: absolute; opacity: 0; }
.chip span { display: block; padding: 6px 14px; border: 1px solid var(--line); border-radius: 999px; cursor: pointer; }
.chip input:checked + span { background: var(--green); border-color: var(--green); color: #fff; }
.chip input:focus-visible + span { outline: 3px solid var(--green); outline-offset: 2px; }
select { font: inherit; color: var(--ink); background: #fff; border: 1px solid var(--line); border-radius: 8px; padding: 8px 12px; display: block; margin-top: 4px; }
.entry-methods { flex-wrap: wrap; }
@media (max-width: 400px) { .views .view { font-size: .85rem; } }

/* ---- چک‌یاد ۱.۰.۰: همگام‌سازی آفلاین ---- */
.brand { display: flex; align-items: center; gap: 10px; min-width: 0; }
.pill {
  border: 1px solid rgba(255, 255, 255, .45); border-radius: 999px; background: transparent; color: #fff;
  font-size: .75rem; padding: 1px 10px; cursor: pointer; white-space: nowrap; line-height: 1.8;
}
.pill.ok { border-color: #7FC8A9; color: #BFE8D6; }
.pill.busy { border-color: rgba(255, 255, 255, .45); color: #D5DDE8; }
.pill.off { border-color: #F0A08E; color: #F8C9BD; }
.sync-wait { font-size: .8rem; color: var(--ink-soft); margin-top: 4px; }
.sync-wait::before { content: "⏳ "; }
.sync-err { font-size: .82rem; color: var(--rust); margin-top: 4px; font-weight: 700; overflow-wrap: anywhere; }
button.primary.danger-bg { background: var(--rust); }
.hint-text.center { text-align: center; margin-top: 16px; }
@media (max-width: 400px) { .top h1 { font-size: 1.15rem; } .pill { font-size: .7rem; padding: 1px 8px; } }
.in-tg .top { padding-top: 12px; }
/* ۱.۰.۲: چک‌های جاری / سوابق (مثل بات) */
.ptab { flex: 1; padding: 7px 0; border: 1px solid var(--green); border-radius: var(--radius); background: transparent; cursor: pointer; color: var(--green); font-weight: 700; }
.ptab.is-on { background: var(--green); color: var(--green-ink); }
.list-head { margin: -4px 0 10px; font-size: .9rem; color: var(--ink-soft); }
/* ۱.۱.۰: اپ اندروید */
.switch-row { display: flex; align-items: center; gap: 10px; margin: 8px 0; cursor: pointer; }
.switch-row input { width: 20px; height: 20px; accent-color: var(--green); flex: none; }
.upd-bar {
  position: fixed; inset-inline: 12px; top: calc(10px + env(safe-area-inset-top, 0px)); z-index: 20;
  display: flex; align-items: center; gap: 10px; flex-wrap: wrap;
  background: var(--card); border: 1px solid var(--green); border-radius: var(--radius);
  padding: 10px 14px; box-shadow: 0 4px 14px rgba(27, 42, 65, .25); font-size: .9rem;
}
.upd-bar span { flex: 1; min-width: 160px; }
.in-app .top { padding-top: calc(14px + env(safe-area-inset-top, 0px)); }