/* سامانه پیشران — استایل اصلی (RTL) */
/* فونت فارسی سامانه: وزیرمتن (همراه برنامه؛ مجوز SIL OFL — assets/fonts/OFL-Vazirmatn.txt) — روی موبایل و رایانه یکسان */
@font-face{font-family:'Vazirmatn';src:url('../fonts/Vazirmatn-Variable.woff2') format('woff2');font-weight:100 900;font-style:normal;font-display:swap}

:root{
  --bg:#f2f5f9; --surface:#fff; --surface-2:#f7f9fc; --text:#1b2433; --muted:#667085; --border:#e2e8f0; --border-2:#cfd8e3;
  --primary:#0e5a8a; --primary-600:#0a4870; --primary-50:#e8f2f9; --accent:#f59e0b;
  --green:#15803d; --green-bg:#e7f6ec; --red:#c62828; --red-bg:#fdecec; --amber:#b45309; --amber-bg:#fdf3e1;
  --blue:#1d4ed8; --blue-bg:#e8eefd; --orange:#c2410c; --orange-bg:#fdeee6; --purple:#6d28d9; --purple-bg:#f1eafd;
  --teal:#0f766e; --teal-bg:#e3f5f3; --gray:#526070; --gray-bg:#eef1f5;
  --sidebar:#0d1b2e; --sidebar-2:#13263f; --sidebar-text:#b8c4d6;
  --radius:12px; --radius-sm:8px; --shadow:0 1px 2px rgba(16,24,40,.05),0 1px 3px rgba(16,24,40,.06); --shadow-lg:0 12px 32px rgba(16,24,40,.14);
  --font:'Vazirmatn',Tahoma,'Segoe UI',sans-serif;
}
*{box-sizing:border-box}
[hidden]{display:none!important}
html,body{margin:0;padding:0}
body{font-family:var(--font);font-size:14px;line-height:1.7;color:var(--text);background:var(--bg);-webkit-font-smoothing:antialiased}
a{color:var(--primary);text-decoration:none}
a:hover{color:var(--primary-600)}
h1,h2,h3,h4{margin:0 0 .5em;line-height:1.4;font-weight:700}
h1{font-size:20px} h2{font-size:17px} h3{font-size:15px} h4{font-size:14px}
p{margin:0 0 .75em}
small,.muted{color:var(--muted)}
.ic{flex-shrink:0;vertical-align:middle}
hr{border:0;border-top:1px solid var(--border);margin:16px 0}
.hide{display:none!important}

/* ---------- Layout ---------- */
.app{display:grid;grid-template-columns:262px 1fr;min-height:100vh}
.sidebar{background:var(--sidebar);color:var(--sidebar-text);position:sticky;top:0;height:100vh;overflow-y:auto;display:flex;flex-direction:column;z-index:40}
.sidebar::-webkit-scrollbar{width:6px}.sidebar::-webkit-scrollbar-thumb{background:#2a3d59;border-radius:3px}
.brand{display:flex;align-items:center;gap:12px;padding:18px 18px 14px;border-bottom:1px solid rgba(255,255,255,.06)}
.brand strong{display:block;color:#fff;font-size:16px}
.brand small{display:block;color:#8fa3bf;font-size:12px;line-height:1.3}
.nav{padding:8px 10px 20px;flex:1}
.nav-group{font-size:11.5px;color:#6f84a3;padding:14px 10px 6px;letter-spacing:.2px}
.nav-item{display:flex;align-items:center;gap:10px;padding:8px 12px;border-radius:9px;color:var(--sidebar-text);margin-bottom:2px;font-size:13.5px;transition:background .15s,color .15s}
.nav-item:hover{background:var(--sidebar-2);color:#fff}
.nav-item.active{background:linear-gradient(90deg,rgba(14,90,138,.0),rgba(14,90,138,.55));color:#fff;box-shadow:inset -3px 0 0 #3fa9f5}
.nav-item span{flex:1}
.nav-badge{font-style:normal;background:#e5484d;color:#fff;font-size:11px;min-width:20px;height:20px;border-radius:10px;display:inline-flex;align-items:center;justify-content:center;padding:0 6px}
.sidebar-foot{padding:10px 18px;font-size:11px;color:#5b6f8c;border-top:1px solid rgba(255,255,255,.06)}
.main{min-width:0;display:flex;flex-direction:column}
.topbar{height:62px;background:var(--surface);border-bottom:1px solid var(--border);display:flex;align-items:center;gap:14px;padding:0 22px;position:sticky;top:0;z-index:30}
.top-search{flex:1;max-width:460px;display:flex;align-items:center;gap:8px;background:var(--surface-2);border:1px solid var(--border);border-radius:10px;padding:0 12px;color:var(--muted)}
.top-search input{border:0;background:transparent;height:38px;flex:1;font:inherit;outline:none;color:var(--text);min-width:0;width:100%}
.top-search{min-width:0}
.top-actions{display:flex;align-items:center;gap:10px;margin-inline-start:auto}
.today{font-size:12.5px;color:var(--muted);display:flex;align-items:center;gap:6px;white-space:nowrap}
.icon-btn{background:transparent;border:0;width:40px;height:40px;border-radius:10px;display:inline-flex;align-items:center;justify-content:center;color:var(--gray);cursor:pointer;position:relative}
.icon-btn:hover{background:var(--surface-2);color:var(--text)}
.notif em{position:absolute;top:4px;left:4px;background:#e5484d;color:#fff;font-style:normal;font-size:10.5px;min-width:18px;height:18px;border-radius:9px;display:flex;align-items:center;justify-content:center;padding:0 4px}
.user-menu{position:relative}
.user-btn{display:flex;align-items:center;gap:10px;background:transparent;border:0;cursor:pointer;font:inherit;color:var(--text);padding:4px 8px;border-radius:10px;text-align:right}
.user-btn:hover{background:var(--surface-2)}
.user-btn small{display:block;font-size:11px;color:var(--muted);line-height:1.2}
.avatar{width:36px;height:36px;border-radius:50%;background:var(--primary);color:#fff;display:flex;align-items:center;justify-content:center;font-weight:700}
.dropdown{display:none;position:absolute;left:0;top:calc(100% + 6px);background:var(--surface);border:1px solid var(--border);border-radius:10px;box-shadow:var(--shadow-lg);min-width:200px;padding:6px;z-index:50}
.dropdown.open{display:block}
.dropdown a{display:flex;gap:8px;align-items:center;padding:8px 10px;border-radius:8px;color:var(--text)}
.dropdown a:hover{background:var(--surface-2)}
.content{padding:22px 24px 48px;flex:1;min-width:0}
.page-head{display:flex;align-items:flex-end;justify-content:space-between;gap:16px;margin-bottom:18px;flex-wrap:wrap}
.page-head h1{margin:0}
.page-sub{margin:4px 0 0;color:var(--muted);font-size:13px}
.page-actions{display:flex;gap:8px;flex-wrap:wrap}
.crumbs{font-size:12.5px;color:var(--muted);margin-bottom:2px}
.crumbs a{color:var(--muted)} .crumbs span{margin:0 6px;color:var(--border-2)}
.only-mobile{display:none}
.backdrop{display:none}

/* ---------- Cards / grid ---------- */
.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);padding:18px;margin-bottom:18px}
.card-head{display:flex;align-items:center;justify-content:space-between;gap:10px;margin:-2px 0 14px;flex-wrap:wrap}
.card-head h2,.card-head h3{margin:0;display:flex;align-items:center;gap:8px}
.card.flush{padding:0}
.card.flush .card-head{padding:16px 18px 0;margin-bottom:12px}
.grid{display:grid;gap:18px}
.g2{grid-template-columns:repeat(2,minmax(0,1fr))}
.g3{grid-template-columns:repeat(3,minmax(0,1fr))}
.g4{grid-template-columns:repeat(4,minmax(0,1fr))}
.g-2-1{grid-template-columns:2fr 1fr}
.g-1-2{grid-template-columns:1fr 2fr}
.grid>.card{margin-bottom:0}
.stack>*+*{margin-top:18px}
.row{display:flex;gap:10px;align-items:center;flex-wrap:wrap}
.row-between{display:flex;justify-content:space-between;align-items:center;gap:10px;flex-wrap:wrap}
.mt{margin-top:18px}.mb0{margin-bottom:0}

/* ---------- KPI tiles ---------- */
.kpis{display:grid;grid-template-columns:repeat(auto-fill,minmax(172px,1fr));gap:14px;margin-bottom:18px}
.kpi{display:flex;gap:12px;align-items:flex-start;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:14px 16px;box-shadow:var(--shadow);color:var(--text);transition:transform .12s,box-shadow .12s;position:relative;overflow:hidden}
a.kpi:hover{transform:translateY(-2px);box-shadow:var(--shadow-lg);color:var(--text)}
.kpi::before{content:'';position:absolute;inset:0 0 auto 0;height:3px;background:var(--kc,var(--primary))}
.kpi-ic{width:40px;height:40px;border-radius:10px;display:flex;align-items:center;justify-content:center;background:var(--kb,var(--primary-50));color:var(--kc,var(--primary))}
.kpi-body{display:flex;flex-direction:column;min-width:0}
.kpi-label{font-size:12.5px;color:var(--muted)}
.kpi-value{font-size:21px;font-weight:700;line-height:1.35}
.kpi-value small{font-size:12px;font-weight:500;color:var(--muted)}
.kpi-sub{font-size:11.5px;color:var(--muted)}
.k-green{--kc:var(--green);--kb:var(--green-bg)} .k-red{--kc:var(--red);--kb:var(--red-bg)} .k-amber{--kc:var(--amber);--kb:var(--amber-bg)}
.k-blue{--kc:var(--blue);--kb:var(--blue-bg)} .k-orange{--kc:var(--orange);--kb:var(--orange-bg)} .k-purple{--kc:var(--purple);--kb:var(--purple-bg)}
.k-teal{--kc:var(--teal);--kb:var(--teal-bg)} .k-gray{--kc:var(--gray);--kb:var(--gray-bg)}

/* status strip */
.status-strip{display:grid;grid-template-columns:repeat(auto-fill,minmax(128px,1fr));gap:10px;margin-bottom:18px}
.st-card{display:flex;align-items:center;justify-content:space-between;gap:6px;border-radius:10px;padding:11px 12px;background:var(--surface);border:1px solid var(--border);color:var(--text)}
.st-card b{font-size:22px}
.st-card span{display:flex;align-items:center;gap:7px;font-size:12.5px;line-height:1.4}
.st-card i{width:10px;height:10px;border-radius:50%;display:inline-block;background:var(--dc)}
a.st-card:hover{border-color:var(--dc);color:var(--text)}

/* ---------- Buttons ---------- */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:7px;height:38px;padding:0 15px;border-radius:9px;border:1px solid var(--primary);background:var(--primary);color:#fff;font:inherit;font-size:13.5px;cursor:pointer;white-space:nowrap;transition:background .15s,border-color .15s}
.btn:hover{background:var(--primary-600);border-color:var(--primary-600);color:#fff}
.btn-ghost{background:var(--surface);color:var(--text);border-color:var(--border-2)}
.btn-ghost:hover{background:var(--surface-2);color:var(--text);border-color:var(--border-2)}
.btn-green{background:var(--green);border-color:var(--green)} .btn-green:hover{background:#106631;border-color:#106631}
.btn-red{background:var(--red);border-color:var(--red)} .btn-red:hover{background:#a51f1f;border-color:#a51f1f}
.btn-amber{background:#d97706;border-color:#d97706} .btn-amber:hover{background:#b45309;border-color:#b45309}
.btn-sm{height:30px;padding:0 10px;font-size:12.5px;border-radius:7px}
.btn-lg{height:46px;padding:0 22px;font-size:15px}
.btn[disabled]{opacity:.55;cursor:not-allowed}
.link-btn{background:none;border:0;color:var(--primary);cursor:pointer;font:inherit;padding:0}
.actions{display:flex;gap:6px;flex-wrap:nowrap;align-items:center}
td.actions{display:table-cell;white-space:nowrap;vertical-align:middle}td.actions>*{vertical-align:middle}td.actions>*+*{margin-inline-start:6px}
.inline{display:inline}

/* ---------- Forms ---------- */
.form-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:14px 16px}
.field{display:flex;flex-direction:column;gap:5px;min-width:0}
.field.wide{grid-column:span 2}
.field.full{grid-column:1/-1}
.field label,.ff label{font-size:12.5px;color:#475467;font-weight:500}
.req{color:var(--red);font-weight:400}
.hint{font-size:11.5px;color:var(--muted)}
input[type=text],input[type=password],input[type=number],input[type=time],input[type=email],input[type=file],select,textarea{width:100%;font:inherit;font-size:13.5px;color:var(--text);background:#fff;border:1px solid var(--border-2);border-radius:8px;padding:8px 11px;min-height:40px;outline:none;transition:border-color .15s,box-shadow .15s}
textarea{min-height:76px;resize:vertical}
input:focus,select:focus,textarea:focus{border-color:#4b9ad1;box-shadow:0 0 0 3px rgba(14,90,138,.12)}
input[readonly]{background:var(--surface-2)}
input[data-num],input[data-money]{direction:ltr;text-align:right}
select{appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%23667085' stroke-width='2.5'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:left 11px center;padding-left:30px}
.chk{display:inline-flex;align-items:center;gap:8px;cursor:pointer;user-select:none}
.chk input{width:17px;height:17px;accent-color:var(--primary)}
.form-actions{display:flex;gap:10px;justify-content:flex-start;margin-top:18px;padding-top:16px;border-top:1px solid var(--border);flex-wrap:wrap}
fieldset{border:1px solid var(--border);border-radius:10px;padding:14px 16px;margin:0 0 16px}
legend{padding:0 8px;font-weight:700;font-size:13.5px;color:var(--primary)}
.sel-wrap{position:relative}
.sel-search{margin-bottom:4px;min-height:34px!important;padding:5px 10px!important;font-size:12.5px!important}

/* filters */
.filters{display:flex;flex-wrap:wrap;gap:12px;align-items:flex-end;padding:14px 16px}
.ff{display:flex;flex-direction:column;gap:4px;min-width:150px;flex:1;max-width:240px}
.filter-actions{display:flex;gap:8px;align-items:flex-end}
.presets{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:10px}
.chip{display:inline-flex;align-items:center;height:30px;padding:0 12px;border-radius:16px;background:var(--surface);border:1px solid var(--border-2);color:var(--text);font-size:12.5px}
.chip.active,.chip:hover{background:var(--primary);border-color:var(--primary);color:#fff}

/* ---------- Tables ---------- */
.table-wrap{overflow-x:auto;border-radius:var(--radius-sm);-webkit-overflow-scrolling:touch}
table.table{width:100%;border-collapse:separate;border-spacing:0;font-size:13px}
.table th{background:var(--surface-2);color:#475467;font-weight:600;text-align:right;padding:10px 12px;border-bottom:1px solid var(--border);white-space:nowrap;position:sticky;top:0;z-index:1}
.table td{padding:9px 12px;border-bottom:1px solid var(--border);vertical-align:middle}
.table tbody tr:hover td{background:#f9fbfd}
.table tr:last-child td{border-bottom:0}
.table .num{direction:ltr;text-align:right;white-space:nowrap;font-variant-numeric:tabular-nums}
.table td.nowrap,.nowrap{white-space:nowrap}
.table tfoot td{background:var(--surface-2);font-weight:700;border-top:1px solid var(--border)}
.table.compact td,.table.compact th{padding:6px 10px}
.table tr.row-red td{background:#fff6f6}
.table tr.row-amber td{background:#fffaf0}
th.sortable{cursor:pointer}
th.sortable::after{content:' ⇅';color:#a8b3c2;font-size:11px}
.mlink b{color:var(--text)}
.pager{display:flex;gap:4px;align-items:center;justify-content:flex-start;margin-top:14px;flex-wrap:wrap}
.pager a{min-width:32px;height:32px;display:inline-flex;align-items:center;justify-content:center;border-radius:8px;border:1px solid var(--border);background:#fff;color:var(--text);padding:0 8px}
.pager a.active{background:var(--primary);color:#fff;border-color:var(--primary)}
.pager-info{color:var(--muted);font-size:12.5px;margin-inline-end:10px}

/* ---------- Badges ---------- */
.badge{display:inline-flex;align-items:center;gap:4px;height:24px;padding:0 9px;border-radius:12px;font-size:12px;font-weight:500;white-space:nowrap;background:var(--bb,var(--gray-bg));color:var(--bc,var(--gray))}
.b-green{--bb:var(--green-bg);--bc:var(--green)} .b-red{--bb:var(--red-bg);--bc:var(--red)} .b-amber{--bb:var(--amber-bg);--bc:var(--amber)}
.b-blue{--bb:var(--blue-bg);--bc:var(--blue)} .b-orange{--bb:var(--orange-bg);--bc:var(--orange)} .b-purple{--bb:var(--purple-bg);--bc:var(--purple)}
.b-teal{--bb:var(--teal-bg);--bc:var(--teal)} .b-gray{--bb:var(--gray-bg);--bc:var(--gray)}
.badge.solid-red{background:var(--red);color:#fff}
.dot{width:8px;height:8px;border-radius:50%;display:inline-block;background:currentColor}
.tag-em{background:var(--red);color:#fff;font-weight:700;border-radius:6px;padding:0 7px;height:22px;display:inline-flex;align-items:center;font-size:11.5px}
.tag-cm{background:#f59e0b;color:#fff;font-weight:700;border-radius:6px;padding:0 7px;height:22px;display:inline-flex;align-items:center;font-size:11.5px}

/* ---------- Alerts ---------- */
.alert{display:flex;align-items:flex-start;gap:10px;padding:12px 14px;border-radius:10px;margin-bottom:14px;border:1px solid;font-size:13.5px}
.alert span{flex:1}
.alert-success{background:var(--green-bg);border-color:#b7e2c4;color:#14532d}
.alert-error{background:var(--red-bg);border-color:#f3c2c2;color:#7f1d1d}
.alert-warning{background:var(--amber-bg);border-color:#f3d9a6;color:#78350f}
.alert-info{background:var(--blue-bg);border-color:#c5d4fa;color:#1e3a8a}
.alert-x{background:none;border:0;font-size:20px;line-height:1;cursor:pointer;color:inherit;opacity:.6}
.note-box{background:var(--surface-2);border:1px dashed var(--border-2);border-radius:10px;padding:12px 14px;font-size:13px}

/* ---------- Tabs ---------- */
.tabs{display:flex;gap:4px;border-bottom:1px solid var(--border);margin-bottom:16px;overflow-x:auto;scrollbar-width:thin}
.tab{background:none;border:0;border-bottom:2px solid transparent;padding:10px 14px;font:inherit;font-size:13.5px;color:var(--muted);cursor:pointer;white-space:nowrap;display:inline-flex;gap:6px;align-items:center}
.tab:hover{color:var(--text)}
.tab.active{color:var(--primary);border-bottom-color:var(--primary);font-weight:600}
.tab em{font-style:normal;background:var(--gray-bg);color:var(--gray);border-radius:10px;padding:0 7px;font-size:11.5px}
.tab-pane{display:none}
.tab-pane.active{display:block}

/* ---------- Info list ---------- */
.info-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(210px,1fr));gap:0;border:1px solid var(--border);border-radius:10px;overflow:hidden}
.info-grid>div{padding:10px 14px;border-bottom:1px solid var(--border);border-left:1px solid var(--border);display:flex;flex-direction:column;gap:2px;min-width:0}
.info-grid span{font-size:12px;color:var(--muted)}
.info-grid b{font-weight:500;word-break:break-word}
.kv{display:grid;grid-template-columns:150px 1fr;gap:6px 12px;font-size:13.5px}
.kv dt{color:var(--muted)} .kv dd{margin:0}

/* machine header */
.m-hero{display:flex;gap:18px;align-items:center;flex-wrap:wrap}
.m-hero .m-ic{width:62px;height:62px;border-radius:16px;background:var(--primary-50);color:var(--primary);display:flex;align-items:center;justify-content:center}
.m-hero h2{margin:0;font-size:20px}
.m-hero .meta{display:flex;gap:14px;flex-wrap:wrap;color:var(--muted);font-size:13px;margin-top:4px}
.m-hero .meta span{display:inline-flex;align-items:center;gap:5px}

/* ---------- Timeline ---------- */
.timeline{list-style:none;margin:0;padding:0;position:relative}
.timeline::before{content:'';position:absolute;right:7px;top:6px;bottom:6px;width:2px;background:var(--border)}
.timeline li{position:relative;padding:0 26px 14px 0}
.tl-dot{position:absolute;right:2px;top:7px;width:12px;height:12px;border-radius:50%;background:#fff;border:3px solid var(--primary)}
.tl-head{display:flex;gap:8px;flex-wrap:wrap;align-items:baseline}
.tl-head span{color:var(--muted);font-size:12px;margin-inline-start:auto}
.tl-body p{margin:4px 0 0;font-size:13px;color:#344054;background:var(--surface-2);border-radius:8px;padding:8px 10px}

/* ---------- Checklist ---------- */
.ck-table td{vertical-align:middle}
.ck-item{font-weight:600}
.ck-what{font-size:12px;color:var(--muted)}
.ck-opts{display:flex;gap:6px}
.ck-opt input{position:absolute;opacity:0;pointer-events:none}
.ck-opt span{display:inline-flex;align-items:center;gap:5px;height:34px;padding:0 12px;border-radius:8px;border:1.5px solid var(--border-2);cursor:pointer;font-size:13px;background:#fff;user-select:none;white-space:nowrap}
.ck-opt.ok input:checked+span{background:var(--green-bg);border-color:var(--green);color:var(--green);font-weight:700}
.ck-opt.bad input:checked+span{background:var(--red-bg);border-color:var(--red);color:var(--red);font-weight:700}
.ck-row.missing td{background:#fff4f4!important}
.ck-row.defect td{background:#fff9f0}
.sev-EM{color:var(--red);font-weight:700;font-size:11px} .sev-CM{color:var(--amber);font-weight:700;font-size:11px}
.ck-note{min-height:34px!important;padding:5px 9px!important;font-size:12.5px!important}
.ck-note-wrap{display:flex;gap:6px;align-items:center}
.ck-note-wrap .ck-note{flex:1;min-width:0}
.ck-cam{position:relative;flex:none;display:inline-flex;align-items:center;justify-content:center;width:38px;height:34px;border:1.5px dashed var(--border-2);border-radius:8px;color:var(--muted);cursor:pointer;background:#fff}
.ck-cam input{position:absolute;inset:0;opacity:0;width:100%;height:100%;cursor:pointer}
.ck-cam:hover{border-color:var(--primary);color:var(--primary)}
.ck-row.defect .ck-cam{border-color:var(--red);color:var(--red)}
.ck-cam.has{border-style:solid;border-color:var(--primary);background:var(--primary-50);color:var(--primary)}
.ck-cam.busy{opacity:.5}
.ck-cam-n{position:absolute;top:-7px;left:-7px;min-width:17px;height:17px;border-radius:9px;background:var(--primary);color:#fff;font-size:10.5px;line-height:17px;text-align:center;padding:0 3px}
.ck-cam-n:empty{display:none}
.ck-thumbs{display:flex;flex-wrap:wrap;gap:4px;margin-top:4px;align-items:center}
.ck-thumbs:empty{display:none}
.ck-thumbs img{width:44px;height:44px;object-fit:cover;border-radius:6px;border:1px solid var(--border)}
.ck-thumbs-x{border:0;background:var(--red-bg);color:var(--red);width:24px;height:24px;border-radius:50%;cursor:pointer;font-size:15px;line-height:1}
.thumbs{display:inline-flex;flex-wrap:wrap;gap:4px;margin:3px 0;vertical-align:middle}
.thumbs img{width:42px;height:42px;object-fit:cover;border-radius:6px;border:1px solid var(--border);display:block}
.thumbs b{font-size:11px;color:var(--muted);align-self:center}
td.ck-notes div+div{margin-top:4px;padding-top:4px;border-top:1px dashed var(--border)}
.gps-call{border:1px solid var(--border);border-radius:8px;margin:6px 0;padding:6px 10px;background:#fff}
.gps-call summary{cursor:pointer;display:flex;gap:6px;align-items:center;flex-wrap:wrap}
.gps-io pre{background:#0d1b2e;color:#e6edf6;border-radius:8px;padding:8px 10px;font-size:11.5px;max-height:320px;overflow:auto;white-space:pre-wrap;word-break:break-all;text-align:left;margin:4px 0 8px}
.lightbox{position:fixed;inset:0;z-index:300;background:rgba(10,16,28,.88);display:flex;align-items:center;justify-content:center;padding:40px 12px}
.lightbox img{max-width:100%;max-height:100%;border-radius:8px;box-shadow:0 10px 40px rgba(0,0,0,.4);background:#fff}
.lightbox button{position:absolute;border:0;background:rgba(255,255,255,.15);color:#fff;width:44px;height:44px;border-radius:50%;font-size:26px;cursor:pointer;line-height:1}
.lightbox .lb-x{top:12px;left:12px}
.lightbox .lb-p{right:12px;top:50%;margin-top:-22px}
.lightbox .lb-n{left:12px;top:50%;margin-top:-22px}
.lightbox .lb-o{position:absolute;bottom:12px;color:#fff;font-size:13px;opacity:.85}
.ck-progress{height:8px;border-radius:4px;background:var(--gray-bg);overflow:hidden}
.ck-progress i{display:block;height:100%;background:var(--green);width:0;transition:width .2s}
.sticky-bar{position:sticky;bottom:0;background:rgba(255,255,255,.96);backdrop-filter:blur(4px);border-top:1px solid var(--border);padding:12px 16px;margin:18px -18px -18px;display:flex;gap:12px;align-items:center;flex-wrap:wrap;border-radius:0 0 var(--radius) var(--radius);z-index:5}

/* progress bar */
.bar{height:8px;background:var(--gray-bg);border-radius:4px;overflow:hidden;min-width:80px}
.bar i{display:block;height:100%;border-radius:4px;background:var(--green)}
.bar.amber i{background:#f59e0b}.bar.red i{background:var(--red)}

/* ---------- Charts ---------- */
.chart-box{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:14px 16px;box-shadow:var(--shadow);min-width:0}
.chart-title{font-weight:700;font-size:14px;margin-bottom:8px}
.chart{position:relative;width:100%}
.chart svg{display:block;width:100%;height:100%;overflow:visible;font-family:var(--font);direction:ltr}
.chart .lbl{font-size:11px;fill:#667085}
.chart .grid-l{stroke:#eef1f5}
.chart .val{font-size:10.5px;fill:#344054;font-weight:600}
.chart .clk{cursor:pointer}
.chart .clk:hover{opacity:.82}
.chart-legend{display:flex;gap:12px;flex-wrap:wrap;font-size:12px;color:#475467;margin-top:6px;justify-content:center}
.chart-legend span{display:inline-flex;align-items:center;gap:5px}
.chart-legend i{width:10px;height:10px;border-radius:3px;display:inline-block}
.chart-tip{position:fixed;pointer-events:none;background:#101828;color:#fff;font-size:12px;padding:6px 10px;border-radius:8px;z-index:100;opacity:0;transition:opacity .1s;white-space:nowrap;font-family:var(--font)}
.chart-empty{display:flex;align-items:center;justify-content:center;height:100%;color:var(--muted);font-size:13px}

/* ---------- Empty / misc ---------- */
.empty-state{text-align:center;padding:36px 16px;color:var(--muted)}
.empty-state .ic{color:#b4bfcd;margin-bottom:8px}
.attach-list{display:flex;flex-wrap:wrap;gap:8px}
.attach{display:flex;flex-direction:column;align-items:center;gap:4px;width:110px;padding:8px;border:1px solid var(--border);border-radius:8px;font-size:11.5px;color:var(--text);text-align:center}
.attach img{width:90px;height:64px;object-fit:cover;border-radius:6px}
.pm-box{border:1px solid #f3d9a6;background:#fffbf2;border-radius:10px;padding:12px 14px}
.pm-box h4{color:var(--amber);display:flex;gap:6px;align-items:center}
.list-plain{list-style:none;margin:0;padding:0}
.list-plain li{padding:7px 0;border-bottom:1px dashed var(--border);display:flex;justify-content:space-between;gap:10px;align-items:center}
.list-plain li:last-child{border-bottom:0}
.big-num{font-size:30px;font-weight:700}
.text-red{color:var(--red)}.text-green{color:var(--green)}.text-amber{color:var(--amber)}
.legend-dot{display:inline-block;width:10px;height:10px;border-radius:50%;margin-inline-end:4px}
.perm-group{border:1px solid var(--border);border-radius:10px;padding:10px 14px;margin-bottom:10px}
.perm-group h4{margin-bottom:6px;color:var(--primary)}
.perm-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:4px 16px}
.dyn-rows .dyn-row{display:grid;gap:8px;align-items:end;margin-bottom:8px}
.drag{cursor:grab;color:var(--muted)}

/* modal */
.modal{position:fixed;inset:0;background:rgba(16,24,40,.45);display:none;align-items:flex-start;justify-content:center;z-index:80;padding:40px 14px;overflow-y:auto}
.modal.open{display:flex}
.modal-box{background:#fff;border-radius:14px;box-shadow:var(--shadow-lg);width:100%;max-width:640px;padding:20px 22px}
.modal-box.lg{max-width:900px}
.modal-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px}
.modal-head h3{margin:0}

/* login */
.login-wrap{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:20px;background:radial-gradient(1200px 600px at 80% -10%,#1b4f7a 0%,transparent 60%),linear-gradient(160deg,#0d1b2e,#123354)}
.login-card{background:#fff;border-radius:18px;box-shadow:0 30px 60px rgba(0,0,0,.35);width:100%;max-width:400px;padding:34px 30px}
.login-card .brand-l{text-align:center;margin-bottom:22px}
.login-card .brand-l h1{margin:10px 0 2px;font-size:22px}
body.bare{display:block}

/* datepicker */
.jdp{position:absolute;z-index:120;background:#fff;border:1px solid var(--border);border-radius:12px;box-shadow:var(--shadow-lg);padding:10px;width:270px;font-family:var(--font);user-select:none}
.jdp-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:6px;gap:4px}
.jdp-head b{font-size:14px}
.jdp-head select{min-height:30px;padding:2px 8px 2px 24px;font-size:13px;width:auto;background-position:left 6px center}
.jdp-nav{background:var(--surface-2);border:0;width:30px;height:30px;border-radius:8px;cursor:pointer;font-size:16px;color:var(--text)}
.jdp-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:2px;text-align:center}
.jdp-grid span{font-size:11px;color:var(--muted);padding:4px 0}
.jdp-grid button{border:0;background:none;height:32px;border-radius:8px;cursor:pointer;font:inherit;font-size:13px;color:var(--text)}
.jdp-grid button:hover{background:var(--primary-50)}
.jdp-grid button.sel{background:var(--primary);color:#fff}
.jdp-grid button.tod{box-shadow:inset 0 0 0 1.5px var(--primary)}
.jdp-grid button.fri{color:var(--red)}
.jdp-foot{display:flex;justify-content:space-between;margin-top:6px}
.jdp-foot button{background:none;border:0;color:var(--primary);cursor:pointer;font:inherit;font-size:12.5px}
/* انتخابگر ساعت ۲۴ ساعته */
.tp{width:330px;max-width:calc(100vw - 12px)}
.tp-cols{display:grid;grid-template-columns:3fr 2fr;gap:10px}
.tp-lbl{font-size:12px;color:var(--muted);margin-bottom:4px;text-align:center}
.tp-grid{display:grid;gap:3px;direction:ltr}
.tp-h{grid-template-columns:repeat(6,1fr)}
.tp-m{grid-template-columns:repeat(3,1fr);border-right:1px solid var(--border);padding-right:8px}
.tp-grid button{border:0;background:var(--surface-2);height:32px;border-radius:7px;cursor:pointer;font:inherit;font-size:13px;color:var(--text)}
.tp-grid button.night{background:#eef0f6;color:#475069}
.tp-grid button:hover{background:var(--primary-50)}
.tp-grid button.sel{background:var(--primary);color:#fff}
.tp-fmt{font-size:11px;color:var(--muted);align-self:center}
input.time-inp{text-align:center;letter-spacing:1px;font-variant-numeric:tabular-nums}
input.invalid{border-color:var(--red)!important;box-shadow:0 0 0 3px rgba(220,38,38,.12)}

/* ---------- Report / print ---------- */
.report-sheet{background:#fff;border:1px solid var(--border);border-radius:var(--radius);padding:18px}
.report-title{text-align:center;font-size:18px;font-weight:700;margin-bottom:4px}
.report-date{text-align:left;font-size:12.5px;color:var(--muted)}
.rep-area{background:#fff2cc;font-weight:700;padding:8px 12px;border:1px solid #d9c27a;border-bottom:0;margin-top:14px;border-radius:8px 8px 0 0}
table.rep{width:100%;border-collapse:collapse;font-size:12.5px}
table.rep th{background:#d9e1f2;border:1px solid #8ea9c1;padding:6px;font-weight:700;text-align:center}
table.rep td{border:1px solid #8ea9c1;padding:6px;text-align:center;vertical-align:middle}
table.rep td.txt{text-align:right}

/* QR دستگاه */
.qr-card{max-width:680px;margin:0 auto}
.qr-code-big{font-size:30px;font-weight:800;letter-spacing:1px;color:var(--primary);line-height:1.2}
.qr-name{font-size:15px;font-weight:600}
.qr-docs span{display:inline-block;margin:0 0 4px 8px}
.qr-actions{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin:12px 0}
.qr-actions .btn{justify-content:center;min-height:48px;height:auto;padding:8px 10px;white-space:normal;text-align:center}
.qr-actions .qr-main{grid-column:1/-1;min-height:56px;font-size:16px}
.qr-scan-box{position:relative;border-radius:12px;overflow:hidden;background:#000;margin:10px auto;aspect-ratio:1/1;max-width:420px}
.qr-scan-box video{width:100%;height:100%;object-fit:cover;display:block}
.qr-scan-actions{display:flex;flex-wrap:wrap;gap:8px;margin:6px 0}
.qr-scan-actions .btn{flex:1 1 200px;justify-content:center}
.qr-photo-btn{position:relative;overflow:hidden}
.qr-photo-btn input{position:absolute;inset:0;width:100%;height:100%;opacity:0;cursor:pointer}
.qr-frame{position:absolute;pointer-events:none;inset:16%;border:3px solid rgba(255,255,255,.9);border-radius:16px;box-shadow:0 0 0 999px rgba(0,0,0,.35)}
.qr-modal-svg{width:220px;height:220px;margin:0 auto 10px;display:block;border:1px solid var(--border);border-radius:10px;padding:6px;background:#fff}
.qr-modal-svg svg{width:100%;height:100%;display:block}
.labels{display:flex;flex-wrap:wrap;gap:4mm;justify-content:flex-start}
.qlabel{border:1px dashed #9aa4b2;border-radius:3mm;background:#fff;display:flex;align-items:center;gap:3mm;padding:2.5mm;break-inside:avoid;page-break-inside:avoid;color:#000;box-sizing:border-box;overflow:hidden}
.labels-md .qlabel{width:90mm;height:50mm}
.labels-md .ql-qr{width:44mm;height:44mm;flex:none}
.labels-sm .qlabel{width:50mm;height:50mm;flex-direction:column;justify-content:center;gap:.5mm;padding:2mm}
.labels-sm .ql-qr{width:35mm;height:35mm;flex:none}
.labels-lg .qlabel{width:92mm;height:100mm;flex-direction:column;justify-content:center;gap:1.5mm}
.labels-lg .ql-qr{width:58mm;height:58mm;flex:none}
.ql-qr svg{width:100%;height:100%;display:block}
.ql-txt{flex:1;min-width:0;text-align:center}
.labels-sm .ql-txt,.labels-lg .ql-txt{flex:none;width:100%}
.ql-co{font-size:8.5pt;color:#333}
.ql-code{font-size:22pt;font-weight:800;line-height:1.15;font-family:Tahoma,Arial,sans-serif}
.labels-sm .ql-code{font-size:12pt}
.labels-lg .ql-code{font-size:26pt}
.ql-name{font-size:10pt;font-weight:600;line-height:1.4}
.labels-sm .ql-name{font-size:7pt}
.labels-sm .ql-co{display:none}
.ql-plate{font-size:9pt;margin-top:1mm}
.ql-hint{font-size:7pt;color:#444;margin-top:2mm;border-top:1px solid #ccc;padding-top:1mm}
@media (max-width:760px){.qr-actions{grid-template-columns:1fr}.labels{justify-content:center}}
.push-banner{display:flex;align-items:center;gap:12px;background:linear-gradient(90deg,#e8f2f9,#f4f9fd);border:1px solid #c9e0f0;border-radius:12px;padding:10px 14px;margin-bottom:14px;color:var(--primary)}
.push-banner[hidden]{display:none}
.push-banner>div{flex:1;min-width:0;display:flex;flex-direction:column;color:var(--text)}
.push-banner small{color:var(--muted);font-size:12px}
.pwa-toast{position:fixed;left:50%;bottom:22px;transform:translateX(-50%);z-index:400;background:#1b2433;color:#fff;padding:10px 16px;border-radius:10px;font-size:13.5px;max-width:calc(100vw - 32px);box-shadow:0 8px 30px rgba(0,0,0,.25);transition:opacity .4s,transform .4s;text-align:center;line-height:1.8}
.pwa-toast.ok{background:#14532d}.pwa-toast.warn{background:#7c2d12}
.pwa-toast.out{opacity:0;transform:translate(-50%,12px)}
.pwa-steps{margin:0 0 8px;padding-right:20px;line-height:2}
.pwa-steps li{margin-bottom:6px}
.nav-install{margin-top:10px;border:1px dashed rgba(255,255,255,.25)}
@media (display-mode: standalone){.today{display:none}}
@media (max-width:760px){.push-banner{flex-wrap:wrap}.push-banner>div{flex-basis:calc(100% - 40px)}}
/* ارجاع‌ها */
.assign-bar{background:linear-gradient(90deg,#f4effe,#faf8ff);border:1px solid #d9c9f7;border-right:4px solid var(--purple);border-radius:12px;padding:10px 14px;margin-bottom:14px}
.assign-bar .ab-head{display:flex;align-items:center;gap:8px;color:var(--purple);flex-wrap:wrap}
.assign-bar .ab-head b{flex:1;min-width:180px;color:#3b1a7a;font-size:14px}
.assign-bar ul{list-style:none;margin:8px 0 0;padding:0;display:flex;flex-direction:column;gap:4px}
.assign-bar li{display:flex;gap:10px;align-items:baseline;justify-content:space-between;font-size:13px;padding:5px 8px;background:rgba(255,255,255,.75);border-radius:8px}
.assign-bar li a{color:var(--text);flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.assign-bar li a:hover{color:var(--purple)}
.assign-bar li small{color:var(--muted);font-size:11.5px;white-space:nowrap}
.notif-list tr.unread td{font-weight:600}
.notif-list tr.n-assign{background:#faf7ff}
.notif-list .badge{vertical-align:middle;height:21px;font-size:11px;margin-inline-start:4px}
.n-toast{position:fixed;left:16px;bottom:16px;z-index:450;width:min(380px,calc(100vw - 32px));background:#fff;border:1px solid #d9c9f7;border-right:4px solid var(--purple);border-radius:12px;box-shadow:var(--shadow-lg);padding:12px 14px;display:flex;gap:10px;align-items:flex-start;animation:ntin .35s ease-out}
.n-toast.danger{border-right-color:var(--red);border-color:#f3c2c2}
.n-toast>svg{color:var(--purple);flex:none;margin-top:2px}.n-toast.danger>svg{color:var(--red)}
.n-toast div{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}
.n-toast b{font-size:13.5px;line-height:1.7}
.n-toast small{color:var(--muted);font-size:12px;line-height:1.7}
.n-toast .btn{align-self:flex-start;margin-top:6px}
.n-toast .alert-x{margin-top:-4px}
@keyframes ntin{from{opacity:0;transform:translateY(14px)}to{opacity:1;transform:none}}
@media (max-width:760px){.assign-bar li{flex-direction:column;align-items:flex-start;gap:2px}.assign-bar li a{white-space:normal;width:100%}.assign-bar .ab-head b{font-size:13.5px}.n-toast{left:16px;right:16px;width:auto;bottom:12px}}
@media print{
  @page{size:A4 landscape;margin:10mm}
  body{background:#fff;font-size:11px}
  .sidebar,.topbar,.page-actions,.filters,.presets,.no-print,.alert,.backdrop,.pager,.assign-bar,.n-toast,.pwa-toast,.push-banner{display:none!important}
  .app{display:block}
  .content{padding:0}
  .card,.report-sheet{border:0;box-shadow:none;padding:0}
  .table th{position:static}
  .labels-page .page-head{display:none!important}
  .labels{gap:3mm}
  .qlabel{border-color:#c4c9d1}
}

/* ---------- Responsive ---------- */
@media (max-width:1200px){.g4{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:1024px){
  html,body{overflow-x:hidden;max-width:100%}
  .app{grid-template-columns:1fr}
  .sidebar{position:fixed;top:0;right:0;width:280px;transform:translateX(105%);transition:transform .22s;box-shadow:var(--shadow-lg)}
  body.sb-open .sidebar{transform:none}
  body.sb-open .backdrop{display:block;position:fixed;inset:0;background:rgba(0,0,0,.35);z-index:35}
  .only-mobile{display:inline-flex}
  .g3,.g-2-1,.g-1-2{grid-template-columns:1fr}
}
@media (max-width:760px){
  .content{padding:14px 12px 40px}
  .topbar{padding:0 10px;gap:8px}
  .today,.hide-sm{display:none}
  .top-search{max-width:none}
  .g2,.g4{grid-template-columns:1fr}
  .field.wide{grid-column:auto}
  .kpis{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
  .kpi{padding:12px;gap:8px}
  .kpi-ic{width:34px;height:34px}
  .kpi-value{font-size:18px}
  .card{padding:14px}
  .ff{max-width:none;min-width:calc(50% - 8px)}
  .page-head h1{font-size:18px}
  .ck-table thead{display:none}
  .ck-table,.ck-table tbody,.ck-table tr,.ck-table td{display:block;width:100%}
  .ck-table tr{border:1px solid var(--border);border-radius:10px;margin-bottom:10px;padding:8px 10px;background:#fff}
  .ck-table td{border:0!important;padding:4px 0!important}
  .ck-table td.ck-n{display:none}
  .ck-opt span{height:40px;padding:0 18px}
  .kv{grid-template-columns:1fr}
  .sticky-bar{margin:14px -14px -14px}
  .dyn-rows .dyn-row{grid-template-columns:1fr!important;border:1px solid var(--border);border-radius:10px;padding:10px}
}

/* ---------- نقشه لحظه‌ای ماشین‌آلات ---------- */
.map-stats{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin-bottom:12px}
.ms-chip{display:inline-flex;align-items:center;gap:6px;height:36px;padding:0 12px;border-radius:18px;border:1px solid var(--border-2);background:var(--surface);font:inherit;font-size:13px;color:var(--text);cursor:pointer}
.ms-chip i{width:10px;height:10px;border-radius:50%;background:var(--c,#999);box-shadow:0 0 0 3px color-mix(in srgb,var(--c,#999) 22%,transparent)}
.ms-chip b{font-size:15px}
.ms-chip span{color:var(--muted)}
.ms-chip.active{border-color:var(--primary);background:var(--primary-50);box-shadow:inset 0 0 0 1px var(--primary)}
.ms-chip[hidden]{display:none}
.ms-nogps{font-size:12.5px;margin-inline-start:auto}
.map-wrap{display:grid;grid-template-columns:330px 1fr;gap:14px;height:calc(100vh - 62px - 190px);min-height:520px}
.map-side{display:flex;flex-direction:column;min-height:0;padding:0;overflow:hidden}
.ms-tools{padding:12px;border-bottom:1px solid var(--border);display:flex;flex-direction:column;gap:8px}
.ms-search{display:flex;align-items:center;gap:6px;border:1px solid var(--border-2);border-radius:9px;padding:0 10px;background:var(--surface)}
.ms-search svg{color:var(--muted);flex:none}
.ms-search input{border:0;outline:0;height:36px;flex:1;min-width:0;font:inherit;background:none}
.ms-sel{display:flex;gap:6px}.ms-sel select{flex:1;min-width:0;height:34px}
.ms-lbl{font-size:12.5px;color:var(--muted);display:flex;gap:6px;align-items:center}
.ms-list{overflow-y:auto;flex:1;min-height:0;padding:4px}
.ms-empty{padding:24px 12px;text-align:center;color:var(--muted);font-size:13px}
.ml-item{display:flex;align-items:center;gap:9px;width:100%;text-align:right;background:none;border:0;border-bottom:1px solid var(--border);padding:8px 8px;font:inherit;color:var(--text);cursor:pointer;border-radius:8px}
.ml-item:hover{background:var(--primary-50)}
.ml-item>i{width:10px;height:10px;border-radius:50%;flex:none}
.ml-main{flex:1;min-width:0;font-size:13px;line-height:1.6;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.ml-main small{display:block;color:var(--muted);font-size:11.5px;overflow:hidden;text-overflow:ellipsis}
.ml-sub{font-size:11.5px;color:var(--muted);white-space:nowrap}
.ml-item.dis{opacity:.55;cursor:default}
.map-main{position:relative;border-radius:var(--radius);overflow:hidden;border:1px solid var(--border);box-shadow:var(--shadow);min-height:0}
#map{position:absolute;inset:0;z-index:0;isolation:isolate;background:#e8eef3;font-family:var(--font)}
.map-status{position:absolute;top:10px;right:10px;z-index:500;background:rgba(255,255,255,.94);border:1px solid var(--border);border-radius:18px;padding:5px 12px;font-size:12px;display:flex;gap:6px;align-items:center;box-shadow:var(--shadow);max-width:calc(100% - 80px)}
.map-status a{color:var(--primary)}
.dot-live{width:8px;height:8px;border-radius:50%;background:#16a34a;animation:livepulse 1.6s infinite}
@keyframes livepulse{0%{box-shadow:0 0 0 0 rgba(22,163,74,.55)}70%{box-shadow:0 0 0 8px rgba(22,163,74,0)}100%{box-shadow:0 0 0 0 rgba(22,163,74,0)}}
.spin{width:12px;height:12px;border:2px solid var(--border-2);border-top-color:var(--primary);border-radius:50%;animation:spin .8s linear infinite;display:inline-block}
@keyframes spin{to{transform:rotate(360deg)}}
.map-legend{position:absolute;bottom:22px;right:10px;z-index:500;background:rgba(255,255,255,.92);border-radius:10px;padding:5px 10px;font-size:11.5px;display:flex;gap:10px;flex-wrap:wrap;box-shadow:var(--shadow)}
.map-legend span{display:inline-flex;align-items:center;gap:4px}.map-legend i{width:9px;height:9px;border-radius:50%}
.mk-wrap{background:none;border:0}
.mk{position:relative;width:26px;height:26px}
.mk>i{position:absolute;inset:4px;border-radius:50%;background:var(--c);border:2.5px solid #fff;box-shadow:0 1px 4px rgba(0,0,0,.45)}
.mk.st-moving>i{animation:mkpulse 2s infinite}
@keyframes mkpulse{0%{box-shadow:0 0 0 0 rgba(22,163,74,.6),0 1px 4px rgba(0,0,0,.4)}70%{box-shadow:0 0 0 10px rgba(22,163,74,0),0 1px 4px rgba(0,0,0,.4)}100%{box-shadow:0 0 0 0 rgba(22,163,74,0),0 1px 4px rgba(0,0,0,.4)}}
.mk.st-stale>i{background:#fff;border:3px dashed var(--c)}
.mk-arrow{position:absolute;inset:-7px;display:block;pointer-events:none}
.mk-arrow::before{content:'';position:absolute;left:50%;top:0;margin-left:-5px;border:5px solid transparent;border-bottom:8px solid var(--c);border-top:0}
.mk-warn{position:absolute;top:-6px;right:-6px;width:14px;height:14px;border-radius:50%;background:#dc2626;color:#fff;font:700 10px/14px var(--font);text-align:center;font-style:normal;border:1.5px solid #fff}
.mk-lbl{position:absolute;top:24px;left:50%;transform:translateX(-50%);background:rgba(17,24,39,.82);color:#fff;font:600 10.5px/1 var(--font);padding:3px 5px;border-radius:5px;white-space:nowrap;pointer-events:none}
#map.no-lbl .mk-lbl{display:none}
#map.tracking .mk-wrap .mk{opacity:.35}
.mk-cl{width:100%;height:100%;border-radius:50%;display:flex;align-items:center;justify-content:center;box-shadow:0 2px 8px rgba(0,0,0,.35);cursor:pointer}
.mk-cl span{width:calc(100% - 12px);height:calc(100% - 12px);border-radius:50%;background:#fff;display:flex;align-items:center;justify-content:center;font:700 13px var(--font);color:#1b2433}
.leaflet-container{font-family:var(--font)}
.leaflet-popup-content{margin:12px 14px;font-size:12.5px;line-height:1.7}
.leaflet-control-layers{direction:rtl;text-align:right;font-family:var(--font)}
.leaflet-control-attribution{direction:ltr;font-size:10px}
.leaflet-tooltip{font-family:var(--font);direction:rtl;text-align:right}
/* نقشه تیره: کاشی‌های نقشه روشن در مرورگر تیره می‌شوند (بدون نیاز به سرویس کاشی تیره و کلید API) — فقط لایه کاشی‌ها، نه نشانگرها */
.leaflet-container.map-tiles-dark .leaflet-tile-pane{filter:invert(1) hue-rotate(180deg) brightness(.92) contrast(.88) saturate(.7)}
.leaflet-container.map-tiles-dark{background:#1b2230}
.mp-h{display:flex;gap:8px;align-items:baseline;font-size:14px;margin-bottom:4px}.mp-h b{font-size:15px}
.mp-st{display:flex;align-items:center;gap:6px;flex-wrap:wrap;margin-bottom:6px}
.mp-st .badge{height:20px;font-size:11px;margin-inline-start:auto}
.mp-dot{width:10px;height:10px;border-radius:50%}
.mp table{width:100%;border-collapse:collapse}
.mp th{color:var(--muted);font-weight:500;text-align:right;padding:2px 0 2px 8px;white-space:nowrap;vertical-align:top;width:1%}
.mp td{padding:2px 0}
.mp td small{color:var(--muted)}
.mp-ll{font-family:ui-monospace,Menlo,Consolas,monospace;font-size:11.5px}
.mp-copy{border:1px solid var(--border-2);background:var(--surface-2);border-radius:5px;font:inherit;font-size:11px;padding:0 6px;cursor:pointer}
.mp-warn{background:var(--red-bg);color:var(--red);border-radius:6px;padding:2px 8px;margin:4px 0;font-weight:600}
.mp-warn.amber{background:var(--amber-bg);color:var(--amber)}
.mp-act{display:flex;gap:6px;margin-top:8px}
.mp-act .btn{flex:1;justify-content:center}
.mp-nav{margin-top:8px;font-size:12px;color:var(--muted);display:flex;gap:10px;flex-wrap:wrap}
.mp-nav a{color:var(--primary)}
.leaflet-container a.btn{color:#fff}.leaflet-container a.btn-ghost,.leaflet-container .btn-ghost{color:var(--text)}
.track-panel{position:absolute;left:10px;top:10px;z-index:600;width:min(360px,calc(100% - 20px));max-height:calc(100% - 20px);overflow-y:auto;background:#fff;border-radius:12px;box-shadow:var(--shadow-lg);border:1px solid var(--border);padding:10px 12px;direction:rtl}
.track-panel[hidden]{display:none}
.tp-head{display:flex;align-items:center;justify-content:space-between;gap:8px;font-size:13.5px}
.tp-head>div{display:flex;align-items:center;gap:6px;flex-wrap:wrap;color:var(--primary)}
.tp-head>div span{color:var(--text)}
.tp-form{display:flex;gap:6px;margin:8px 0;flex-wrap:wrap}
.tp-form input{width:120px;height:32px;text-align:center}
.tp-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:6px;margin:6px 0}
.tp-stats div{background:var(--surface-2);border-radius:8px;padding:6px;text-align:center;display:flex;flex-direction:column;gap:2px}
.tp-stats b{font-size:13px}.tp-stats span{font-size:10.5px;color:var(--muted)}
.tp-stops{display:flex;flex-direction:column;gap:3px;max-height:150px;overflow-y:auto;margin:6px 0}
.tp-stop{display:flex;gap:6px;align-items:center;background:none;border:0;border-bottom:1px dashed var(--border);padding:4px 2px;font:inherit;font-size:12px;cursor:pointer;text-align:right;color:var(--text)}
.tp-stop i{width:8px;height:8px;border-radius:50%}.tp-stop b{margin-inline-start:auto}
.tp-note,.tp-load,.tp-empty,.tp-err{font-size:12px;color:var(--muted);display:flex;gap:6px;align-items:center;line-height:1.8}
.tp-err{color:var(--red)}
.tp-play{display:flex;align-items:center;gap:8px;border-top:1px solid var(--border);padding-top:8px;margin-top:6px}
.tp-play input{flex:1}
.tp-play span{font-size:12px}
.tp-pin{width:24px;height:24px;border-radius:50%;color:#fff;font:700 11px/20px var(--font);text-align:center;border:2px solid #fff;box-shadow:0 1px 5px rgba(0,0,0,.4)}
.tp-pin.start{background:#16a34a}.tp-pin.end{background:#dc2626}
.tp-head-mk{width:18px;height:18px;border-radius:50%;background:#1d4ed8;border:3px solid #fff;box-shadow:0 0 0 4px rgba(29,78,216,.3),0 1px 5px rgba(0,0,0,.4)}
.map-alert{margin-bottom:10px}
body.map-full .map-wrap{position:fixed;inset:0;z-index:200;height:auto;min-height:0;background:var(--bg);padding:8px;grid-template-columns:300px 1fr;gap:8px}
body.map-full .map-main,body.map-full .map-side{border-radius:10px}
@media (max-width:900px){
  .map-wrap{grid-template-columns:1fr;height:auto;min-height:0}
  .map-main{height:62vh;order:-1}
  .map-side{max-height:60vh}
  .ms-nogps{flex-basis:100%;margin:0}
  .ms-chip{height:32px;padding:0 10px;font-size:12px}.ms-chip span{display:none}.ms-chip[data-f=all] span{display:inline}
  .map-legend{display:none}
  .track-panel{left:6px;right:6px;top:auto;bottom:6px;width:auto;max-height:46%;padding:8px 10px}
  .tp-stats{grid-template-columns:repeat(3,1fr);gap:4px}.tp-stats div{padding:4px}.tp-stats b{font-size:12px}.tp-stats span{font-size:10px}
  .tp-stops{max-height:90px}
  body.map-full .map-wrap{grid-template-columns:1fr;grid-template-rows:1fr auto}
  body.map-full .map-main{height:auto}
  body.map-full .map-side{display:none}
}

/* ---------- تحلیل علت ریشه‌ای (RCA) ---------- */
.rca-steps{display:flex;gap:0;margin-bottom:14px;background:var(--surface);border:1px solid var(--border);border-radius:12px;padding:10px 8px;overflow-x:auto}
.rca-steps .rs{flex:1;min-width:92px;display:flex;flex-direction:column;align-items:center;gap:4px;position:relative;font-size:12.5px;color:var(--muted)}
.rca-steps .rs::before{content:'';position:absolute;top:14px;right:50%;width:100%;height:2px;background:var(--border-2);z-index:0}
.rca-steps .rs:first-child::before{display:none}
.rca-steps .rs i{width:28px;height:28px;border-radius:50%;background:var(--surface-2);border:2px solid var(--border-2);display:flex;align-items:center;justify-content:center;font-style:normal;font-weight:700;z-index:1}
.rca-steps .rs.done i{background:var(--green);border-color:var(--green);color:#fff}.rca-steps .rs.done::before{background:var(--green)}
.rca-steps .rs.cur i{background:var(--primary);border-color:var(--primary);color:#fff;box-shadow:0 0 0 4px var(--primary-50)}.rca-steps .rs.cur{color:var(--primary);font-weight:700}.rca-steps .rs.cur::before{background:var(--green)}
.num-c{display:inline-flex;width:24px;height:24px;border-radius:50%;background:var(--primary);color:#fff;align-items:center;justify-content:center;font-size:12.5px;margin-left:6px}
.rca-sec p.pre{white-space:normal;line-height:1.9;margin:0 0 8px}
.whys{display:flex;flex-direction:column;gap:0}
.why{display:flex;gap:10px;align-items:stretch;position:relative;padding-bottom:12px}
.why:not(:last-child)::after{content:'';position:absolute;right:13px;top:28px;bottom:0;width:2px;background:var(--border-2)}
.why>i{flex:none;width:28px;height:28px;border-radius:50%;background:var(--amber-bg);color:var(--amber);font-style:normal;font-weight:700;display:flex;align-items:center;justify-content:center;border:2px solid #f3d9a6}
.why:last-child>i{background:var(--red);color:#fff;border-color:var(--red)}
.why>div{flex:1;background:var(--surface-2);border-radius:10px;padding:6px 12px;display:flex;flex-direction:column}
.why small{color:var(--muted);font-size:12px}.why b{font-weight:600}
.rca-tl{list-style:none;margin:0;padding:0;border-right:2px solid var(--border-2)}
.rca-tl li{position:relative;padding:4px 16px 10px 0;display:flex;flex-direction:column}
.rca-tl li::before{content:'';position:absolute;right:-6px;top:9px;width:10px;height:10px;border-radius:50%;background:var(--primary)}
.rca-tl b{font-size:12.5px;color:var(--primary)}
.fb-wrap{overflow-x:auto}.fishbone{width:100%;min-width:640px;height:auto;display:block}
.root-box{background:var(--red-bg);border:1px solid #f3c2c2;border-radius:10px;padding:10px 14px}.root-box p{margin:6px 0 0;font-weight:600;color:#7f1d1d;line-height:1.9}
.root-cats{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}
.rc-opt{display:flex;gap:8px;align-items:flex-start;border:1px solid var(--border-2);border-radius:10px;padding:8px 10px;cursor:pointer}
.rc-opt span{display:flex;flex-direction:column}.rc-opt small{color:var(--muted);font-size:11.5px}
.rc-opt:has(input:checked){border-color:var(--primary);background:var(--primary-50)}
.rows{display:flex;flex-direction:column;gap:6px}
.rrow{display:flex;gap:6px;align-items:center}.rrow input{height:36px}
.rrow .wn{flex:none;width:26px;height:26px;border-radius:50%;background:var(--amber-bg);color:var(--amber);font-style:normal;font-weight:700;display:flex;align-items:center;justify-content:center}
.fb-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}
select.multi{height:auto;min-height:110px;padding:4px}
.ro{padding:8px 10px;background:var(--surface-2);border-radius:8px;border:1px solid var(--border)}
.rca-verify{border-color:#99d5cf;background:linear-gradient(180deg,#f0fbfa,#fff)}
.rca-form .sticky-bar{margin:0 0 18px;border-radius:12px;border:1px solid var(--border)}
@media (max-width:760px){.root-cats,.fb-grid{grid-template-columns:1fr}.rrow{flex-wrap:wrap}.rrow input[style*="flex"]{min-width:100%}.why-row input{min-width:calc(100% - 70px)!important}}
/* گزارش چاپی RCA */
.rca-doc{background:#fff;max-width:210mm;margin:0 auto;padding:14px 18px;border:1px solid var(--border);border-radius:8px;font-size:12px;line-height:1.75;color:#111}
.rca-doc h2{font-size:13.5px;background:#0e5a8a;color:#fff;padding:4px 10px;border-radius:4px;margin:14px 0 6px}
.rca-doc h3{font-size:12.5px;margin:8px 0 4px;color:#0e5a8a}
.rd-head{width:100%;border-collapse:collapse;border:1.5px solid #0e5a8a;margin-bottom:6px}
.rd-head td{padding:8px;vertical-align:middle;border:1px solid #c9d7e3}
.rd-logo{width:30%}.rd-logo img{float:right;margin-left:8px}.rd-logo b{display:block;font-size:13px}.rd-logo small{color:#555}
.rd-title{text-align:center}.rd-title h1{font-size:16px;margin:0}.rd-title small{color:#555}
.rd-meta{width:26%;font-size:11.5px}
.rd-grid{width:100%;border-collapse:collapse}
.rd-grid th,.rd-grid td{border:1px solid #cfd8e3;padding:4px 8px;text-align:right;vertical-align:top}
.rd-grid th{background:#f1f5f9;width:16%;font-weight:600;white-space:nowrap}
.rd-list th{width:auto}
.rd-box{border:1px solid #cfd8e3;border-radius:4px;padding:6px 10px;margin-bottom:6px}
.rd-fb svg{width:100%;height:auto;border:1px solid #cfd8e3;border-radius:4px}
.rd-sign{width:100%;border-collapse:collapse;margin-top:16px}
.rd-sign td{border:1px solid #cfd8e3;padding:8px;height:80px;vertical-align:top;width:33%}
.rd-sign span{display:block;color:#555;font-size:11px}.rd-sign b{display:block;margin-top:4px}.rd-sign i{display:block;margin-top:16px;color:#999;font-style:normal;font-size:10.5px}
.rd-foot{text-align:center;color:#888;font-size:10px;margin-top:10px}
@media print{
  .rca-print-page .content{padding:0}
  .rca-doc{border:0;padding:0;max-width:none;font-size:10.5px}
  .rca-doc h2,.rca-doc h3{-webkit-print-color-adjust:exact;print-color-adjust:exact;break-after:avoid}
  .rd-grid tr,.rd-sign,.rd-fb{break-inside:avoid}
  .rd-grid th{-webkit-print-color-adjust:exact;print-color-adjust:exact}
}

/* ---------- ارزیابی عملکرد رانندگان ---------- */
.podium{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin-bottom:16px;align-items:end}
.pod{position:relative;display:flex;flex-direction:column;align-items:center;gap:4px;background:var(--surface);border:1px solid var(--border);border-radius:14px;padding:16px 10px 14px;color:var(--text);box-shadow:var(--shadow);text-align:center}
.pod:hover{border-color:var(--primary)}
.pod>i{position:absolute;top:10px;right:12px;width:30px;height:30px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-style:normal;font-weight:800;color:#fff;background:#94a3b8}
.pod.p1{order:2;border-color:#f5c542;background:linear-gradient(180deg,#fff8e1,#fff);padding-top:24px}.pod.p1>i{background:#d4a017}
.pod.p2{order:1}.pod.p2>i{background:#94a3b8}
.pod.p3{order:3}.pod.p3>i{background:#b87333}
.pod .avatar{width:52px;height:52px;font-size:20px}
.pod.p1 .avatar{width:62px;height:62px;font-size:24px;box-shadow:0 0 0 4px #f5c54266}
.pod b{font-size:14.5px}.pod small{color:var(--muted)}
.pod strong{font-size:28px;line-height:1.2;color:var(--primary)}
.op-table td{vertical-align:middle}
.dchip{display:inline-flex;min-width:38px;justify-content:center;border-radius:8px;padding:2px 6px;font-weight:600;font-size:12.5px}
.dchip.g{background:var(--green-bg);color:var(--green)}.dchip.b{background:var(--blue-bg);color:var(--blue)}.dchip.a{background:var(--amber-bg);color:var(--amber)}.dchip.r{background:var(--red-bg);color:var(--red)}.dchip.na{color:var(--muted)}
.rk{display:inline-flex;width:28px;height:28px;border-radius:50%;align-items:center;justify-content:center;background:var(--surface-2)}.rk.top{background:#fff3c4;color:#8a6100}
.tr{font-size:12px;font-weight:600}.tr.up{color:var(--green)}.tr.dn{color:var(--red)}
.op-method summary{cursor:pointer;list-style:none}.op-method ul{margin:10px 0 0;padding-right:20px;line-height:2;font-size:13px}
.op-hero{display:flex;gap:18px;align-items:center;flex-wrap:wrap}
.op-score{width:110px;height:110px;border-radius:50%;display:flex;flex-direction:column;align-items:center;justify-content:center;border:7px solid var(--gray-bg);flex:none}
.op-score strong{font-size:34px;line-height:1}.op-score small{color:var(--muted);font-size:11.5px}
.op-score.green{border-color:#b7e2c4;color:var(--green)}.op-score.blue{border-color:#c5d4fa;color:var(--blue)}.op-score.amber{border-color:#f3d9a6;color:var(--amber)}.op-score.red{border-color:#f3c2c2;color:var(--red)}
.op-hero-t{flex:1;min-width:240px}.op-hero-t h2{margin:0 0 4px;display:flex;gap:8px;align-items:center;flex-wrap:wrap}.op-hero-t p{margin:0 0 8px}
.op-mini{display:flex;gap:14px;flex-wrap:wrap;font-size:12.5px;color:var(--muted)}.op-mini span{display:inline-flex;gap:4px;align-items:center}
.op-dims{display:flex;flex-direction:column;gap:14px}
.od-h{display:flex;align-items:baseline;gap:8px;margin-bottom:4px}.od-h small{color:var(--muted);font-size:11.5px;flex:1}
.od-v{font-weight:800;font-size:16px}.od-v.green{color:var(--green)}.od-v.blue{color:var(--blue)}.od-v.amber{color:var(--amber)}.od-v.red{color:var(--red)}.od-v.gray{color:var(--muted);font-size:12px;font-weight:500}
.od-bar{position:relative;height:10px;background:var(--gray-bg);border-radius:6px;margin-bottom:4px}
.od-bar i{position:absolute;right:0;top:0;bottom:0;border-radius:6px}
.od-bar i.green{background:var(--green)}.od-bar i.blue{background:var(--blue)}.od-bar i.amber{background:#f59e0b}.od-bar i.red{background:var(--red)}
.od-bar em{position:absolute;top:-4px;bottom:-4px;width:3px;margin-right:-1px;background:#1b2433;border-radius:2px}
.stars{color:#f59e0b;letter-spacing:1px;font-size:13px;white-space:nowrap}.stars i{color:#d9dee5;font-style:normal}.stars.lg{font-size:20px}
.rate-row{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:12px 0;border-bottom:1px dashed var(--border)}
.star-in{display:inline-flex;flex-direction:row-reverse}
.star-in input{position:absolute;opacity:0;width:1px;height:1px}
.star-in label{font-size:30px;line-height:1;color:#d9dee5;cursor:pointer;padding:0 2px;transition:transform .1s}
.star-in label:hover{transform:scale(1.15)}
.star-in input:checked ~ label,.star-in label:hover,.star-in label:hover ~ label{color:#f59e0b}
.star-in:hover input:checked ~ label{color:#d9dee5}.star-in:hover label:hover,.star-in:hover label:hover ~ label{color:#f59e0b}
.rate-live{font-size:18px;color:var(--primary)}
.op-me-b{display:flex;gap:16px;align-items:flex-start;flex-wrap:wrap}.op-me-b>div:last-child{flex:1;min-width:220px}
.op-me .op-score{width:92px;height:92px}.op-me .op-score strong{font-size:28px}
.op-fb{margin-top:6px;font-size:12.5px;border-top:1px dashed var(--border);padding-top:6px}
@media (max-width:760px){.podium{grid-template-columns:1fr;}.pod.p1,.pod.p2,.pod.p3{order:0}.rate-row{flex-direction:column;align-items:flex-start}}
/* انتخاب چندتایی با جستجو */
.pick{border:1px solid var(--border-2);border-radius:10px;background:var(--surface);overflow:hidden}
.pick .sel-search{border:0!important;border-bottom:1px solid var(--border)!important;border-radius:0!important;margin:0;width:100%;box-shadow:none!important}
.pick-list{overflow:auto;padding:4px 6px}
.pick-i{display:flex;gap:8px;align-items:center;padding:5px 6px;border-radius:8px;cursor:pointer;font-size:13.5px;line-height:1.5}
.pick-i:hover{background:var(--surface-2)}
.pick-i input{width:16px;height:16px;flex-shrink:0;margin:0}
.pick-g{font-size:12px;color:var(--muted);padding:8px 6px 2px;font-weight:700}
.pick-empty{padding:10px}
.pick-foot{display:flex;gap:6px;align-items:center;justify-content:space-between;flex-wrap:wrap;border-top:1px solid var(--border);padding:6px 10px;font-size:12px;color:var(--muted);background:var(--surface-2)}
/* قواعد اعلان */
.nr-grp td{background:var(--surface-2);font-weight:700;font-size:13px}
.nr-ch{display:inline-flex;align-items:center;justify-content:center;min-width:26px;height:22px;border-radius:6px;font-size:11.5px;padding:0 6px;background:var(--gray-bg);color:var(--gray)}
.nr-ch.on{background:var(--green-bg);color:var(--green)}
.nr-ch.sms.on{background:var(--purple-bg);color:var(--purple)}
.var-chips{display:flex;flex-wrap:wrap;gap:4px;margin-top:6px}
.var-chips code{cursor:pointer;background:var(--primary-50);color:var(--primary);border-radius:6px;padding:1px 6px;font-size:12px;direction:ltr}
.sms-meta{font-size:12px;color:var(--muted);margin-top:4px}
.defect-list li{align-items:flex-start}
.defect-steps{display:flex;gap:4px;margin-top:6px;flex-wrap:wrap}
.defect-steps span{font-size:11px;padding:1px 8px;border-radius:20px;background:var(--gray-bg);color:var(--muted)}
.defect-steps span.on{background:var(--green-bg);color:var(--green)}
.defect-steps span.cur{background:var(--blue-bg);color:var(--blue);font-weight:700}
/* انتخاب پوسته (پروفایل) */
.th-pick{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin-bottom:8px}
.th-opt{display:flex;flex-direction:column;gap:8px;border:1.5px solid var(--border-2);border-radius:12px;padding:10px;cursor:pointer;transition:border-color .15s,box-shadow .15s}
.th-opt input{position:absolute;opacity:0;pointer-events:none}
.th-opt:has(input:checked){border-color:var(--primary);box-shadow:0 0 0 3px var(--primary-50)}
.th-prev{position:relative;display:block;height:92px;border-radius:9px;overflow:hidden}
.th-prev i{position:absolute;display:block;border-radius:4px}
.th-prev .th-sb{top:0;right:0;bottom:0;width:22%;border-radius:0}
.th-prev .th-tb{top:8px;right:26%;left:6px;height:10px}
.th-prev .th-c1,.th-prev .th-c2,.th-prev .th-c3{top:26px;height:28px;width:21%}
.th-prev .th-c1{right:26%}.th-prev .th-c2{right:50%}.th-prev .th-c3{right:74%;left:6px;width:auto}
.th-classic .th-prev{background:#f2f5f9}.th-classic .th-sb{background:#0d1b2e}.th-classic .th-tb{background:#fff;box-shadow:0 0 0 1px #e2e8f0}
.th-classic .th-c1,.th-classic .th-c2,.th-classic .th-c3{background:#fff;box-shadow:0 0 0 1px #e2e8f0;border-top:2px solid #0e5a8a}
.th-neon .th-prev{background:radial-gradient(120px 60px at 90% 0,rgba(34,211,238,.35),transparent 70%),radial-gradient(110px 70px at 0 100%,rgba(124,58,237,.4),transparent 70%),#070b14}
.th-neon .th-sb{background:rgba(4,8,17,.9);box-shadow:inset 1px 0 0 rgba(34,211,238,.35)}
.th-neon .th-tb{background:rgba(13,20,36,.9);box-shadow:0 0 0 1px rgba(34,211,238,.25)}
.th-neon .th-c1,.th-neon .th-c2,.th-neon .th-c3{background:rgba(13,20,36,.85);box-shadow:0 0 0 1px rgba(148,163,184,.2),0 -1px 0 0 #22d3ee,0 0 12px -4px rgba(34,211,238,.9)}
.th-txt{display:flex;flex-direction:column;gap:2px}.th-txt small{color:var(--muted);font-size:12px;line-height:1.6}
@media (max-width:560px){.th-pick{grid-template-columns:1fr}}

/* ---------- حذف تکی و گروهی (۱٫۹٫۰) ---------- */
.pg-table th.pg-c,.pg-table td.pg-c{width:62px;white-space:nowrap;text-align:center;padding-inline:8px}
.pg-c input{width:16px;height:16px;vertical-align:middle;cursor:pointer;accent-color:var(--red,#dc2626)}
.pg-del{display:inline-flex;align-items:center;justify-content:center;width:26px;height:26px;margin-inline-start:6px;border:0;border-radius:7px;background:transparent;color:var(--muted);cursor:pointer;vertical-align:middle;opacity:.55;transition:.15s}
.pg-table tr:hover .pg-del{opacity:1}
.pg-del:hover{background:rgba(220,38,38,.12);color:#dc2626;opacity:1}
.pg-table tr.pg-sel>td{background:rgba(220,38,38,.06)}
.pg-bar{position:fixed;z-index:60;bottom:18px;left:50%;transform:translateX(-50%);display:flex;align-items:center;gap:10px;flex-wrap:wrap;max-width:calc(100vw - 32px);padding:10px 14px;border-radius:14px;background:var(--card,#fff);border:1px solid var(--border,#e2e8f0);box-shadow:0 12px 34px rgba(15,23,42,.22);font-size:13.5px}
.pg-bar[hidden]{display:none}
.pg-bar .pg-n b{color:#dc2626;font-size:15px}
.pg-bar .pg-sp{flex:1 1 0;min-width:4px}
.pg-bar .btn svg{vertical-align:-3px}
#mPurge .pg-count{margin:0 0 10px}
.pg-reset{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:8px}
.pg-r{display:flex;align-items:center;gap:10px;padding:10px 12px;border:1px solid var(--border,#e2e8f0);border-radius:10px;cursor:pointer}
.pg-r span{flex:1}
.pg-r b{font-size:13px;color:var(--muted)}
.pg-r:has(input:checked){border-color:#dc2626;background:rgba(220,38,38,.06)}
@media (max-width:640px){.pg-bar{bottom:10px;width:calc(100vw - 20px)}.pg-bar .pg-sp{display:none}.pg-del{display:none}.pg-table th.pg-c,.pg-table td.pg-c{width:34px}}
@media print{.pg-c,.pg-bar{display:none!important}}
