/* ============================================================
   استایل‌های اختصاصی صفحات.
   پوسته (چیدمان، کارتابل، نوار بالا)  → shell.css
   کامپوننت‌های مشترک (دکمه، جدول، مودال) → components.css
   رنگ‌ها و اندازه‌ها                     → tokens.css
   ============================================================ */


/* ===== LOGIN ===== */
#login-page{min-height:100vh;display:flex;align-items:center;justify-content:center;background:var(--bg);position:relative;overflow:hidden;padding:var(--sp-4)}
#login-page::before{content:'';position:absolute;inset:0;background-image:url('data:image/jpeg;base64,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');background-size:420px;background-repeat:repeat;background-position:center;opacity:.04;pointer-events:none}
.login-card{width:100%;max-width:420px;background:var(--surface);border:1px solid var(--border);border-radius:var(--r-xl);padding:var(--sp-8) var(--sp-8) var(--sp-6);box-shadow:var(--shadow-lg);position:relative;animation:fadeUp .45s cubic-bezier(.4,0,.2,1)}
@keyframes fadeUp{from{opacity:0;transform:translateY(14px)}to{opacity:1;transform:none}}
.login-logo{text-align:center;margin-bottom:var(--sp-6)}
.logo-emblem{display:inline-flex;align-items:center;justify-content:center;margin-bottom:var(--sp-2)}
.login-org{font-size:var(--fs-md);font-weight:700;color:var(--text-muted);margin-bottom:var(--sp-2)}
.login-title{font-size:var(--fs-xl);font-weight:800;color:var(--text);line-height:1.45}
.login-subtitle{font-size:var(--fs-base);color:var(--text-muted);margin-top:var(--sp-2)}
.divider{height:1px;background:var(--border);margin:var(--sp-6) 0}
.fgroup{margin-bottom:var(--sp-4)}
.fgroup label{display:block;font-size:var(--fs-sm);font-weight:700;color:var(--text-secondary);margin-bottom:var(--sp-2)}
.fgroup input{width:100%;background:var(--surface);border:1px solid var(--border);border-radius:var(--r-md);padding:10px var(--sp-3);color:var(--text);font-family:inherit;font-size:var(--fs-md);outline:none;transition:border-color var(--transition),box-shadow var(--transition)}
.fgroup input:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-subtle)}
.login-btn{width:100%;background:var(--accent);color:var(--text-on-accent);border:none;border-radius:var(--r-md);padding:11px;font-family:inherit;font-size:var(--fs-md);font-weight:700;cursor:pointer;margin-top:var(--sp-2);transition:background var(--transition)}
.login-btn:hover{background:var(--accent-hover)}
.login-slogan{text-align:center;font-size:var(--fs-xs);color:var(--text-muted);margin-top:var(--sp-4)}
.login-footer{text-align:center;margin-top:var(--sp-5);font-size:var(--fs-xs);color:var(--text-muted);line-height:1.9}


/* ===== KPI ===== */
.kpi-grid{display:grid;grid-template-columns:repeat(6,1fr);gap:13px;margin-bottom:24px}
.kpi{background:#ffffff;border:1.5px solid rgba(21,101,168,.15);border-radius:14px;padding:20px 16px;position:relative;overflow:hidden;cursor:default;transition:transform .18s,box-shadow .18s;box-shadow:0 2px 8px rgba(21,101,168,.06)}
.kpi:hover{transform:translateY(-3px);box-shadow:0 12px 32px rgba(0,0,0,.3)}
.kpi{cursor:pointer}
.kpi-hint{font-size:9px;color:rgba(255,255,255,.25);margin-top:6px;transition:color .2s}
.kpi:hover .kpi-hint{color:rgba(255,255,255,.55)}

/* ===== KPI DETAIL PANEL ===== */
.kpi-panel-ov{position:fixed;inset:0;background:rgba(0,0,0,.65);z-index:600;display:none;align-items:flex-start;justify-content:flex-end}
.kpi-panel-ov.open{display:flex;animation:fadeOvIn .2s ease}
@keyframes fadeOvIn{from{opacity:0}to{opacity:1}}
.kpi-panel{width:520px;max-width:96vw;height:100vh;background:var(--bg-panel);border-left:1px solid var(--border);display:flex;flex-direction:column;animation:slidePanel .25s ease}
@keyframes slidePanel{from{transform:translateX(100%)}to{transform:translateX(0)}}
.kpi-panel-head{padding:18px 20px 14px;border-bottom:1px solid var(--border);display:flex;align-items:center;gap:10px;flex-shrink:0}
.kpi-panel-icon{width:40px;height:40px;border-radius:10px;display:flex;align-items:center;justify-content:center;font-size:20px;flex-shrink:0}
.kpi-panel-title{font-size:14px;font-weight:800;color:var(--white);flex:1}
.kpi-panel-count{font-size:11px;font-weight:700;padding:3px 9px;border-radius:12px;background:rgba(30,136,229,.18);color:var(--blue-light)}
.kpi-panel-close{background:none;border:none;color:var(--gray-mid);font-size:20px;cursor:pointer;padding:4px;transition:color .15s;line-height:1}
.kpi-panel-close:hover{color:var(--red)}
.kpi-panel-search{padding:12px 16px;border-bottom:1px solid var(--border);flex-shrink:0}
.kpi-panel-search input{width:100%;background:var(--bg-card);border:1.5px solid var(--border);border-radius:8px;padding:9px 13px;color:var(--white);font-family:inherit;font-size:12.5px;outline:none}
.kpi-panel-search input:focus{border-color:var(--blue-accent)}
.kpi-panel-body{flex:1;overflow-y:auto;padding:10px 16px 20px}
.kpi-item{background:var(--bg-card);border:1px solid var(--border);border-radius:10px;padding:13px 15px;margin-bottom:8px;cursor:pointer;transition:border-color .15s,background .15s}
.kpi-item:hover{border-color:rgba(30,136,229,.35);background:rgba(30,136,229,.06)}
.kpi-item-row1{display:flex;align-items:center;justify-content:space-between;margin-bottom:6px}
.kpi-item-name{font-size:13px;font-weight:800;color:var(--white)}
.kpi-item-row2{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.kpi-item-meta{font-size:11px;color:var(--gray-mid)}
.kpi-item-days{font-size:11px;font-weight:700}
.kpi-panel-empty{text-align:center;padding:40px;color:var(--gray-mid);font-size:13px}
.kpi::before{content:'';position:absolute;top:0;right:0;left:0;height:3px;border-radius:12px 12px 0 0}
.kpi.c-blue::before{background:var(--blue-accent)}
.kpi.c-azure::before{background:#42a5f5}
.kpi.c-yellow::before{background:var(--yellow)}
.kpi.c-slate::before{background:var(--slate)}
.kpi.c-green::before{background:var(--green)}
.kpi.c-cyan::before{background:var(--cyan)}
.kpi.c-orange::before{background:#f57c00}
.kpi.c-red::before{background:var(--red)}
.kpi.c-orange .kpi-val{color:#f57c00}
.kpi.c-red .kpi-val{color:var(--red)}
.kpi-icon{font-size:22px;margin-bottom:9px}
.kpi-val{font-size:30px;font-weight:900;line-height:1;margin-bottom:4px;font-variant-numeric:tabular-nums}
.kpi.c-blue .kpi-val{color:var(--blue-light)}
.kpi.c-azure .kpi-val{color:#42a5f5}
.kpi.c-yellow .kpi-val{color:var(--yellow)}
.kpi.c-slate .kpi-val{color:var(--slate)}
.kpi.c-green .kpi-val{color:var(--green)}
.kpi.c-cyan .kpi-val{color:var(--cyan)}
.kpi-lbl{font-size:10.5px;color:var(--gray-mid);font-weight:600}

/* ===== CHARTS ===== */
.charts-grid{display:grid;grid-template-columns:1fr 1fr 1fr;gap:16px;margin-bottom:22px}
.chart-card{background:var(--bg-card);border:1px solid var(--border);border-radius:13px;padding:18px 16px}
.chart-title{font-size:12.5px;font-weight:800;color:var(--white);margin-bottom:14px}
.chart-wrap{position:relative;height:200px}
.delay-table-wrap{background:var(--bg-card);border:1px solid var(--border);border-radius:13px;padding:18px 16px;margin-bottom:22px}

/* ===== MONITOR TABLE ===== */
.panel{background:var(--bg-card);border:1px solid var(--border);border-radius:13px;overflow:hidden;margin-bottom:22px}
.panel-head{display:flex;align-items:center;justify-content:space-between;padding:14px 18px;border-bottom:1px solid var(--border);flex-wrap:wrap;gap:10px}
.panel-title{font-size:13px;font-weight:800;color:var(--white)}
.panel-actions{display:flex;gap:8px;align-items:center;flex-wrap:wrap}
.sinput{background:var(--bg-panel);border:1.5px solid var(--border);border-radius:7px;padding:7px 11px;color:var(--white);font-family:inherit;font-size:12px;outline:none;width:170px}
.sinput:focus{border-color:var(--blue-accent)}
.sinput::placeholder{color:var(--gray-dark)}
select.sinput{appearance:none;cursor:pointer}
select.sinput option{background:var(--bg-card)}
.btn{padding:7px 14px;border-radius:7px;font-size:12px;font-weight:700;font-family:inherit;cursor:pointer;border:none;transition:opacity .18s,transform .1s}
.btn:active{transform:scale(.97)}
.btn-primary{background:var(--blue-accent);color:#fff}
.btn-outline{background:transparent;color:var(--blue-light);border:1.5px solid var(--border)}
.btn-green{background:var(--green);color:#fff}
.btn-red{background:var(--red);color:#fff}
.btn-sm{padding:5px 11px;font-size:11px}
.btn:hover{opacity:.88}
/* استایل جدول‌ها به components.css منتقل شد (سبک GitHub Primer).
   رول‌های قدیمی اینجا حذف شدند چون این فایل آخر لود می‌شود و بی‌صدا روی آن‌ها
   می‌نشست: حاشیه‌ی تیره، خط آبی بین ردیف‌ها و وزن فونت نادرست. */
tbody tr { cursor:pointer; }
.tcode{font-family:monospace;font-size:11.5px;color:var(--blue-light);background:rgba(30,136,229,.12);padding:3px 7px;border-radius:5px}
.sbadge{display:inline-flex;align-items:center;gap:5px;padding:4px 10px;border-radius:20px;font-size:11px;font-weight:800;white-space:nowrap}
.sdot{width:6px;height:6px;border-radius:50%}
.s-done{background:rgba(38,169,108,.14);color:var(--green)}.s-done .sdot{background:var(--green)}
.s-inrepair{background:rgba(30,136,229,.14);color:var(--blue-light)}.s-inrepair .sdot{background:var(--blue-light)}
.s-waiting{background:rgba(249,168,37,.14);color:var(--yellow)}.s-waiting .sdot{background:var(--yellow)}
.s-delayed{background:rgba(229,57,53,.14);color:var(--red)}.s-delayed .sdot{background:var(--red)}
.s-scrap{background:rgba(96,125,139,.14);color:var(--slate)}.s-scrap .sdot{background:var(--slate)}
.s-outsource{background:rgba(142,68,173,.14);color:#8e44ad}.s-outsource .sdot{background:#8e44ad}
.s-entered{background:rgba(0,150,136,.14);color:#009688}.s-entered .sdot{background:#009688}
.s-pending-entry{background:rgba(95,99,242,.14);color:#5f63f2}.s-pending-entry .sdot{background:#5f63f2}
.delay-ok{color:var(--green);font-size:11.5px;font-weight:700}
.delay-warn{color:var(--yellow);font-size:11.5px;font-weight:700}
.delay-high{color:var(--red);font-size:11.5px;font-weight:700}
.legend-row{display:flex;gap:18px;align-items:center;padding:11px 18px;border-top:1px solid var(--border);flex-wrap:wrap}
.leg{display:flex;align-items:center;gap:5px;font-size:11px;color:var(--gray-mid)}
.ldot{width:9px;height:9px;border-radius:50%}

/* ===== MODAL ===== */
.modal-overlay{position:fixed;inset:0;background:rgba(0,0,0,.65);z-index:500;display:none;align-items:center;justify-content:center}
.modal-overlay.open{display:flex}
.modal{background:var(--bg-card);border:1px solid var(--border);border-radius:16px;width:580px;max-width:96vw;max-height:90vh;overflow-y:auto;box-shadow:0 24px 80px rgba(0,0,0,.55);animation:fadeUp .3s ease}
.modal-head{display:flex;align-items:center;justify-content:space-between;padding:18px 22px;border-bottom:1px solid var(--border)}
.modal-title{font-size:14px;font-weight:800;color:var(--white)}
.modal-close{background:none;border:none;color:var(--gray-dark);font-size:20px;cursor:pointer;padding:2px 6px;border-radius:5px;transition:color .18s}
.modal-close:hover{color:var(--red)}
.modal-body{padding:22px}
.modal-sec{font-size:11.5px;font-weight:800;color:var(--blue-light);margin:14px 0 8px;letter-spacing:.04em}
.info-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.info-item{background:var(--bg-panel);border-radius:8px;padding:10px 13px}
.info-lbl{font-size:10.5px;color:var(--gray-mid);margin-bottom:4px;font-weight:600}
.info-val{font-size:13px;font-weight:700;color:var(--white)}
.timeline{margin-top:6px}
.tl-item{display:flex;gap:12px;margin-bottom:14px;align-items:flex-start}
.tl-dot-wrap{display:flex;flex-direction:column;align-items:center;gap:0}
.tl-dot{width:10px;height:10px;border-radius:50%;background:var(--blue-accent);flex-shrink:0;margin-top:3px}
.tl-line{width:2px;flex:1;background:var(--border);min-height:18px}
.tl-content{flex:1}
.tl-action{font-size:12.5px;font-weight:700;color:var(--white)}
.tl-meta{font-size:11px;color:var(--gray-mid);margin-top:2px}
.edit-row{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:14px}
.egroup label{display:block;font-size:11.5px;font-weight:700;color:var(--gray-mid);margin-bottom:6px}
.egroup input,.egroup select{width:100%;background:var(--bg-panel);border:1.5px solid var(--border);border-radius:8px;padding:9px 12px;color:var(--white);font-family:inherit;font-size:13px;outline:none}
.egroup input:focus,.egroup select:focus{border-color:var(--blue-accent)}
.egroup select option{background:var(--bg-card)}
.modal-foot{padding:16px 22px;border-top:1px solid var(--border);display:flex;gap:10px;justify-content:flex-end}

/* ===== ADD FORM ===== */
.form-card{background:var(--bg-card);border:1px solid var(--border);border-radius:13px;padding:24px;max-width:680px}
.form-row{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-bottom:15px}
.fgroup2 label{display:block;font-size:11.5px;font-weight:700;color:var(--gray-mid);margin-bottom:6px}
.fgroup2 input,.fgroup2 select{width:100%;background:var(--bg-panel);border:1.5px solid var(--border);border-radius:8px;padding:10px 13px;color:var(--white);font-family:inherit;font-size:13px;outline:none;appearance:none}
.fgroup2 input:focus,.fgroup2 select:focus{border-color:var(--blue-accent)}
.fgroup2 select option{background:var(--bg-card)}
.submit-btn{background:linear-gradient(90deg,var(--blue-mid),var(--blue-accent));color:#fff;border:none;border-radius:9px;padding:12px 30px;font-family:inherit;font-size:14px;font-weight:800;cursor:pointer;margin-top:8px;transition:opacity .2s}
.submit-btn:hover{opacity:.9}

/* ===== REPORTS ===== */
.reports-filter{background:var(--bg-card);border:1px solid var(--border);border-radius:13px;padding:20px 22px;margin-bottom:20px}
.reports-output{display:none}
.reports-output.show{display:block}
.chart-row{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-bottom:20px}
.rpt-chart-card{background:var(--bg-card);border:1px solid var(--border);border-radius:13px;padding:18px 16px}
.print-area{background:var(--bg-card);border:1px solid var(--border);border-radius:13px;padding:22px;margin-bottom:20px}
.print-title{font-size:14px;font-weight:800;margin-bottom:16px;color:var(--blue-light);border-bottom:1px solid var(--border);padding-bottom:10px}
/* print via popup window */
.print-frame-wrap{display:none}
/* Print form styles (used inside print window) */
.pf-page{font-family:'Vazirmatn',Tahoma,sans-serif;direction:rtl;background:#fff;color:#111;font-size:13px;line-height:1.7;padding:0}
.pf-header{display:flex;align-items:center;justify-content:space-between;padding:16px 20px 12px;border-bottom:3px solid var(--brand);margin-bottom:16px}
.pf-logo{width:70px;height:70px;object-fit:contain}
.pf-company{text-align:center;flex:1}
.pf-company-name{font-size:17px;font-weight:900;color:var(--brand)}
.pf-company-sub{font-size:12px;color:var(--accent);margin-top:2px}
.pf-doc-info{text-align:left;font-size:11px;color:#333;line-height:1.9}
.pf-title{text-align:center;font-size:16px;font-weight:900;color:var(--brand);background:var(--surface-2);padding:9px 0;border-radius:6px;margin-bottom:14px;border:1px solid rgba(21,101,168,.2)}
.pf-section{margin-bottom:16px}
.pf-section-title{font-size:13px;font-weight:900;color:var(--brand);border-bottom:2px solid var(--accent);padding-bottom:5px;margin-bottom:10px}
.pf-grid{display:grid;grid-template-columns:1fr 1fr;gap:6px 20px}
.pf-grid-3{display:grid;grid-template-columns:1fr 1fr 1fr;gap:6px 16px}
.pf-field{display:flex;gap:6px;font-size:12.5px;padding:5px 8px;border-bottom:1px solid #e8eef7}
.pf-label{font-weight:700;color:var(--accent);white-space:nowrap;min-width:110px}
.pf-value{color:#111;flex:1}
.pf-table{width:100%;border-collapse:collapse;font-size:12px;margin-top:4px}
.pf-table th{background:var(--brand);color:#fff;padding:7px 10px;text-align:right;font-weight:700}
.pf-table td{padding:6px 10px;border-bottom:1px solid #d0dbe8;vertical-align:top}
.pf-table tr:nth-child(even) td{background:var(--surface-2)}
.pf-badge{display:inline-block;padding:2px 10px;border-radius:10px;font-size:11px;font-weight:700}
.pf-footer{margin-top:20px;padding-top:10px;border-top:1.5px solid var(--brand);display:flex;justify-content:space-between;font-size:11px;color:#555}
.pf-sign{text-align:center;border-top:1px solid #aaa;padding-top:6px;width:140px;font-size:11px;color:#333}
.pf-watermark{text-align:center;font-size:10px;color:#aaa;margin-top:8px}



/* ===== ENGINE REPAIR FORM COMPACT ===== */
#page-cylinder-new .egroup { margin-bottom:4px; }
#page-cylinder-new .egroup label {
  display:block; font-size:10.5px; font-weight:700; color:var(--text-secondary); margin-bottom:2px;
}
#page-cylinder-new input[type=text],
#page-cylinder-new input[type=number],
#page-cylinder-new select,
#page-cylinder-new textarea {
  font-size:11px !important;
  padding:3px 6px !important;
  border-radius:5px !important;
}
#page-cylinder-new textarea { resize:vertical; min-height:36px; }
#page-cylinder-new .panel { margin-bottom:8px !important; }
#page-cylinder-new .panel-head { padding:6px 12px !important; }
#page-cylinder-new .panel-title { font-size:12.5px !important; }
#page-cylinder-new [style*="padding:10px"] { padding:8px !important; }
#page-cylinder-new [style*="padding:14px"] { padding:8px 10px !important; }
#page-cylinder-new [style*="gap:10px"] { gap:6px !important; }
#page-cylinder-new [style*="gap:8px"] { gap:5px !important; }
#page-cylinder-new .sec-hd { margin-bottom:8px !important; }
#page-cylinder-new .sec-title { font-size:15px !important; }
#page-cylinder-new > div[style*="margin-bottom:14px"] { margin-bottom:8px !important; }

/* ===== INVOICE PAGE — A4 LANDSCAPE ===== */
#page-invoice {
  width: 100%;
  max-width: 100%;
  box-sizing: border-box;
  overflow-x: auto;
}
#page-invoice .panel,
#page-invoice > div {
  max-width: 100%;
  box-sizing: border-box;
}
/* جدول داخل invoice scroll افقی داشته باشه */
#page-invoice table {
  min-width: 900px;
}
#page-invoice .panel > div {
  overflow-x: auto;
}

/* ===== HOME PAGE ===== */
#page-home{background:#f0f4f9;min-height:100vh}

/* ===== MATERIAL AUTOCOMPLETE ===== */
.mac-wrap{position:relative;width:100%}
.mac-input{width:100%;background:var(--surface-2);border:1.5px solid rgba(21,101,168,.25);border-radius:8px;
  padding:9px 12px;color:var(--text);font-family:inherit;font-size:14px;outline:none;transition:border-color .2s;box-sizing:border-box}
.mac-input:focus{border-color:var(--accent)}
.mac-list{position:absolute;top:calc(100% + 3px);right:0;left:0;background:#fff;
  border:1.5px solid rgba(21,101,168,.25);border-radius:8px;
  box-shadow:0 8px 24px rgba(21,101,168,.15);z-index:9999;max-height:220px;overflow-y:auto;display:none}
.mac-list.open{display:block}
.mac-item{padding:9px 13px;font-size:13px;cursor:pointer;border-bottom:1px solid rgba(21,101,168,.06);
  display:grid;grid-template-columns:1fr auto;gap:2px;transition:background .12s}
.mac-item:last-child{border-bottom:none}
.mac-item:hover,.mac-item.active{background:var(--surface-2)}
.mac-item-name{font-weight:700;color:var(--text);font-size:13.5px}
.mac-item-meta{font-size:11.5px;color:var(--text-muted);grid-column:1}
.mac-item-stock{font-size:12px;font-weight:800;grid-row:span 2;align-self:center;padding:2px 8px;
  border-radius:10px;white-space:nowrap}
.mac-stock-ok{background:rgba(27,122,64,.12);color:var(--success)}
.mac-stock-low{background:rgba(194,122,0,.12);color:var(--warning)}
.mac-stock-zero{background:rgba(192,57,43,.12);color:var(--danger)}
.mac-add-new{padding:10px 13px;font-size:13px;cursor:pointer;color:var(--accent);font-weight:700;
  border-top:2px solid rgba(21,101,168,.15);background:var(--surface-2);display:flex;align-items:center;gap:8px}
.mac-add-new:hover{background:var(--surface-2)}
/* ===== PERSONNEL AUTOCOMPLETE ===== */
.pac-wrap{position:relative;width:100%}
.pac-input{width:100%;background:var(--surface-2);border:1.5px solid rgba(21,101,168,.25);border-radius:8px;
  padding:9px 12px;color:var(--text);font-family:inherit;font-size:14px;outline:none;transition:border-color .2s;box-sizing:border-box}
.pac-input:focus{border-color:var(--accent)}
.pac-list{position:absolute;top:calc(100% + 3px);right:0;left:0;background:#fff;border:1.5px solid rgba(21,101,168,.25);
  border-radius:8px;box-shadow:0 8px 24px rgba(21,101,168,.15);z-index:9999;max-height:200px;overflow-y:auto;display:none}
.pac-list.open{display:block}
.pac-item{padding:9px 13px;font-size:13.5px;cursor:pointer;color:var(--text);border-bottom:1px solid rgba(21,101,168,.06);
  display:flex;flex-direction:column;gap:2px;transition:background .12s}
.pac-item:last-child{border-bottom:none}
.pac-item:hover,.pac-item.active{background:var(--surface-2)}
.pac-item-name{font-weight:700;color:var(--text)}
.pac-item-pos{font-size:11.5px;color:var(--text-muted)}
.pac-empty{padding:10px 13px;font-size:13px;color:var(--text-muted);text-align:center}
/* ===== TOAST ===== */
.toast{position:fixed;bottom:24px;left:24px;background:var(--bg-card);border:1px solid var(--green);color:var(--green);padding:11px 18px;border-radius:9px;font-size:12.5px;font-weight:700;z-index:9999;display:none;box-shadow:0 8px 24px rgba(0,0,0,.3);animation:slideIn .3s ease}
@keyframes slideIn{from{transform:translateY(18px);opacity:0}to{transform:translateY(0);opacity:1}}

::-webkit-scrollbar{width:6px}
::-webkit-scrollbar-track{background:var(--surface-2)}
::-webkit-scrollbar-thumb{background:rgba(21,101,168,.3);border-radius:3px}

/* ===== STAIRCASE MODULE STYLES ===== */
--accent:    #388bfd;
--accent2:   #58a6ff;
--green2:    #56d364;
--gold:      #d4a017;
--gold2:     #f0c040;
--red2:      #f85149;
--yellow2:   #e3b341;
--slate:     #8b949e;
--white2:    #b1bac4;
--bg2:       #0b1525;
--bg3:       #0f1e35;
--border2:   rgba(56,139,253,0.22);
--glow-blue: rgba(56,139,253,0.08);
--step-done:    #3fb950;
--step-active:  #388bfd;
--step-wait:    #484f58;
--step-stop:    #da3633;
--step-back:    #d29922;
--step-scrap:   #6e7681;

/* staircase cards */
.st-card{background:var(--bg-card);border:1px solid var(--border);border-radius:11px;padding:20px 22px;margin-bottom:16px}
.st-card-title{font-size:11.5px;font-weight:800;color:var(--blue-light);margin-bottom:14px;padding-bottom:10px;border-bottom:1px solid var(--border);display:flex;align-items:center;gap:7px}
/* fg form group */
.fg{display:flex;flex-direction:column;gap:5px}
.fg label{font-size:10.5px;font-weight:700;color:var(--gray-mid)}
.fg input,.fg select,.fg textarea{background:var(--bg-panel);border:1.5px solid var(--border);border-radius:7px;padding:9px 11px;color:var(--white);font-family:inherit;font-size:12.5px;outline:none;transition:border-color .18s;resize:vertical}
.fg input:focus,.fg select:focus,.fg textarea:focus{border-color:var(--blue-accent)}
.fg select option{background:var(--bg-card)}
.st-grid2{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.st-grid3{display:grid;grid-template-columns:1fr 1fr 1fr;gap:12px}
.st-grid4{display:grid;grid-template-columns:1fr 1fr 1fr 1fr;gap:12px}
/* staircase status badges */
.psbadge{display:inline-block;padding:3px 9px;border-radius:16px;font-size:10px;font-weight:700;white-space:nowrap}
.ps-done  {background:rgba(63,185,80,.15);color:#56d364;border:1px solid rgba(63,185,80,.25)}
.ps-active{background:rgba(56,139,253,.15);color:var(--blue-light);border:1px solid rgba(56,139,253,.25)}
.ps-wait  {background:rgba(72,79,88,.3);color:#adb5bd;border:1px solid rgba(100,110,120,.25)}
.ps-stop  {background:rgba(218,54,51,.15);color:#f85149;border:1px solid rgba(218,54,51,.25)}
.ps-back  {background:rgba(210,153,34,.15);color:#e3b341;border:1px solid rgba(210,153,34,.25)}
.ps-scrap {background:rgba(110,118,129,.15);color:#8b949e;border:1px solid rgba(110,118,129,.25)}
/* staircase graphic */
.staircase{display:flex;align-items:flex-end;gap:0;padding:12px 0 20px;overflow-x:auto}
.step-col{display:flex;flex-direction:column;align-items:center;flex-shrink:0}
.step-block{position:relative;width:88px;display:flex;flex-direction:column;align-items:center;justify-content:flex-end;cursor:pointer;transition:filter .15s}
.step-block:hover .step-body{filter:brightness(1.2)}
.step-body{width:72px;border-radius:8px 8px 0 0;display:flex;flex-direction:column;align-items:center;justify-content:flex-end;padding:10px 6px 8px;position:relative;transition:all .25s;border:1.5px solid transparent;border-bottom:none}
.step-body.done  {background:linear-gradient(180deg,rgba(63,185,80,.22),rgba(63,185,80,.08));border-color:rgba(63,185,80,.35)}
.step-body.active{background:linear-gradient(180deg,rgba(56,139,253,.28),rgba(56,139,253,.1));border-color:rgba(56,139,253,.5);box-shadow:0 0 14px rgba(56,139,253,.2)}
.step-body.wait  {background:rgba(30,42,58,.6);border-color:rgba(72,79,88,.3)}
.step-body.stop  {background:linear-gradient(180deg,rgba(218,54,51,.2),rgba(218,54,51,.06));border-color:rgba(218,54,51,.35)}
.step-body.back  {background:linear-gradient(180deg,rgba(210,153,34,.2),rgba(210,153,34,.06));border-color:rgba(210,153,34,.35)}
.step-body.scrap {background:rgba(40,44,50,.5);border-color:rgba(110,118,129,.25)}
.step-icon{font-size:18px;margin-bottom:5px}
.step-num{font-size:9px;font-weight:800;color:var(--gray-mid);margin-bottom:4px}
.step-lbl{font-size:9.5px;font-weight:700;text-align:center;line-height:1.35;max-width:64px}
.step-body.done  .step-lbl{color:#56d364}
.step-body.active .step-lbl{color:var(--blue-light)}
.step-body.wait  .step-lbl{color:var(--gray-mid)}
.step-body.stop  .step-lbl{color:#f85149}
.step-body.back  .step-lbl{color:#e3b341}
.step-body.scrap .step-lbl{color:#6e7681}
.step-floor{width:72px;height:4px;border-radius:0 0 3px 3px}
.step-body.done  +.step-floor{background:var(--step-done)}
.step-body.active+.step-floor{background:var(--step-active)}
.step-body.wait  +.step-floor{background:var(--step-wait)}
.step-body.stop  +.step-floor{background:var(--step-stop)}
.step-body.back  +.step-floor{background:var(--step-back)}
.step-body.scrap +.step-floor{background:var(--step-scrap)}
.step-connector{width:16px;height:3px;background:rgba(56,139,253,.2);margin-bottom:4px;flex-shrink:0}
.step-dur{font-size:9px;color:var(--gray-mid);margin-top:5px;text-align:center;max-width:72px}
.step-body.active::after{content:'';position:absolute;inset:-2px;border-radius:9px 9px 0 0;border:1.5px solid rgba(56,139,253,.5);animation:stepPulse 2s infinite}
@keyframes stepPulse{0%,100%{opacity:.8;transform:scale(1)}50%{opacity:.3;transform:scale(1.03)}}
/* part list table */
.pt{width:100%;border-collapse:collapse;font-size:12px}
.pt th{background:rgba(30,136,229,.08);color:var(--gray-mid);font-size:10.5px;font-weight:700;padding:9px 10px;text-align:right;border-bottom:1px solid var(--border);white-space:nowrap}
.pt td{padding:10px 10px;border-bottom:1px solid rgba(30,136,229,.06);vertical-align:middle}
.pt tr:hover td{background:rgba(30,136,229,.04)}
.pt-id{font-size:10.5px;font-weight:800;color:var(--blue-light);font-family:monospace}
.pt-name{font-weight:700;color:var(--white)}
.pt-meta{font-size:10.5px;color:var(--gray-mid)}
/* mini staircase */
.mini-stair{display:flex;align-items:flex-end;gap:2px}
.ms-step{width:14px;border-radius:2px 2px 0 0;cursor:default}
.ms-step.done  {background:var(--step-done)}
.ms-step.active{background:var(--step-active);animation:msPulse 1.5s infinite}
.ms-step.wait  {background:#2d3748}
.ms-step.stop  {background:var(--step-stop)}
.ms-step.back  {background:var(--step-back)}
.ms-step.scrap {background:var(--step-scrap)}
@keyframes msPulse{0%,100%{opacity:1}50%{opacity:.5}}
/* timeline for staircase */
.tl2-item{display:flex;gap:12px;padding:10px 0;border-bottom:1px solid rgba(30,136,229,.07)}
.tl2-dot{width:10px;height:10px;border-radius:50%;flex-shrink:0;margin-top:4px}
.tl2-dot.done  {background:var(--green)}
.tl2-dot.active{background:var(--blue-accent);box-shadow:0 0 6px rgba(30,136,229,.5)}
.tl2-dot.stop  {background:var(--red)}
.tl2-dot.back  {background:var(--yellow)}
.tl2-dot.wait  {background:var(--gray-mid)}
.tl2-content .tl2-title{font-size:12.5px;font-weight:700;color:var(--white);margin-bottom:2px}
.tl2-content .tl2-meta{font-size:10.5px;color:var(--gray-mid)}
/* step modals */
.st-modal-ov{position:fixed;inset:0;background:rgba(0,0,0,.7);z-index:600;display:none;align-items:center;justify-content:center;padding:16px}
.st-modal-ov.open{display:flex}
.st-modal{background:var(--bg-card);border:1px solid rgba(30,136,229,.25);border-radius:13px;width:720px;max-width:98vw;max-height:90vh;overflow-y:auto;box-shadow:0 24px 64px rgba(0,0,0,.6)}
.st-modal-head{display:flex;align-items:center;justify-content:space-between;padding:18px 22px 14px;border-bottom:1px solid var(--border);position:sticky;top:0;background:var(--bg-card);z-index:2}
.st-modal-body{padding:20px 22px}
.st-modal-foot{padding:12px 22px 16px;border-top:1px solid var(--border);display:flex;gap:10px;justify-content:flex-end}
.st-close-btn{background:none;border:none;color:var(--gray-mid);font-size:18px;cursor:pointer;padding:3px;transition:color .15s;line-height:1}
.st-close-btn:hover{color:var(--red)}
.sd-field{background:var(--bg-panel);border-radius:7px;padding:10px 12px}
.sd-label{font-size:9.5px;color:var(--gray-mid);font-weight:700;margin-bottom:3px}
.sd-val{font-size:12.5px;color:var(--white);font-weight:600}
.step-edit-sec{background:var(--bg-panel);border:1px solid var(--border);border-radius:9px;padding:16px;margin-bottom:14px}
/* filter bar for staircase */
.st-filter-bar{background:var(--bg-card);border:1px solid var(--border);border-radius:10px;padding:14px 18px;margin-bottom:16px}
.st-filter-row{display:flex;gap:10px;align-items:flex-end;flex-wrap:wrap}
/* dur pill */
.dur-pill{display:inline-block;padding:2px 7px;border-radius:10px;font-size:10px;font-weight:700;background:rgba(30,136,229,.12);color:var(--blue-light);border:1px solid rgba(30,136,229,.18)}
.dur-pill.warn{background:rgba(249,168,37,.12);color:var(--yellow);border-color:rgba(249,168,37,.2)}
.dur-pill.crit{background:rgba(229,57,53,.12);color:var(--red);border-color:rgba(229,57,53,.2)}
/* progress */
.progress-strip{height:6px;background:rgba(255,255,255,.06);border-radius:3px;overflow:hidden;margin-top:6px}
.progress-fill{height:100%;border-radius:3px;background:linear-gradient(90deg,var(--blue-accent),var(--green));transition:width .4s}
/* attach */
.st-attach-box{border:1.5px dashed rgba(30,136,229,.3);border-radius:8px;padding:14px;text-align:center;cursor:pointer;transition:border-color .15s,background .15s;color:var(--gray-mid);font-size:11.5px}
.st-attach-box:hover{border-color:var(--blue-accent);background:rgba(30,136,229,.06);color:var(--blue-light)}
.st-attach-list{display:flex;flex-wrap:wrap;gap:7px;margin-top:8px}
.st-attach-chip{background:var(--bg-panel);border:1px solid var(--border);border-radius:5px;padding:4px 9px;font-size:10.5px;color:var(--white);display:flex;align-items:center;gap:5px}
/* st kpi row */
.st-kpi-row{display:grid;grid-template-columns:repeat(5,1fr);gap:12px;margin-bottom:18px}
.st-kpi{background:var(--bg-card);border:1px solid var(--border);border-radius:10px;padding:14px 16px;position:relative;overflow:hidden}
.st-kpi::before{content:'';position:absolute;top:0;right:0;left:0;height:2px;border-radius:10px 10px 0 0}
.st-kpi.k-blue::before{background:var(--blue-accent)}
.st-kpi.k-green::before{background:var(--green)}
.st-kpi.k-gold::before{background:#d4a017}
.st-kpi.k-red::before{background:var(--red)}
.st-kpi.k-cyan::before{background:var(--cyan)}
.st-kpi-val{font-size:26px;font-weight:900;line-height:1;margin-bottom:3px}
.st-kpi.k-blue .st-kpi-val{color:var(--blue-light)}
.st-kpi.k-green .st-kpi-val{color:var(--green)}
.st-kpi.k-gold .st-kpi-val{color:#f0c040}
.st-kpi.k-red .st-kpi-val{color:var(--red)}
.st-kpi.k-cyan .st-kpi-val{color:var(--cyan)}
.st-kpi-lbl{font-size:10px;color:var(--gray-mid);font-weight:600}
/* ws-perf cards */
.st-ws-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}
.st-ws-card{background:var(--bg-card);border:1px solid var(--border);border-radius:9px;padding:14px}
.st-ws-name{font-size:11.5px;font-weight:800;color:var(--white);margin-bottom:8px}
.st-ws-stat{display:flex;justify-content:space-between;font-size:11px;color:var(--gray-mid);margin-bottom:4px}
.st-ws-bar{height:4px;background:rgba(255,255,255,.07);border-radius:2px;margin-top:6px}
.st-ws-bar-fill{height:100%;border-radius:2px;background:linear-gradient(90deg,var(--blue-accent),var(--green))}
.wo-form-card{background:var(--bg-card);border:1px solid var(--border);border-radius:14px;padding:26px 28px;margin-bottom:20px}
.wo-form-title{font-size:13px;font-weight:800;color:var(--blue-light);margin-bottom:18px;display:flex;align-items:center;gap:8px;padding-bottom:12px;border-bottom:1px solid var(--border)}
.wo-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:15px}
.wo-grid-2{display:grid;grid-template-columns:repeat(2,1fr);gap:15px;margin-top:15px}
.wo-full{grid-column:1/-1;margin-top:15px}
.fgroup2 label{display:block;font-size:11px;font-weight:700;color:var(--gray-mid);margin-bottom:6px}
.fgroup2 input,.fgroup2 select,.fgroup2 textarea{width:100%;background:var(--bg-panel);border:1.5px solid var(--border);border-radius:8px;padding:10px 12px;color:var(--white);font-family:inherit;font-size:13px;outline:none;transition:border-color .2s;resize:vertical}
.fgroup2 input:focus,.fgroup2 select:focus,.fgroup2 textarea:focus{border-color:var(--blue-accent)}
.fgroup2 select option{background:var(--bg-card)}
.wo-actions{display:flex;gap:10px;margin-top:20px;justify-content:flex-end}
.priority-badge{display:inline-block;padding:3px 10px;border-radius:20px;font-size:10.5px;font-weight:700}
.p-critical{background:rgba(229,57,53,.18);color:#ef9a9a;border:1px solid rgba(229,57,53,.3)}
.p-high{background:rgba(249,168,37,.18);color:#ffe082;border:1px solid rgba(249,168,37,.3)}
.p-normal{background:rgba(30,136,229,.18);color:var(--blue-light);border:1px solid rgba(30,136,229,.3)}
.p-low{background:rgba(38,169,108,.18);color:#80cbc4;border:1px solid rgba(38,169,108,.3)}
.wo-status-badge{display:inline-block;padding:3px 10px;border-radius:20px;font-size:10.5px;font-weight:700}
.ws-pending{background:rgba(249,168,37,.15);color:#ffe082;border:1px solid rgba(249,168,37,.25)}
.ws-reviewing{background:rgba(30,136,229,.15);color:var(--blue-light);border:1px solid rgba(30,136,229,.25)}
.ws-inprogress{background:rgba(38,201,200,.15);color:#80deea;border:1px solid rgba(38,201,200,.25)}
.ws-done{background:rgba(38,169,108,.15);color:#a5d6a7;border:1px solid rgba(38,169,108,.25)}
.wo-table{width:100%;border-collapse:collapse;font-size:12.5px}
.wo-table th{background:rgba(30,136,229,.12);color:var(--gray-mid);font-size:11px;font-weight:700;padding:10px 12px;text-align:right;border-bottom:1px solid var(--border)}
.wo-table td{padding:11px 12px;border-bottom:1px solid rgba(30,136,229,.08);color:var(--white);vertical-align:middle}
.wo-table tr:hover td{background:rgba(21,101,168,.05)}
.wo-id{font-size:11px;color:var(--blue-light);font-weight:800;font-family:monospace}
.wo-hist-item{display:flex;gap:12px;padding:10px 0;border-bottom:1px solid rgba(30,136,229,.08)}
.wo-hist-dot{width:10px;height:10px;border-radius:50%;background:var(--blue-accent);flex-shrink:0;margin-top:4px}
.wo-hist-meta{font-size:11px;color:var(--gray-mid)}
.wo-hist-action{font-size:12.5px;color:var(--white);font-weight:600}
.wo-modal-overlay{position:fixed;inset:0;background:rgba(0,0,0,.65);z-index:500;display:none;align-items:center;justify-content:center}
.wo-modal-overlay.open{display:flex}
.wo-modal{background:var(--bg-card);border:1px solid var(--border);border-radius:14px;width:560px;max-width:96vw;max-height:88vh;overflow-y:auto;padding:28px}
.wo-modal-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:20px;padding-bottom:14px;border-bottom:1px solid var(--border)}
.wo-modal-title{font-size:14px;font-weight:800;color:var(--white)}
.wo-kpi-row{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin-bottom:20px}
.wo-kpi{background:var(--bg-card);border:1px solid var(--border);border-radius:10px;padding:14px 12px;text-align:center}
.wo-kpi-val{font-size:26px;font-weight:900;color:var(--blue-light)}
.wo-kpi-lbl{font-size:10px;color:var(--gray-mid);margin-top:3px}

/* ===== NOTIFICATIONS ===== */
.notif-btn{position:relative;background:rgba(255,255,255,.12);border:1px solid rgba(255,255,255,.2);color:#fff;border-radius:8px;padding:6px 14px;cursor:pointer;font-family:inherit;font-size:13px;font-weight:700;transition:background .15s;display:flex;align-items:center;gap:6px}
.notif-btn:hover{background:rgba(255,255,255,.22)}
.notif-badge{position:absolute;top:-6px;left:-6px;min-width:18px;height:18px;border-radius:9px;background:#e53935;color:#fff;font-size:10px;font-weight:900;display:flex;align-items:center;justify-content:center;border:2px solid var(--accent);padding:0 3px;animation:bp 2s infinite}
@keyframes bp{0%,100%{transform:scale(1)}50%{transform:scale(1.2)}}
.notif-badge.hidden{display:none}
@keyframes notif-pulse{0%{transform:scale(1)}50%{transform:scale(1.4)}100%{transform:scale(1)}}
.notif-badge.pulse{animation:notif-pulse .4s ease 3}
.notif-ov{position:fixed;inset:0;z-index:900;display:none}
.notif-ov.open{display:block}
.notif-bg{position:fixed;inset:0;background:rgba(0,0,0,.35)}
.notif-panel{position:fixed;top:0;left:0;width:380px;max-width:96vw;height:100vh;background:#fff;box-shadow:4px 0 32px rgba(0,0,0,.18);display:flex;flex-direction:column;animation:sfl .22s ease;z-index:1}
@keyframes sfl{from{transform:translateX(-100%)}to{transform:translateX(0)}}
.np-head{background:linear-gradient(135deg,var(--brand),var(--accent));padding:20px;color:#fff;flex-shrink:0}
.np-head h3{font-size:16px;font-weight:900;margin-bottom:3px}
.np-head p{font-size:12px;opacity:.7}
.np-body{flex:1;overflow-y:auto;padding:12px}
.np-empty{text-align:center;padding:48px 20px;color:#8a9bb0;font-size:13px}
.ncard{background:#fff;border:1.5px solid #e8eef8;border-radius:11px;padding:14px 16px;margin-bottom:9px;transition:border-color .15s,box-shadow .15s}
.ncard-link:hover{background:rgba(21,101,168,.05);border-color:rgba(21,101,168,.18);transform:translateX(-2px)}
.ncard-link{transition:background .15s,border-color .15s,transform .15s}
.ncard:hover{border-color:var(--accent);box-shadow:0 3px 14px rgba(21,101,168,.1)}
.ncard.unread{border-right:4px solid var(--accent);background:#f7faff}
.ncard-top{display:flex;align-items:flex-start;justify-content:space-between;gap:8px;margin-bottom:5px}
.ncard-title{font-size:13px;font-weight:800;color:var(--text)}
.ncard-time{font-size:10px;color:#9aabbd;white-space:nowrap;flex-shrink:0}
.ncard-body{font-size:12px;color:#4a6080;line-height:1.6}
.ncard-footer{display:flex;align-items:center;gap:7px;margin-top:8px}
.ncard-tag{font-size:10px;font-weight:700;padding:2px 9px;border-radius:10px}
.ncard-tag.blue{background:#e3eefe;color:var(--accent)}
.ncard-tag.green{background:#e3feee;color:var(--success)}
.ncard-tag.yellow{background:#fef9e3;color:var(--warning)}
.ncard-tag.red{background:#fee3e3;color:#c62828}
.ncard-dot{width:7px;height:7px;border-radius:50%;background:var(--accent);flex-shrink:0}

/* ===== استایل صفحه ورود (login) (خطوط اصلی 1488-1523) ===== */
          /*  COMPACT ENGINE FORM  */
          .ef-wrap { font-size:11px; direction:rtl; }
          .ef-panel { background:#fff; border:1px solid rgba(21,101,168,.18); border-radius:8px; margin-bottom:6px; overflow:hidden; }
          .ef-head  { background:var(--brand); color:#fff; font-size:11px; font-weight:800; padding:4px 10px; display:flex; align-items:center; gap:6px; }
          .ef-head-icon { opacity:.75; font-size:12px; }
          .ef-body  { padding:6px 8px; }
          .ef-grid  { display:grid; gap:4px 8px; }
          .ef-g4    { grid-template-columns: repeat(4,1fr); }
          .ef-g5    { grid-template-columns: repeat(5,1fr); }
          .ef-g6    { grid-template-columns: repeat(6,1fr); }
          .ef-g3    { grid-template-columns: repeat(3,1fr); }
          .ef-g2    { grid-template-columns: repeat(2,1fr); }
          .ef-span2 { grid-column: span 2; }
          .ef-span3 { grid-column: span 3; }
          .ef-span4 { grid-column: span 4; }
          .ef-span5 { grid-column: span 5; }
          .ef-span6 { grid-column: span 6; }
          .ef-lbl   { font-size:9.5px; font-weight:700; color:var(--text-muted); margin-bottom:1px; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
          .ef-inp   { width:100%; padding:2px 5px; font-size:10.5px; border:1px solid rgba(21,101,168,.22); border-radius:4px; background:var(--surface-2); color:var(--text); font-family:inherit; outline:none; box-sizing:border-box; }
          .ef-inp:focus { border-color:var(--accent); background:#fff; }
          .ef-sec   { font-size:9.5px; font-weight:800; color:var(--accent); background:var(--surface-2); border-radius:3px; padding:2px 6px; margin-bottom:4px; display:inline-block; }
          /* cylinder mini-table */
          .ct { width:100%; border-collapse:collapse; font-size:9px; table-layout:fixed; }
          .ct th { background:var(--brand); color:#fff; padding:2px 3px; text-align:center; font-weight:800; border:1px solid rgba(21,101,168,.3); white-space:nowrap; }
          .ct td { padding:1px 2px; border:1px solid rgba(21,101,168,.18); vertical-align:middle; }
          .ct tr:nth-child(even) td { background:var(--surface-2); }
          .ct .cs  { width:100%; padding:1px 1px; font-size:8.5px; border:none; background:transparent; color:var(--text); font-family:inherit; cursor:pointer; }
          .ct .ci  { width:100%; padding:1px 2px; font-size:8.5px; border:none; background:transparent; color:var(--text); font-family:inherit; }
          .ct .plbl { font-size:8.5px; font-weight:700; color:var(--brand); white-space:nowrap; }
          .ct .seal-row td { background:#e8f5e9!important; }
          /* parts mini-row */
          .pr-grid { display:grid; grid-template-columns: repeat(5,1fr); gap:3px 6px; }
          .pr-item { background:var(--surface-2); border:1px solid rgba(21,101,168,.15); border-radius:4px; padding:3px 5px; }
          .pr-title { font-size:9px; font-weight:800; color:var(--brand); margin-bottom:2px; }
          .pr-row   { display:flex; gap:3px; }
          .pr-row .ef-inp { font-size:9.5px; }

/* ===== استایل پنل KPI (خطوط اصلی 1881-1886) ===== */
            #inv-main-table th { padding:7px 5px; font-size:9.5px; white-space:nowrap; }
            #inv-main-table td { padding:7px 5px; vertical-align:top; line-height:1.5; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
            #inv-main-table td.wrap { white-space:normal; word-break:break-word; }
            #inv-main-table tbody tr:hover td { background:rgba(30,136,229,.06); }
            #inv-main-table tbody tr { border-top:1px solid var(--border); }
            #inv-main-table td.nowrap { white-space:nowrap; }

/* ===== استایل بخش گزارشات (خطوط اصلی 2401-2465) ===== */
#page-hammer-repair{direction:rtl}
/*  کارت فرم  */
.hf-card{background:#fff;border:1.5px solid rgba(21,101,168,.14);border-radius:11px;padding:11px 13px;margin-bottom:10px;box-shadow:0 2px 6px rgba(21,101,168,.05)}
.hf-card-title{font-size:11.5px;font-weight:900;color:var(--brand);margin-bottom:8px;padding-bottom:6px;border-bottom:1.5px solid rgba(21,101,168,.1);display:flex;align-items:center;gap:5px}
.hf-card-title .hf-num{width:19px;height:19px;background:linear-gradient(135deg,var(--brand),var(--accent));border-radius:4px;color:#fff;font-size:9px;display:flex;align-items:center;justify-content:center;flex-shrink:0;font-weight:900}
/*  گرید‌ها  */
.hf-g2{display:grid;grid-template-columns:1fr 1fr;gap:7px}
.hf-g3{display:grid;grid-template-columns:1fr 1fr 1fr;gap:7px}
.hf-g4{display:grid;grid-template-columns:1fr 1fr 1fr 1fr;gap:6px}
.hf-g5{display:grid;grid-template-columns:repeat(5,1fr);gap:6px}
/*  فیلدها  */
.hf-fg{display:flex;flex-direction:column;gap:3px}
.hf-fg label{font-size:10px;font-weight:700;color:var(--text-muted)}
.hf-fg input,.hf-fg select,.hf-fg textarea{background:var(--surface-2);border:1.5px solid rgba(21,101,168,.18);border-radius:6px;padding:5px 8px;color:var(--text);font-family:inherit;font-size:11.5px;outline:none;transition:border-color .18s;width:100%}
.hf-fg input:focus,.hf-fg select:focus,.hf-fg textarea:focus{border-color:var(--accent);background:#fff}
/*  جدول بوش‌ها  */
.hf-tbl{width:100%;border-collapse:collapse;font-size:11px}
.hf-tbl th{background:var(--brand);color:#fff;padding:5px 8px;text-align:right;font-weight:800;font-size:10px}
.hf-tbl td{padding:4px 8px;border-bottom:1px solid rgba(21,101,168,.07);color:var(--text);vertical-align:middle}
.hf-tbl tr:hover td{background:rgba(25,118,210,.04)}
.hf-tbl td input,.hf-tbl td select{border:1.5px solid rgba(21,101,168,.16);border-radius:4px;padding:3px 6px;font-family:inherit;font-size:10.5px;color:var(--text);background:var(--surface-2);outline:none;width:100%}
.hf-tbl td input:focus,.hf-tbl td select:focus{border-color:var(--accent);background:#fff}
/*  چک‌باکس‌ها  */
.hf-chks{display:flex;flex-wrap:wrap;gap:5px;margin-top:6px}
.hf-chk{display:flex;align-items:center;gap:5px;padding:4px 9px;background:var(--surface-2);border:1.5px solid rgba(21,101,168,.12);border-radius:6px;cursor:pointer;transition:all .15s;font-size:11px;font-weight:600;color:var(--text)}
.hf-chk input[type=checkbox]{accent-color:var(--accent);width:13px;height:13px;cursor:pointer;flex-shrink:0}
.hf-chk:hover{border-color:var(--accent);background:var(--surface-2)}
/*  نتیجه  */
.hf-result-row{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:8px}
.hf-ri{display:flex;align-items:center;gap:6px;padding:6px 11px;border-radius:7px;cursor:pointer;border:1.5px solid transparent;transition:all .18s;font-size:11px;font-weight:700;color:var(--text)}
.hf-ri.r-ready{background:rgba(27,122,64,.07);border-color:rgba(27,122,64,.18)}
.hf-ri.r-ready.sel{background:rgba(27,122,64,.16);border-color:var(--success)}
.hf-ri.r-more{background:rgba(194,122,0,.07);border-color:rgba(194,122,0,.18)}
.hf-ri.r-more.sel{background:rgba(194,122,0,.16);border-color:var(--warning)}
.hf-ri.r-test{background:rgba(21,101,168,.07);border-color:rgba(21,101,168,.18)}
.hf-ri.r-test.sel,.hf-ri.r-leak.sel{background:rgba(21,101,168,.16);border-color:var(--accent)}
.hf-ri.r-leak{background:rgba(21,101,168,.07);border-color:rgba(21,101,168,.18)}
.hf-ri input[type=checkbox]{accent-color:var(--accent);width:14px;height:14px}
/*  امضاها  */
.hf-signs{display:grid;grid-template-columns:1fr 1fr 1fr;gap:8px;margin-top:10px}
.hf-sign{border:1.5px solid rgba(21,101,168,.16);border-radius:7px;padding:7px 10px;text-align:center;background:var(--surface-2)}
.hf-sign-ttl{font-size:11px;font-weight:800;color:var(--brand);margin-bottom:8px}
.hf-sign-area{height:38px;border-bottom:1.5px dashed rgba(21,101,168,.3);margin-bottom:5px}
.hf-sign input{border:1px solid rgba(21,101,168,.15);border-radius:4px;padding:4px 6px;font-family:inherit;font-size:10.5px;color:var(--text);background:#fff;outline:none;text-align:center;width:100%}
/*  بار فرم بالا  */
.hf-topbar{background:linear-gradient(90deg,var(--surface-2),var(--surface-2));border:1.5px solid rgba(21,101,168,.15);border-radius:9px;padding:9px 13px;margin-bottom:10px;display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:8px}
.hf-formnum{font-size:13px;font-weight:900;color:var(--brand)}
.hf-topfields{display:flex;gap:14px;align-items:flex-end;flex-wrap:wrap}
.hf-topfield{display:flex;flex-direction:column;gap:3px}
.hf-topfield label{font-size:10px;font-weight:700;color:var(--text-muted)}
.hf-topfield input{border:1.5px solid rgba(21,101,168,.2);border-radius:5px;padding:5px 8px;font-family:inherit;font-size:11.5px;color:var(--text);background:#fff;outline:none;width:125px}
/*  لیست ثبت‌شده‌ها  */
.hf-list-section{background:#fff;border:1.5px solid rgba(21,101,168,.14);border-radius:13px;overflow:hidden;margin-top:20px}
.hf-list-head{padding:12px 16px;border-bottom:1px solid rgba(21,101,168,.1);display:flex;align-items:center;justify-content:space-between}
.hf-list-title{font-size:13px;font-weight:900;color:var(--text)}
.hf-ltbl{width:100%;border-collapse:collapse}
.hf-ltbl th{padding:7px 11px;font-size:10.5px;font-weight:800;color:var(--text-muted);text-align:right;background:rgba(30,136,229,.06)}
.hf-ltbl td{padding:8px 11px;font-size:11.5px;color:var(--text);border-top:1px solid rgba(21,101,168,.07)}
.hf-ltbl tr:hover td{background:rgba(30,136,229,.04)}
.hf-ltbl .hf-lcode{font-family:monospace;font-size:11px;color:var(--accent);background:rgba(30,136,229,.1);padding:3px 7px;border-radius:4px}
/* نتیجه badge */
.hf-rbadge{display:inline-flex;align-items:center;gap:4px;padding:3px 9px;border-radius:10px;font-size:10.5px;font-weight:800}
.hf-rb-ready{background:rgba(27,122,64,.12);color:var(--success)}
.hf-rb-more{background:rgba(194,122,0,.12);color:var(--warning)}
.hf-rb-other{background:rgba(21,101,168,.12);color:var(--accent)}

/* ===== استایل بخش نصب و پایش قطعات (خطوط اصلی 9160-9180) ===== */
#jalali-picker-overlay{display:none;position:fixed;top:0;left:0;width:100%;height:100%;z-index:99999;background:transparent}
#jalali-picker{display:none;position:fixed;z-index:100000;background:#fff;border-radius:14px;box-shadow:0 8px 40px rgba(10,61,107,0.22);padding:0;min-width:290px;font-family:'Vazirmatn',Tahoma,sans-serif;direction:rtl;border:2px solid var(--accent);overflow:hidden}
#jalali-picker .jp-header{background:linear-gradient(135deg,var(--brand),var(--accent));color:#fff;padding:12px 16px;display:flex;align-items:center;justify-content:space-between;user-select:none}
#jalali-picker .jp-header button{background:none;border:none;color:#fff;font-size:20px;cursor:pointer;padding:2px 8px;border-radius:6px}
#jalali-picker .jp-title{font-size:15px;font-weight:700;cursor:pointer;padding:4px 10px;border-radius:6px}
#jalali-picker .jp-weekdays{display:grid;grid-template-columns:repeat(7,1fr);background:var(--surface-2);padding:6px 8px 2px}
#jalali-picker .jp-weekdays span{text-align:center;font-size:11px;font-weight:700;color:var(--accent);padding:4px 0}
#jalali-picker .jp-days{display:grid;grid-template-columns:repeat(7,1fr);padding:4px 8px 10px;gap:2px}
#jalali-picker .jp-day{text-align:center;padding:6px 2px;font-size:13px;cursor:pointer;border-radius:8px;color:var(--text);transition:background .12s}
#jalali-picker .jp-day:hover{background:var(--accent);color:#fff}
#jalali-picker .jp-day.today{background:var(--surface-2);font-weight:800;border:2px solid var(--accent);color:var(--brand)}
#jalali-picker .jp-day.selected{background:var(--brand);color:#fff;font-weight:700}
#jalali-picker .jp-day.other-month{color:#b0b8c8;cursor:default}
#jalali-picker .jp-day.other-month:hover{background:none;color:#b0b8c8}
#jalali-picker .jp-month-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:6px;padding:12px}
#jalali-picker .jp-month-item{text-align:center;padding:10px 4px;border-radius:8px;cursor:pointer;font-size:13px;font-weight:600;color:var(--text);transition:background .12s}
#jalali-picker .jp-month-item:hover,.jp-month-item.active{background:var(--accent);color:#fff}
#jalali-picker .jp-year-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:4px;padding:10px;max-height:220px;overflow-y:auto}
#jalali-picker .jp-year-item{text-align:center;padding:8px 2px;border-radius:8px;cursor:pointer;font-size:12px;font-weight:600;color:var(--text);transition:background .12s}
#jalali-picker .jp-year-item:hover,.jp-year-item.active{background:var(--accent);color:#fff}
#jalali-picker .jp-today-btn{display:block;width:calc(100% - 16px);margin:0 8px 10px;padding:7px;background:var(--accent);color:#fff;border:none;border-radius:8px;font-family:inherit;font-size:13px;font-weight:700;cursor:pointer}

/* ===== پایش روزانه دستگاه‌های حفاری (drilling-daily) =====
   رنگ‌های وضعیت دستگاه: سبز=آماده به کار، نارنجی=در حال تعمیر، زرد=منتظر قطعه،
   خاکستری=تست و راه‌اندازی، قرمز=خارج از سرویس. */
.dd-badge{display:inline-flex;align-items:center;gap:6px;font-size:12px;font-weight:800;padding:5px 12px;border-radius:20px;white-space:nowrap}
.dd-badge .dd-dot{width:8px;height:8px;border-radius:50%;flex-shrink:0}
.dd-badge.dd-ready{background:rgba(27,122,64,.12);color:var(--success)}
.dd-badge.dd-ready .dd-dot{background:var(--success)}
.dd-badge.dd-in_repair{background:rgba(245,124,0,.12);color:#c25e00}
.dd-badge.dd-in_repair .dd-dot{background:#f57c00}
.dd-badge.dd-waiting_part{background:rgba(212,160,23,.15);color:#8a6d10}
.dd-badge.dd-waiting_part .dd-dot{background:#d4a017}
.dd-badge.dd-testing{background:rgba(96,96,96,.12);color:#5a5a5a}
.dd-badge.dd-testing .dd-dot{background:#8a8a8a}
.dd-badge.dd-out_of_service{background:rgba(192,57,43,.12);color:var(--danger)}
.dd-badge.dd-out_of_service .dd-dot{background:var(--danger)}
.dd-badge.dd-pending_repair{background:rgba(21,101,168,.12);color:var(--accent)}
.dd-badge.dd-pending_repair .dd-dot{background:var(--accent)}
.dd-badge.dd-inspecting{background:rgba(123,45,139,.12);color:#7b2d8b}
.dd-badge.dd-inspecting .dd-dot{background:#7b2d8b}
.dd-row{cursor:pointer;transition:background .12s}
.dd-row:hover{background:rgba(21,101,168,.05)}
.dd-hist-item{border-right:3px solid rgba(21,101,168,.25);padding:10px 14px;margin-bottom:10px;background:var(--surface-2);border-radius:0 8px 8px 0}
.dd-hist-item .dd-hist-date{font-size:11.5px;color:var(--text-muted);font-weight:700;margin-bottom:4px}
.dd-hist-item .dd-hist-row{font-size:12.5px;color:var(--text);margin:2px 0}

/* پیش‌نمایش «آخرین گزارش قبلی همین دستگاه» - در فرم ثبت گزارش روزانه، زیر شماره
   سازمانی، تا کاربر قبل از ثبت گزارش امروز ببیند آخرین‌بار روی این دستگاه چه
   کاری انجام شده بود. */
.dd-history-preview{border:1.5px dashed rgba(21,101,168,.3);border-radius:10px;padding:10px 14px;background:rgba(21,101,168,.04)}
.dd-history-preview .dd-hp-title{font-size:11.5px;font-weight:800;color:var(--brand);margin-bottom:6px;display:flex;align-items:center;gap:8px;justify-content:space-between}
.dd-history-preview .dd-hp-row{font-size:12.5px;color:var(--text);margin:3px 0}
.dd-history-preview .dd-hp-row b{color:var(--text-muted);font-weight:700}
.dd-history-preview.dd-hp-empty{color:var(--text-muted);font-size:12.5px;text-align:center;border-style:dashed}
.dd-hist-item .dd-hist-row b{color:var(--accent);font-weight:700}

/* ===== Responsive (تبلت/موبایل) — تا قبل از این خط هیچ @media ای در فایل نبود =====
   این بخش فقط چیدمان‌های چندستونی را روی صفحه‌های باریک جمع می‌کند؛ استایل دسکتاپ
   (که تنظیمات اصلی اداره است) دست‌نخورده می‌ماند. */
@media (max-width: 900px){
  .kpi-grid{grid-template-columns:repeat(3,1fr)}
  .charts-grid{grid-template-columns:1fr 1fr}
  
  .chart-row,.form-row,.edit-row,.info-grid,.pf-grid{grid-template-columns:1fr}
  .kpi-panel{width:100%}
  .topbar{padding:0 14px;gap:8px}
  .topbar-user{font-size:12px}
}

@media (max-width: 600px){
  .kpi-grid{grid-template-columns:repeat(2,1fr)}
  .charts-grid,.pf-grid-3{grid-template-columns:1fr}
  .content{padding:12px 10px}
  .topbar-time{display:none}
}

