/* PADCORE — فرمِ سمتِ کاربر.
   فاز ۴ گامِ پانزده: سه بلوکِ `<style nonce>`ِ درونِ ویو (`_normal-style`،
   `_picker-style`، `_mode-icons`) به این شیت آمدند و استایل‌های درون‌خطیِ
   `form_show`/`_field`/`form_done`/`forms` کلاس شدند. مقادیر عیناً همان‌هاست.
   خودِ قاعده‌ها زیرِ `.form-normal`/`.survey-mode`/`.fm-icons` دامنه‌دارند، پس
   بارشدنِ همیشگیِ شیت چیزی را عوض نمی‌کند. */

/* ── حالتِ عادیِ فرم (#73) — فقط زیرِ `.form-normal` ─── */

.form-normal{
  --tn-tint:#e3f4ea; --tn-tint-strong:#c7ebd5;
  --tn-surface-solid:#fff; --tn-fill:#f0f4f1; --tn-fill-hover:#e6ede8; --tn-divider:#dbe5de;
  --fn-card:#f3f5f4; --fn-input:#fff;
}
/* ستونِ باریکِ وسط‌چین؛ پهنا با تعدادِ ستون زیاد می‌شود */
body .form-wrap:has(.form-normal){max-width:680px;margin-inline:auto;box-sizing:border-box;padding-inline:16px;overflow-x:clip}
#formFieldsCard.form-normal{display:grid;grid-template-columns:minmax(0,1fr);gap:16px;background:none;border:0;box-shadow:none;padding:0;min-width:0}
.form-normal > .form-section-head,.form-normal > .form-static-block,.form-normal > .fn-full{grid-column:1/-1}
.form-normal > .field-group{background:var(--fn-card);border:0;border-radius:16px;padding:20px 24px;margin:0;min-width:0}
.form-normal > .field-group:first-child,.form-normal > .field-group:last-child{padding:20px 24px}
.form-normal > .field-group.is-collapsed{display:none}
.form-normal > .form-section-head,.form-normal > .form-static-block{border-radius:16px;box-shadow:none;margin:0}
.form-normal .field-label{font-weight:700;font-size:16px;margin-bottom:6px}
.form-normal .field-helper{font-size:12.5px;color:var(--tn-on-surface-faint);margin:0 0 10px}
.form-normal .field-input{background:var(--fn-input);border:1px solid var(--tn-divider);border-radius:12px;max-width:100%}
.form-normal .field-input:focus{background:var(--fn-input)}
/* گزینه‌ها: ردیف‌های شماره‌دار */
.form-normal .radio-group,.form-normal .checkbox-group{display:grid;gap:8px;counter-reset:fnopt}
.form-normal .radio-group > label,.form-normal .checkbox-group > label{counter-increment:fnopt;position:relative;display:flex;align-items:center;gap:12px;background:var(--fn-input);border-radius:12px;padding:12px 14px;cursor:pointer;font-size:15px;color:var(--tn-on-surface);transition:background-color .2s}
.form-normal .radio-group > label::before,.form-normal .checkbox-group > label::before{content:counter(fnopt,persian);flex-shrink:0;width:28px;height:28px;border-radius:8px;background:var(--tn-fill);display:inline-flex;align-items:center;justify-content:center;font-weight:700;font-size:13px}
.form-normal .radio-group > label input,.form-normal .checkbox-group > label input{position:absolute;opacity:0;width:1px;height:1px;pointer-events:none}
.form-normal .radio-group > label:hover,.form-normal .checkbox-group > label:hover{background:var(--tn-fill-hover)}
.form-normal .radio-group > label:has(input:checked),.form-normal .checkbox-group > label:has(input:checked){background:var(--tn-tint-strong);font-weight:700}
.form-normal .radio-group > label:has(input:checked)::before,.form-normal .checkbox-group > label:has(input:checked)::before{background:var(--tn-primary);color:var(--tn-on-primary,#fff)}
.form-normal .radio-group > label:has(input:focus-visible),.form-normal .checkbox-group > label:has(input:focus-visible){outline:3px solid var(--tn-primary);outline-offset:2px}
/* امتیازِ ستاره‌ای: ستاره‌های تا انتخاب پر می‌شوند */
.form-normal .rating-group{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.form-normal .rating-stars{display:flex;gap:4px}
.form-normal .rating-star{cursor:pointer;color:var(--tn-divider);line-height:0}
.form-normal .rating-star svg{width:36px;height:36px;fill:currentColor;stroke:currentColor}
.form-normal .rating-star:has(input:checked),.form-normal .rating-star:has(~ .rating-star input:checked){color:#f5a623}
.form-normal .rating-label-first,.form-normal .rating-label-last{font-size:12px;color:var(--tn-on-surface-faint)}
/* آپلود با کادرِ خط‌چین */
.form-normal .file-input-wrap{display:flex;flex-direction:column;position:relative}
.form-normal .file-input{position:absolute;opacity:0;width:1px;height:1px}
.form-normal .file-input-label{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;padding:24px 12px;border:2px dashed var(--tn-divider);border-radius:12px;background:var(--fn-input);color:var(--tn-on-surface-var);cursor:pointer;text-align:center}
.form-normal .file-input-label:hover{border-color:var(--tn-primary)}
.form-normal .file-input:focus-visible + .file-input-label{outline:3px solid var(--tn-primary);outline-offset:2px}
/* اسلات‌ها: پرشده‌ها کم‌رنگ (event-book.css) — فقط جای‌گیری در ستون */
.form-normal .event-field{max-width:100%;overflow-x:auto}
/* یک قدم تا پایان + دکمهٔ سبزِ «ارسال پاسخ» در گوشهٔ پایین‌چپِ فیزیکی (حتی در RTL) */
.form-actions-row.fn-actions{display:flex;flex-wrap:wrap;gap:12px;direction:ltr;justify-content:flex-start}
.form-actions-row.fn-actions > *{direction:rtl}
.form-actions-row.fn-actions #formSubmitBtn{margin-inline-end:0;background:var(--tn-primary);border-color:var(--tn-primary);color:var(--tn-on-primary)}
.form-actions-row.fn-actions #formSubmitBtn:hover{background:var(--tn-primary-dark,var(--tn-primary));border-color:var(--tn-primary-dark,var(--tn-primary))}
@media (min-width:768px){
  body .form-wrap:has(.fn-cols-2){max-width:960px}
  body .form-wrap:has(.fn-cols-3){max-width:1200px}
  #formFieldsCard.fn-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}
  #formFieldsCard.fn-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}
}
@media (max-width:520px){
  .form-normal > .field-group{padding:16px}
  .form-normal > .field-group:first-child,.form-normal > .field-group:last-child{padding:16px}
  .form-actions-row.fn-actions{flex-direction:row}
}

/* ── انتخابگرِ تاریخ/ساعت (PR #70) — مشترکِ عادی و نظرسنجی ─── */

:is(.survey-mode,.form-normal) .pk{position:relative}
:is(.survey-mode,.form-normal) .pk .inp{padding-inline-end:52px!important;padding-inline-start:16px;text-align:start}
:is(.survey-mode,.form-normal) .pk-btn{position:absolute;inset-inline-end:6px;display:flex;align-items:center;justify-content:center;padding:0;top:50%;margin-top:-18px;width:36px;height:36px;border:0;border-radius:10px;background:transparent;color:var(--tn-primary);font-size:18px;line-height:1}
:is(.survey-mode,.form-normal) .pk-btn:hover{background:var(--tn-tint)}
:is(.survey-mode,.form-normal) /* `left`/`top`ِ فیزیکی عمدی است: JSِ `place()` در `form_show` خودش
   `pop.style.left` را می‌نویسد، پس معادلِ منطقی با آن در تضاد می‌افتاد. */
.pk-pop{position:fixed;top:0;left:0;z-index:2147483000;width:292px;max-width:calc(100vw - 16px);box-sizing:border-box;max-height:calc(100vh - 16px);overflow:auto;background:var(--tn-surface-solid);border-radius:16px;padding:12px;box-shadow:0 8px 28px rgba(0,0,0,.18);display:none;direction:rtl}
:is(.survey-mode,.form-normal) .pk-pop.open{display:block}
:is(.survey-mode,.form-normal) .pk-nav{display:flex;align-items:center;justify-content:space-between;margin-bottom:6px}
:is(.survey-mode,.form-normal) .pk-nav b{font-size:14px;cursor:pointer;padding:2px 8px;border-radius:8px;color:var(--tn-on-surface)}
:is(.survey-mode,.form-normal) .pk-nav b:hover{background:var(--tn-fill)}
:is(.survey-mode,.form-normal) .pk-nav b.y{color:var(--tn-primary)}
:is(.survey-mode,.form-normal) .pk-nb{background:none;border:0;color:var(--tn-primary);padding:4px 8px;line-height:0;display:inline-flex}
:is(.survey-mode,.form-normal) .pk-g{display:grid;grid-template-columns:repeat(7,1fr);gap:2px;text-align:center}
:is(.survey-mode,.form-normal) .pk-g.c3{grid-template-columns:repeat(3,1fr);gap:4px}
:is(.survey-mode,.form-normal) .pk-g.c6{grid-template-columns:repeat(6,1fr);gap:4px}
:is(.survey-mode,.form-normal) .pk-g.c4{grid-template-columns:repeat(4,1fr);gap:4px}
:is(.survey-mode,.form-normal) .pk-c{padding:7px 2px;font-size:13px;border-radius:8px;border:0;background:none;color:var(--tn-on-surface);min-height:32px}
:is(.survey-mode,.form-normal) .pk-c.h{color:var(--tn-on-surface-faint);font-size:11px;font-weight:700;cursor:default}
:is(.survey-mode,.form-normal) button.pk-c:hover{background:var(--tn-fill)}
:is(.survey-mode,.form-normal) .pk-c.sel{background:var(--tn-primary)!important;color:var(--tn-on-primary);font-weight:800}
:is(.survey-mode,.form-normal) .pk-c.today{box-shadow:inset 0 0 0 1px var(--tn-primary)}
:is(.survey-mode,.form-normal) .pk-foot{display:flex;justify-content:space-between;margin-top:8px;padding-top:8px;border-top:1px solid var(--tn-divider)}
:is(.survey-mode,.form-normal) .pk-foot button{border:0;background:none;color:var(--tn-primary);font-weight:700;font-size:13px;padding:4px 8px;border-radius:8px}
:is(.survey-mode,.form-normal) .pk-foot button:hover{background:var(--tn-tint)}
:is(.survey-mode,.form-normal) .jdp-time-row{display:flex;align-items:center;gap:6px;margin-top:8px;padding-top:8px;border-top:1px solid var(--tn-outline,#e2e8f0)}
:is(.survey-mode,.form-normal) .jdp-time-label{font-size:11px;color:#94a3b8;margin-inline-start:auto}
:is(.survey-mode,.form-normal) .jdp-time-input{width:50px;padding:6px;border:1px solid var(--tn-outline,#e2e8f0);border-radius:8px;text-align:center;font-size:14px;background:var(--tn-surface-card);color:inherit;font-family:inherit}
:is(.survey-mode,.form-normal) .jdp-time-sep{font-weight:700;color:#64748b}
:is(.survey-mode,.form-normal) .pk-tl{font-size:11px;color:var(--tn-on-surface-faint);margin:6px 0 4px;font-weight:700}

/* ── سوییچِ حالتِ نمایشِ فرم (#73) ─── */

.form-hero:has(> .fm-icons),#formFieldsCard.survey-mode{position:relative}
.fm-icons{position:absolute;inset-block-start:10px;inset-inline-start:10px;z-index:30;display:flex;gap:4px}
.fm-icons a{width:28px;height:28px;border-radius:8px;display:inline-flex;align-items:center;justify-content:center;color:var(--tn-on-surface-var);background:var(--tn-surface-dim,#eef1ef);text-decoration:none}
.fm-icons a:hover{color:var(--tn-primary)}
.fm-icons a.on{background:var(--tn-primary);color:var(--tn-on-primary,#fff)}
.fm-icons svg{display:block}

/* ── آنچه تا فاز ۴ درون‌خطی بود ─────────────────────────────────────────
   این خانواده‌ها بخشی از D-034 بودند: کلاس داشتند ولی هیچ قاعده‌ای در CSS
   نداشتند، چون ظاهرشان درونِ `style=` بود. */

/* تأییدِ شمارهٔ موبایل با کدِ پیامکی. */
.mobile-otp-box { margin-top: 8px; }
.mobile-otp-row { display: flex; gap: 8px; align-items: center; flex-wrap: wrap; }
.mobile-otp-code-row { margin-top: 8px; }
/* `display:flex`ِ بالا بر صفتِ `hidden` غلبه می‌کند، پس صریح خاموشش می‌کنیم. */
.mobile-otp-row[hidden] { display: none; }
.mobile-otp-timer { font-variant-numeric: tabular-nums; }
.mobile-otp-code { text-align: center; letter-spacing: .6em; font-size: 1.25em; max-width: 220px; }

/* راهنما/خطای زیرِ فیلد. */
.field-help { font-size: 12px; color: var(--tn-on-surface-faint); }
.field-hint-sm { font-size: 11px; color: var(--tn-on-surface-faint); margin-top: 4px; }
.field-old-file { font-size: 12px; color: var(--tn-on-surface-faint); margin-top: 4px; }
.field-error { font-size: 12px; color: var(--tn-error, #c62828); margin-top: 4px; }
.field-none { font-size: 13px; color: var(--tn-on-surface-faint); }
/* ورودیِ فایلِ پنهان که برچسبش کلیک را می‌گیرد. */
.file-input-hidden { display: none; }

/* یادداشتِ بالای فرم؛ رنگش گاهی از دادهٔ کاربر می‌آید (`--note-bg`/`--note-fg`). */
.form-prev-note--custom { background: var(--note-bg); color: var(--note-fg); }
.form-prev-note--error { background: var(--tn-error-bg); color: var(--tn-error); }
.form-done-msg--error { color: var(--tn-error, #c62828); }

/* فرمِ قفل‌شده (مهلت گذشته/سهمیه پر). */
.form-locked { pointer-events: none; opacity: .6; }

/* تلهٔ ربات: ورودیِ پنهان که باید در دسترسِ بات باشد ولی دیده نشود. */
.form-honeypot {
    position: absolute; inset-inline-start: 0; inset-block-start: 0;
    width: 1px; height: 1px; overflow: hidden; opacity: 0; pointer-events: none;
}

/* جعبهٔ شرایط/توافق‌نامهٔ پایانِ فرم. */
.field-group--note { margin-top: 16px; padding: 14px; background: var(--tn-surface-dim); border-radius: 10px; }
.hint--mt { margin-top: 16px; margin-bottom: 0; }

/* نوارِ میان‌بُرِ مدیریت در فهرستِ فرم‌ها. */
.forms-admin-bar {
    display: flex; gap: 8px; flex-wrap: wrap;
    margin-top: 20px; padding: 12px 16px;
    background: var(--tn-surface-dim); border-radius: 8px;
}
.forms-admin-bar .btn { display: inline-flex; align-items: center; gap: 4px; }

/* راهنمای زیرِ پرسشِ امنیتی (اندازه/فاصله‌اش با بقیهٔ راهنماها فرق داشت). */
.field-group--note .field-helper { font-size: 12px; color: var(--tn-on-surface-faint); margin-top: 6px; }

/* ── فاصلهٔ بالا از هدرِ بیرون‌ازجریان (JS در `_header-offset` مقدارش را می‌نویسد) ─── */
body.app-mode-site:has(.form-wrap, .form-done-wrap) .site-main { padding-top: var(--form-hd-offset, 32px); }
@media (max-width: 640px) {
  body.app-mode-site:has(.form-wrap, .form-done-wrap) .site-main { padding-top: var(--form-hd-offset, 20px); }
}

/* ── صفحهٔ «پاسخ شما ثبت شد»: کارتِ پاسخ‌ها (برچسب: مقدار) ─── */
.form-done-card { direction: rtl; }
.form-done-answers { margin: 0 0 24px; text-align: start; }
.form-done-answers-title { font-size: 14px; font-weight: 800; color: var(--tn-on-surface-var); margin: 0 0 10px; }
.form-done-list { margin: 0; padding: 0; display: grid; gap: 8px; background: var(--tn-fill, #f0f4f1); border-radius: 14px; padding: 8px; max-height: 320px; overflow: auto; }
.form-done-row { display: grid; grid-template-columns: minmax(0, 40%) minmax(0, 1fr); gap: 12px; align-items: baseline; padding: 10px 14px; background: var(--tn-surface-card, #fff); border-radius: 10px; }
.form-done-row dt { margin: 0; font-size: 13px; font-weight: 700; color: var(--tn-on-surface-var); overflow-wrap: anywhere; }
.form-done-row dd { margin: 0; font-size: 15px; font-weight: 600; color: var(--tn-on-surface); overflow-wrap: anywhere; white-space: pre-line; }
.form-done-actions { margin-top: 8px; gap: 12px; }
.form-done-actions .form-done-btn { min-width: 120px; text-align: center; }
@media (max-width: 520px) {
  .form-done-card { padding: 28px 18px; }
  .form-done-row { grid-template-columns: 1fr; gap: 2px; }
  .form-done-actions { flex-direction: column-reverse; }
  .form-done-actions .form-done-btn { width: 100%; box-sizing: border-box; }
}
