/* ── Design tokens — shared visual language with company-information-request.html ── */
:root{
  --ground:#FBFAF8;--surface:#FFFFFF;--surface-2:#F4F1EC;
  --ink:#1C1A17;--ink-2:#4A443E;--ink-3:#7C746B;
  --rule:#E2DCD3;--rule-2:#CFC7BB;
  --accent:#1E7A46;--accent-soft:#E3F1E9;
  --slate:#2F4858;--on-slate:#FBFAF8;
  --ok:#2E6F4E;--ok-soft:#E3F0E8;
  --wait:#8A6412;--wait-soft:#F7EEDA;
  --bad:#B23A2E;--bad-soft:#F7E7E3;
  --none:#6B6560;
  --paper-shadow:0 2px 6px rgba(28,26,23,.08),0 12px 34px rgba(28,26,23,.10);
  --shadow:0 1px 2px rgba(28,26,23,.06),0 4px 14px rgba(28,26,23,.05);
  --radius:4px;
  --f-ui:"IRANSansX","IRANSans","Vazirmatn","Vazir","Sahel",Tahoma,"Segoe UI",sans-serif;
  --f-doc:"B Nazanin","IRANSansX",Tahoma,"Vazirmatn",sans-serif;
  --f-mono:"Consolas","Roboto Mono","Courier New",monospace;
}
@media (prefers-color-scheme:dark){
  :root{
    --ground:#141311;--surface:#1D1B18;--surface-2:#262320;
    --ink:#EFEAE3;--ink-2:#C4BCB2;--ink-3:#8F877D;
    --rule:#332F2B;--rule-2:#453F39;
    --accent:#57C089;--accent-soft:#163529;
    --slate:#8FB0C4;--on-slate:#141311;
    --ok:#6DBF95;--ok-soft:#1E3229;
    --wait:#D4A63F;--wait-soft:#33290F;
    --bad:#E08A78;--bad-soft:#3A2420;
    --none:#8F877D;
    --paper-shadow:0 2px 8px rgba(0,0,0,.5),0 16px 40px rgba(0,0,0,.4);
    --shadow:0 1px 2px rgba(0,0,0,.4),0 4px 14px rgba(0,0,0,.3);
  }
}
:root[data-theme="dark"]{
  --ground:#141311;--surface:#1D1B18;--surface-2:#262320;
  --ink:#EFEAE3;--ink-2:#C4BCB2;--ink-3:#8F877D;
  --rule:#332F2B;--rule-2:#453F39;
  --accent:#57C089;--accent-soft:#163529;
  --slate:#8FB0C4;--on-slate:#141311;
  --ok:#6DBF95;--ok-soft:#1E3229;
  --wait:#D4A63F;--wait-soft:#33290F;
  --bad:#E08A78;--bad-soft:#3A2420;
  --none:#8F877D;
  --paper-shadow:0 2px 8px rgba(0,0,0,.5),0 16px 40px rgba(0,0,0,.4);
  --shadow:0 1px 2px rgba(0,0,0,.4),0 4px 14px rgba(0,0,0,.3);
}
:root[data-theme="light"]{
  --ground:#FBFAF8;--surface:#FFFFFF;--surface-2:#F4F1EC;
  --ink:#1C1A17;--ink-2:#4A443E;--ink-3:#7C746B;
  --rule:#E2DCD3;--rule-2:#CFC7BB;
  --accent:#1E7A46;--accent-soft:#E3F1E9;
  --slate:#2F4858;--on-slate:#FBFAF8;
  --ok:#2E6F4E;--ok-soft:#E3F0E8;
  --wait:#8A6412;--wait-soft:#F7EEDA;
  --bad:#B23A2E;--bad-soft:#F7E7E3;
  --none:#6B6560;
  --paper-shadow:0 2px 6px rgba(28,26,23,.08),0 12px 34px rgba(28,26,23,.10);
  --shadow:0 1px 2px rgba(28,26,23,.06),0 4px 14px rgba(28,26,23,.05);
}

*{box-sizing:border-box}
body{margin:0;background:var(--ground);color:var(--ink);font-family:var(--f-ui);
  font-size:14.5px;line-height:1.75;-webkit-font-smoothing:antialiased}
:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:2px}
button{font-family:var(--f-ui)}

/* ── Masthead ─────────────────────────────────────────────────── */
.masthead{border-bottom:1px solid var(--rule);background:var(--surface)}
.masthead-in{max-width:1320px;margin:0 auto;padding:24px 24px 20px}
.eyebrow{font-size:11.5px;letter-spacing:.14em;color:var(--accent);font-weight:700;margin:0 0 8px}
.masthead h1{margin:0;font-size:23px;line-height:1.45;font-weight:800;letter-spacing:-.01em;text-wrap:balance}
.masthead p{margin:9px 0 0;color:var(--ink-2);max-width:70ch;font-size:13.5px}
.meta-row{display:flex;flex-wrap:wrap;gap:8px;margin-top:14px}
.meta-chip{font-size:11.5px;color:var(--ink-3);border:1px solid var(--rule);border-radius:100px;
  padding:3px 11px;background:var(--ground)}

/* ── Tab bar ──────────────────────────────────────────────────── */
.bar{position:sticky;top:0;z-index:40;background:var(--surface);border-bottom:1px solid var(--rule);
  box-shadow:var(--shadow)}
.bar-in{max-width:1320px;margin:0 auto;padding:0 24px;display:flex;align-items:center;
  gap:4px;flex-wrap:wrap}
.formtab{border:0;background:transparent;padding:13px 16px;font-size:13.5px;font-weight:700;
  color:var(--ink-3);border-bottom:2px solid transparent;cursor:pointer;white-space:nowrap}
.formtab:hover{color:var(--ink)}
.formtab.active{color:var(--accent);border-bottom-color:var(--accent)}
.viewtoggle{margin-inline-start:auto;display:flex;gap:2px;background:var(--surface-2);
  border-radius:100px;padding:3px}
.viewbtn{border:0;background:transparent;padding:6px 14px;font-size:12.5px;font-weight:700;
  color:var(--ink-2);border-radius:100px;cursor:pointer}
.viewbtn.active{background:var(--accent);color:#fff}

/* ── Shell ────────────────────────────────────────────────────── */
.shell{max-width:1320px;margin:0 auto;padding:24px}

/* ── Builder view ─────────────────────────────────────────────── */
.builder-grid{display:grid;grid-template-columns:minmax(0,1fr) 300px;gap:24px;align-items:start}
@media (max-width:900px){.builder-grid{grid-template-columns:1fr}}
.scratch-grid{display:grid;grid-template-columns:340px minmax(0,1fr);gap:24px;align-items:start}
@media (max-width:960px){.scratch-grid{grid-template-columns:1fr}}
.scratch-preview-card{position:sticky;top:70px}
@media (max-width:960px){.scratch-preview-card{position:static}}
.scratch-preview-card .paper{max-width:100%}
.card{background:var(--surface);border:1px solid var(--rule);border-radius:var(--radius);padding:18px 20px}
.card h2{margin:0 0 4px;font-size:16px;font-weight:800}
.card .sub{margin:0 0 14px;font-size:12.5px;color:var(--ink-3)}
.stage-block{border:1px solid var(--rule);border-radius:var(--radius);margin-top:12px;overflow:hidden}
.stage-block-head{display:flex;align-items:center;gap:10px;padding:10px 14px;background:var(--surface-2);
  font-size:12.5px;font-weight:700}
.stage-block-head .role{color:var(--accent)}
.stage-block-head .kind{margin-inline-start:auto;font-size:10.5px;color:var(--ink-3);
  border:1px solid var(--rule-2);border-radius:100px;padding:1px 9px}
.field-tbl{width:100%;border-collapse:collapse;font-size:12.5px}
.field-tbl th{text-align:right;color:var(--ink-3);font-weight:700;padding:6px 14px;font-size:11px;
  border-bottom:1px solid var(--rule)}
.field-tbl td{padding:6px 14px;border-bottom:1px solid var(--rule)}
.field-tbl tr:last-child td{border-bottom:0}
.typepill{font-size:10.5px;font-weight:700;padding:1px 8px;border-radius:100px;
  background:var(--surface-2);color:var(--ink-2);white-space:nowrap}
.req-yes{color:var(--accent);font-weight:700}
.req-no{color:var(--ink-3)}
.builder-side .stat{display:flex;justify-content:space-between;padding:7px 0;border-bottom:1px solid var(--rule);
  font-size:13px}
.builder-side .stat:last-child{border-bottom:0}
.builder-side .stat b{font-variant-numeric:tabular-nums}
.addfield-row{display:flex;gap:6px;margin-top:12px;flex-wrap:wrap}
.addfield-row input,.addfield-row select{font-family:var(--f-ui);font-size:12.5px;
  border:1px solid var(--rule-2);border-radius:var(--radius);padding:6px 9px;background:var(--ground);
  color:var(--ink)}
.addfield-row input{flex:1;min-width:120px}
.btn{border:1px solid var(--rule-2);background:var(--surface);color:var(--ink);padding:7px 14px;
  border-radius:var(--radius);font-size:13px;font-weight:600;cursor:pointer;transition:background .15s}
.btn:hover{background:var(--surface-2)}
.btn.primary{background:var(--accent);border-color:var(--accent);color:#fff}
.btn.primary:hover{filter:brightness(1.08)}
.btn.ghost{border-color:transparent;background:transparent}
.btn.reject{background:var(--bad-soft);border-color:var(--bad);color:var(--bad)}
.btn.reject:hover{filter:brightness(1.05)}
.custom-field-tag{display:inline-flex;align-items:center;gap:6px;font-size:11.5px;
  background:var(--accent-soft);color:var(--accent);border-radius:100px;padding:3px 10px;
  margin-top:8px;margin-inline-end:6px}
.custom-field-tag button{border:0;background:transparent;color:inherit;font-size:14px;padding:0;
  line-height:1;cursor:pointer}

/* ── Scratch builder ──────────────────────────────────────────── */
.formtab.scratch-tab{color:var(--accent)}
.sc-stage{border:1px solid var(--rule);border-radius:var(--radius);padding:12px 14px;margin-top:12px;
  background:var(--surface-2)}
.sc-stage-head{display:flex;gap:8px;flex-wrap:wrap;align-items:center;margin-bottom:8px}
.sc-move-col{display:flex;flex-direction:column;gap:2px}
.sc-move-col button{padding:1px 7px;font-size:10px;line-height:1.4}
.sc-move-col button:disabled{opacity:.3;cursor:not-allowed}
.sc-role{flex:1;min-width:160px;font-family:var(--f-ui);font-size:13px;border:1px solid var(--rule-2);
  border-radius:var(--radius);padding:6px 10px;background:var(--surface);color:var(--ink)}
.sc-kind{font-family:var(--f-ui);font-size:12.5px;border:1px solid var(--rule-2);border-radius:var(--radius);
  padding:6px 8px;background:var(--surface);color:var(--ink)}
.sc-decision-opts{display:flex;gap:8px;margin-bottom:8px}
.sc-decopt{flex:1;font-family:var(--f-ui);font-size:12.5px;border:1px solid var(--rule-2);
  border-radius:var(--radius);padding:5px 9px;background:var(--surface);color:var(--ink)}
.sc-toolbar{display:flex;flex-wrap:wrap;align-items:center;gap:6px;margin-bottom:6px}
.sc-toolbar-label{font-size:11.5px;color:var(--ink-3);white-space:nowrap}
.sc-logo-row{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin:10px 0 4px;
  padding:10px 12px;border:1px dashed var(--rule-2);border-radius:var(--radius);
  background:var(--surface-2)}
.sc-logo-thumb{height:40px;max-width:150px;object-fit:contain;background:#fff;
  border:1px solid var(--rule-2);border-radius:2px;padding:3px}
.sc-logo-row .btn{padding:5px 12px;font-size:12.5px}
.ed-label{display:block;font-size:11.5px;color:var(--ink-3);margin:10px 0 3px}
.ed-field{width:100%;font-family:var(--f-ui);font-size:13px;border:1px solid var(--rule-2);
  border-radius:var(--radius);padding:6px 10px;background:var(--surface);color:var(--ink)}
.ed-row{display:flex;gap:8px}
.ed-role{flex:1;min-width:120px;font-family:var(--f-ui);font-size:12.5px;font-weight:700;
  border:1px solid var(--rule-2);border-radius:var(--radius);padding:4px 9px;
  background:var(--surface);color:var(--accent)}
.ed-badge{font-size:10.5px;font-weight:700;background:var(--wait-soft);color:var(--wait);
  border-radius:100px;padding:2px 9px;vertical-align:middle}
.sc-toolbar .btn{padding:4px 10px;font-size:11.5px}
.sc-preset{background:var(--accent-soft);border-color:var(--accent);color:var(--accent);font-weight:600}
.sc-preset:hover{filter:brightness(1.05)}
.sc-narrative{width:100%;font-family:var(--f-ui);font-size:13.5px;line-height:1.9;
  border:1px solid var(--rule-2);border-radius:var(--radius);padding:10px 12px;
  background:var(--surface);color:var(--ink);resize:vertical}
.sc-blanks-count{margin:5px 0 0;font-size:11.5px;color:var(--ink-3)}

/* ── Live-run view ────────────────────────────────────────────── */
.run-grid{display:grid;grid-template-columns:280px minmax(0,1fr);gap:24px;align-items:start}
@media (max-width:980px){.run-grid{grid-template-columns:1fr}}

/* Stepper */
.stepper-card{position:sticky;top:70px}
@media (max-width:980px){.stepper-card{position:static}}
.status-line{font-size:12.5px;color:var(--ink-2);background:var(--surface-2);border-radius:var(--radius);
  padding:10px 12px;margin-bottom:16px;line-height:1.8}
.status-line b{color:var(--ink);display:block;font-size:13px;margin-bottom:2px}
.status-line--yours{background:var(--accent-soft);border-inline-start:3px solid var(--accent)}
.status-line--yours b{color:var(--accent);font-size:13.5px}
.stepper{display:flex;flex-direction:column;gap:0}
.step{display:flex;gap:11px;position:relative;padding-bottom:22px}
.step:last-child{padding-bottom:0}
.step-rail{position:relative;display:flex;flex-direction:column;align-items:center;width:22px}
.step-dot{width:22px;height:22px;border-radius:50%;border:2px solid var(--rule-2);
  background:var(--surface);display:flex;align-items:center;justify-content:center;font-size:11px;
  font-weight:800;color:var(--ink-3);flex-shrink:0;z-index:1}
.step-line{position:absolute;top:22px;bottom:-22px;width:2px;background:var(--rule-2);left:50%;
  transform:translateX(-50%)}
.step:last-child .step-line{display:none}
.step.done .step-dot{background:var(--ok);border-color:var(--ok);color:#fff}
.step.done .step-line{background:var(--ok)}
.step.current .step-dot{background:var(--accent);border-color:var(--accent);color:#fff;
  box-shadow:0 0 0 4px var(--accent-soft)}
.step.rejected .step-dot{background:var(--bad);border-color:var(--bad);color:#fff}
.step-body{flex:1;min-width:0;padding-top:1px}
.step-role{font-size:13px;font-weight:700;color:var(--ink)}
.step.done .step-role{color:var(--ink-2)}
.step-note{font-size:11.5px;color:var(--ink-3);margin-top:2px}
.step.current .step-note{color:var(--accent);font-weight:600}

.timeline{margin-top:18px;border-top:1px solid var(--rule);padding-top:14px;max-height:340px;overflow-y:auto}
.timeline h3{margin:0 0 8px;font-size:11.5px;letter-spacing:.06em;color:var(--ink-3);font-weight:700}
.tl-empty{font-size:12px;color:var(--ink-3);padding:8px 0}
.tl-item{font-size:12px;color:var(--ink-2);padding:6px 0;border-bottom:1px dashed var(--rule);
  line-height:1.7}
.tl-item:last-child{border-bottom:0}
.tl-item .tl-time{color:var(--ink-3);font-size:11px;display:block;font-variant-numeric:tabular-nums}
.tl-item.tl-reject{color:var(--bad)}
.tl-item.tl-ok{color:var(--ok)}

/* The living document / paper sheet */
.paper-wrap{display:flex;flex-direction:column;gap:14px}
.paper-toolbar{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.paper-toolbar .spacer{flex:1}
.paper{background:#fff;color:#1a1a1a;color-scheme:light;box-shadow:var(--paper-shadow);
  border-radius:2px;padding:0;overflow:hidden;font-family:var(--f-doc);direction:rtl;
  --p-accent:#A63D2E;--p-accent-soft:#F2E4E0;--p-ok:#2E6F4E;--p-ok-soft:#E3F0E8;
  --p-bad:#A63D2E;--p-bad-soft:#F2E4E0;--p-rule-2:#CFC7BB}
.paper table{color:#1a1a1a}
.doc-header{width:100%;border-collapse:collapse;table-layout:fixed}
.doc-header td{border:1px solid #333;vertical-align:middle;padding:6px 10px;font-size:12.5px}
.doc-header .dh-logo{width:19%;text-align:center;padding:6px}
.doc-header .dh-logo img{max-width:100%;max-height:52px;object-fit:contain}
.doc-header .dh-title{width:35%;text-align:center;font-weight:800;font-size:15px}
.doc-header .dh-meta{width:27%;background:#FFF2CC;font-weight:700;font-size:11px;line-height:2.1}
.dh-meta-input{font-family:inherit;font-size:11px;font-weight:700;border:0;border-bottom:1px solid var(--p-accent);
  background:transparent;color:#1a1a1a;padding:0 2px;width:110px}
.doc-header .dh-code{width:19%;padding:0}
.doc-header .dh-code div{padding:4px 10px;font-weight:700;font-size:11px}
.doc-header .dh-code div:not(:last-child){border-bottom:1px solid #333}

/* سربرگ فرم‌های TOA-FR: دو لوگو کنار هم در راست‌ترین سلول، بلوک شماره در چپ */
.doc-header.fr-header .dh-logo{width:25%;white-space:nowrap}
.doc-header.fr-header .dh-logo img{max-height:46px;width:auto;max-width:45%;
  display:inline-block;vertical-align:middle;margin:0 3px}
.doc-header.fr-header .dh-title{width:47%}
.doc-header.fr-header .dh-code{width:28%}
.doc-body{padding:16px 22px 20px}
.doc-stage{margin-bottom:14px;padding-bottom:14px;border-bottom:1px dashed #333}
.doc-stage:last-child{border-bottom:0;margin-bottom:0}
.doc-stage-role{font-size:11px;font-weight:800;color:var(--p-accent);margin-bottom:6px;
  display:flex;align-items:center;gap:8px}
.doc-stage-role .stage-badge{font-size:9.5px;font-weight:700;border-radius:100px;padding:1px 8px}
.doc-stage-role .stage-badge.done{background:var(--p-ok-soft);color:var(--p-ok)}
.doc-stage-role .stage-badge.current{background:var(--p-accent-soft);color:var(--p-accent)}
.doc-stage-role .stage-badge.pending{background:#f0f0f0;color:#999}
.doc-stage-role .stage-badge.rejected{background:var(--p-bad-soft);color:var(--p-bad)}
.doc-para{font-size:14px;line-height:2.15;margin:0 0 8px}
.doc-para:last-child{margin-bottom:0}
.scratch-preview-card .dh-title{font-size:20px}
.scratch-preview-card .doc-para{font-size:16px;line-height:2.3}
.scratch-preview-card .doc-body{padding:22px 28px 26px}
.scratch-preview-card .doc-stage-role{font-size:13px}
.doc-blank{display:inline-block;min-width:70px;border-bottom:1px solid #555;padding:0 3px;
  text-align:center;font-weight:700}
.doc-blank.empty{color:#aaa;font-weight:400}
.doc-blank.jalali-date{border-bottom:1px solid #555;min-width:0}
.doc-blank.jalali-date select{font-family:inherit;font-size:inherit;border:0;background:transparent;
  color:#1a1a1a;padding:0 1px;cursor:pointer}
.doc-blank input,.doc-blank select{font-family:inherit;font-size:inherit;border:0;border-bottom:1px solid var(--p-accent);
  background:transparent;text-align:center;padding:0 2px;width:auto;min-width:70px;color:#1a1a1a}
.doc-blank input:focus,.doc-blank select:focus{outline:none;background:var(--p-accent-soft)}
.doc-check{display:inline-flex;align-items:center;gap:4px;cursor:pointer;font-weight:400;
  margin:0 3px;white-space:nowrap}
.doc-check input{position:absolute;opacity:0;width:0;height:0}
.doc-check.locked{cursor:default}
.doc-check .box{font-size:13px}
.doc-pending{opacity:.4;filter:grayscale(.3)}
.doc-signature{margin-top:6px;font-size:11.5px;color:#666;font-style:italic;display:flex;
  align-items:center;gap:8px}
.sig-row{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.sig-file-input{position:absolute;opacity:0;width:0;height:0;pointer-events:none}
.sig-upload{font-family:var(--f-ui);font-size:12px;padding:5px 12px;border:1px dashed var(--p-accent);
  background:var(--p-accent-soft);color:var(--p-accent);border-radius:var(--radius);cursor:pointer}
.sig-thumb{height:38px;max-width:140px;object-fit:contain;background:#fff;border:1px solid #ccc;
  border-radius:2px;padding:2px}
.sig-thumb-print{height:46px;max-width:170px}
.sig-remove{font-family:var(--f-ui);font-size:11px;color:var(--p-bad);padding:3px 8px}
.doc-decision-buttons{display:flex;gap:8px;margin-top:8px}
.dec-btn{border:1px solid var(--p-rule-2);background:#fafafa;color:#333;padding:6px 16px;
  border-radius:100px;font-size:12.5px;font-weight:700;cursor:pointer;font-family:var(--f-ui)}
.dec-btn.ok:hover{border-color:var(--p-ok);color:var(--p-ok);background:var(--p-ok-soft)}
.dec-btn.no:hover{border-color:var(--p-bad);color:var(--p-bad);background:var(--p-bad-soft)}
.dec-btn.mid:hover{border-color:#8A6412;color:#8A6412;background:#F7EEDA}
.dec-btn.picked-ok{background:var(--p-ok-soft);border-color:var(--p-ok);color:var(--p-ok)}
.dec-btn.picked-no{background:var(--p-bad-soft);border-color:var(--p-bad);color:var(--p-bad)}
.dec-btn.picked-mid{background:#F7EEDA;border-color:#8A6412;color:#8A6412}

/* item table (TOA-29) */
.item-tbl-wrap{overflow-x:auto;margin:10px 0 14px;border:1px solid #999}
table.item-tbl{border-collapse:collapse;width:100%;min-width:920px;font-size:11.5px;font-family:var(--f-doc)}
table.item-tbl th{background:#eee;border:1px solid #999;padding:5px 6px;font-weight:800}
table.item-tbl td{border:1px solid #999;padding:0}
table.item-tbl td input{width:100%;border:0;background:transparent;padding:5px 6px;font-size:11.5px;
  font-family:inherit;text-align:center;color:#1a1a1a}
table.item-tbl td input:focus{outline:2px solid var(--p-accent);outline-offset:-2px;background:#fff}
table.item-tbl td.tot{font-weight:800;text-align:center;background:#fafafa}
.item-date-cell{padding:2px 3px;white-space:nowrap}
.item-date-cell select{font-family:inherit;font-size:10.5px;border:0;background:transparent;
  color:#1a1a1a;padding:1px 0;cursor:pointer}
table.item-tbl td.auto-cell{background:#f1efe9;color:#666;font-style:italic;cursor:not-allowed}
table.item-tbl th .auto-tag{display:block;font-size:9px;font-weight:600;font-style:italic;color:#888;
  margin-top:1px}
.item-actions{display:flex;justify-content:flex-end;margin-top:6px}

/* daily-report exact sheet (03 05 1405.xlsx) */
.dr-wrap{overflow-x:auto}
table.dr-sheet{border-collapse:collapse;width:100%;min-width:780px;table-layout:fixed;
  font-family:var(--f-doc);font-size:11px;color:#1a1a1a}
table.dr-sheet td{border:1px solid #444;padding:2px 4px;text-align:center;vertical-align:middle;
  overflow:hidden;word-wrap:break-word}
/* ردیف نام پروژه: کشوی انتخاب و ورودی متنی کنار هم، نه زیر هم.
   flex روی wrapper است نه روی td، چون display:flex ساختار ستونی جدول را می‌شکند. */
table.dr-sheet .dr-proj-pick{display:flex;gap:8px;align-items:center;justify-content:center}
table.dr-sheet .dr-proj-pick select{flex:0 0 auto;max-width:40%}
table.dr-sheet .dr-proj-pick input{flex:1 1 auto;min-width:0}

/* سربرگ در thead است تا در چاپ ابتدای هر صفحه تکرار شود */
table.dr-sheet thead{display:table-header-group}
table.dr-sheet thead td{border:1px solid #000}
table.dr-sheet .dr-logo-row td{border:0;padding:2px 0;vertical-align:middle}
table.dr-sheet .dr-logo-row img{display:block;max-width:100%;object-fit:contain}
/* ارتفاع‌ها ~۳۰٪ کوچک‌تر از نسخهٔ اول تا سربرگ جای کمتری از صفحه بگیرد */
/* margin-inline منطقی است: در RTL خودش راست/چپ را درست می‌کند */
table.dr-sheet .dr-logo-r img{height:24mm;margin-inline:0 auto}  /* چسبیده به راستِ کادر */
table.dr-sheet .dr-logo-m img{height:22mm;margin-inline:auto}    /* دقیقاً وسط */
table.dr-sheet .dr-logo-l img{height:20mm;margin-inline:auto 0}  /* چسبیده به چپِ کادر */
table.dr-sheet .dr-title-row td{font-size:15px;font-weight:800;padding:6px 4px}
table.dr-sheet .dr-project-row td{font-weight:800;padding:4px}
table.dr-sheet .dr-sec td{font-weight:800;background:#eee;padding:4px}
table.dr-sheet .dr-head td{font-weight:800;background:#f5f5f5}
table.dr-sheet .dr-lbl{font-weight:700;white-space:nowrap;font-size:10.5px}
table.dr-sheet .dr-r{text-align:right}
table.dr-sheet .dr-num{font-weight:700;background:#fafafa}
table.dr-sheet td input{width:100%;border:0;background:transparent;padding:2px 3px;font-size:11px;
  font-family:inherit;text-align:center;color:#1a1a1a}
table.dr-sheet td input:focus{outline:2px solid var(--p-accent);outline-offset:-2px;background:#fff}
table.dr-sheet td input.dr-inline{width:auto;min-width:100px;max-width:65%;text-align:right;
  border-bottom:1px dotted #999}
table.dr-sheet td select{font-family:inherit;font-size:10px;border:0;background:transparent;
  color:#1a1a1a;cursor:pointer;max-width:100%}
/* سه کشوی روز/ماه/سال: با flex کنار هم می‌نشینند و اگر جا کم بود می‌شکنند.
   nowrap قبلی باعث می‌شد کشوی «سال» از سلول بیرون بزند و دیده نشود. */
table.dr-sheet .dr-date-cell{padding:1px}
table.dr-sheet .dr-jd{display:flex;flex-wrap:wrap;gap:2px;align-items:center;justify-content:center}
table.dr-sheet .dr-jd select{flex:1 1 auto;min-width:3.2em;max-width:100%}
table.dr-sheet .dr-jd-lbl{flex:0 0 auto;font-weight:700;padding-inline-end:2px}
/* «وضعیت کارگاه:» روی سلول باریکِ rowspan می‌نشیند؛ استثنائاً nowrap ندارد تا
   دو خطی شود و کامل دیده بماند (بقیهٔ برچسب‌ها همچنان nowrap‌اند). */
/* «وضعیت کارگاه:» روی باریک‌ترین ستون (۳٫۷٪) می‌نشیند؛ افقی حتی یک کلمه‌اش
   جا نمی‌شود، پس عمودی نوشته می‌شود — سلول rowspan=۲ ارتفاع کافی دارد. */
table.dr-sheet .dr-lbl.dr-wrap-lbl{white-space:nowrap;writing-mode:vertical-rl;
  transform:rotate(180deg);text-align:center;padding:2px 1px;font-size:10px}
table.dr-sheet .dr-auto{background:#f1efe9;color:#555}
table.dr-sheet .dr-obstacles td{padding:0;text-align:right;vertical-align:top}
table.dr-sheet .dr-obstacles textarea{width:100%;border:0;background:transparent;resize:vertical;
  font-family:inherit;font-size:11.5px;line-height:1.9;padding:6px 8px;min-height:110px;color:#1a1a1a}
table.dr-sheet .dr-obstacles textarea:focus{outline:2px solid var(--p-accent);outline-offset:-2px}
.dr-obstacles-text{white-space:pre-wrap;text-align:right;padding:6px 8px;min-height:110px;line-height:1.9}

/* Post-form actor action bar (outside the paper, app-level UI) */
.actionbar{background:var(--surface);border:1px solid var(--rule);border-radius:var(--radius);
  padding:14px 18px;transition:box-shadow .3s,border-color .3s}
.actionbar .who{font-size:12px;color:var(--ink-3);margin-bottom:10px}
.actionbar .who b{color:var(--ink)}
.actionbar-buttons{display:flex;gap:10px;flex-wrap:wrap}
.actionbar-pulse{border-color:var(--accent);box-shadow:0 0 0 4px var(--accent-soft)}
@media (prefers-reduced-motion:reduce){.actionbar{transition:none}}
.missing-box{background:var(--bad-soft);color:var(--bad);border:1px solid var(--bad);
  border-radius:var(--radius);padding:10px 14px;font-size:12.5px;margin-bottom:10px;line-height:1.9}
.missing-box ul{margin:4px 18px 4px 0;padding:0}
.missing-box li{margin:0}
.missing-box .missing-hint{font-size:11px;opacity:.85}
.field-missing{outline:2px solid #C0392B !important;outline-offset:1px;border-radius:2px;
  background:#FBEAE7 !important;position:relative}
table.dr-sheet td.field-missing{overflow:visible}
select.jd-missing{color:#C0392B !important;font-weight:700}
.field-missing[data-missing-label]::after{content:attr(data-missing-label);position:absolute;
  top:-10px;inset-inline-start:-2px;background:#C0392B;color:#fff;font-size:9.5px;font-weight:700;
  font-family:var(--f-ui);padding:1px 7px;border-radius:3px;white-space:nowrap;z-index:6;
  pointer-events:none;line-height:1.6}
@media print{
  .field-missing{outline:none !important;background:none !important}
  .field-missing[data-missing-label]::after{display:none}
}
.rejected-banner{background:var(--bad-soft);color:var(--bad);border-radius:var(--radius);
  padding:12px 16px;font-size:13px;font-weight:700;text-align:center}
.done-banner{background:var(--ok-soft);color:var(--ok);border-radius:var(--radius);
  padding:12px 16px;font-size:13px;font-weight:700;text-align:center}

footer{max-width:1320px;margin:24px auto 60px;padding:0 24px;color:var(--ink-2);font-size:12.5px;
  line-height:1.9}
footer hr{border:0;border-top:1px solid var(--rule);margin:0 0 16px}

#print-root{display:none}
@media print{
  body > *:not(#print-root){display:none}
  #print-root{display:block}
  #print-root .paper{box-shadow:none;border-radius:0}
  html,body{height:auto;margin:0;background:#fff}
  .doc-blank input,.doc-blank select{border-bottom:1px solid #555}
  .doc-blank:not(.empty){border-bottom:none}
  .doc-decision-buttons{display:none}
  .stage-badge{display:none}
  .doc-stage-role{display:none}
  .doc-pending{opacity:1;filter:none}
  .doc-stage{break-inside:avoid;page-break-inside:avoid;margin-bottom:8px;padding-bottom:8px}
  .doc-para{line-height:1.85;margin:0 0 5px;font-size:12.5px}
  .doc-body{padding:10px 18px 14px}
  .doc-header td{padding:4px 8px;font-size:11px}
  .doc-header .dh-title{font-size:13px}
  .doc-header .dh-meta{line-height:1.75}
  table.item-tbl th,table.item-tbl td{padding:3px 5px;font-size:10px}
  table.item-tbl th .auto-tag{display:none}
  .item-tbl-wrap{margin:6px 0 8px}
  .doc-stage-role{margin-bottom:3px}
  table.dr-sheet{min-width:0;font-size:9.5px}
  table.dr-sheet td{padding:1px 3px}
  table.dr-sheet .dr-auto{background:none;color:#1a1a1a}
  table.dr-sheet .dr-num{background:none}
  table.dr-sheet .dr-title-row td{font-size:13px;padding:4px}
  table.dr-sheet .dr-obstacles textarea{min-height:80px}
  .dr-obstacles-text{min-height:80px}
}
@media (prefers-reduced-motion:reduce){*{transition:none}}
