@import url('https://fonts.googleapis.com/css2?family=Assistant:wght@400;500;600;700;800&display=swap');
:root{
  --bg:#0d1117; --surface:#161b22; --surface2:#21262d; --border:#30363d;
  --text:#e6edf3; --text-dim:#9aa7b5; --card-shadow:0 2px 12px rgba(0,0,0,.4);
  --green:#16a34a; --green-soft:#16a34a22;
  --red:#ef4444; --orange:#ea580c; --orange-soft:#ea580c22;
  --grey:#6b7280; --blue:#2563eb; --yellow:#ca8a04;
  --pp-accent-bg:#2563eb24; --pp-accent-tx:#93c5fd;
  --svc-bg:#ea580c1f; --svc-bd:#ea580c66; --svc-tx:#fdba74;
  --rev-bg:#ca8a041f; --rev-bd:#ca8a0466; --rev-tx:#fcd34d;
  --pp-hover:#ffffff0a;
  --legend-bg:#0d1117dd;
  --text-faint:#6e7681; --card-shadow-hover:0 6px 22px rgba(0,0,0,.55);
  --tint-blue:#2563eb26; --tint-green:#16a34a26; --tint-red:#ef44441f; --tint-orange:#ea580c26;
  --fault-plate:#2e181c; --fault-line:#7f2f34; --fault-fg:#f87171;
  --pop-bg:#21262d; --pop-bd:#3d444d; --pop-shadow:0 18px 44px -12px rgba(0,0,0,.72),0 4px 14px rgba(0,0,0,.45);
  --fs-micro:.8125rem; --fs-small:.875rem; --fs-label:.9375rem; --fs-body:1rem; --fs-lead:1.125rem;
  --fs-h3:1.375rem; --fs-h2:1.75rem; --fs-h1:2.25rem; --lh-body:1.5; --lh-tight:1.25;
}
body.light{
  --bg:#f6f7f9; --surface:#ffffff; --surface2:#eef1f5; --border:#e3e6ea; --blue:#005eb8; --red:#dc2626;
  --text:#0f172a; --text-dim:#475569; --text-faint:#64748b;
  --card-shadow:0 1px 2px rgba(16,24,40,.04),0 1px 3px rgba(16,24,40,.06); --card-shadow-hover:0 6px 18px rgba(16,24,40,.10);
  --tint-blue:#eff4ff; --tint-green:#ecfdf3; --tint-red:#fef2f2; --tint-orange:#fff7ed;
  --green-soft:#16a34a18; --orange-soft:#ea580c18; --legend-bg:#ffffffe6;
  --pp-accent-bg:#2563eb12; --pp-accent-tx:#1d4ed8;
  --svc-bg:#fff7ed; --svc-bd:#fdba74; --svc-tx:#9a3412;
  --rev-bg:#fffbeb; --rev-bd:#fcd34d; --rev-tx:#92400e;
  --pp-hover:#0f172a08;
  --fault-plate:#fef2f2; --fault-line:#dc262633; --fault-fg:#dc2626;
  --pop-bg:#ffffff; --pop-bd:#d5dae1; --pop-shadow:0 16px 40px -12px rgba(16,24,40,.22),0 2px 8px rgba(16,24,40,.08);
}
body.light .b-green{color:#15803d} body.light .b-orange{color:#c2410c} body.light .b-red{color:#b91c1c} body.light .b-hoara{color:#b45309}
body.light .b-grey{color:#5b6470} body.light .b-overdue{color:#a16207} body.light .b-plan{color:#6d28d9} body.light .b-blue{color:#1d4ed8}
body.light .fault-chip{background:#dc26260f; color:#b91c1c; border-color:#dc262633}
body.light .leg-dot{border-color:#1f2933}
*{box-sizing:border-box;margin:0;padding:0}
html,body{height:100%}
body{font-family:'Assistant','Heebo',system-ui,sans-serif; background:var(--bg); color:var(--text); line-height:1.5; -webkit-font-smoothing:antialiased; overflow:hidden}

/* ACCESS */
#accessScreen{position:fixed; inset:0; z-index:5000; background:var(--bg); display:flex; flex-direction:column; align-items:center; justify-content:center; gap:1rem; text-align:center; padding:1.5rem}
#accessScreen h1{font-size:1.8rem; font-weight:700}
#accessScreen .sub{color:var(--text-dim); margin-bottom:.5rem}
#accessInput{background:var(--surface2); border:2px solid var(--border); color:var(--text); border-radius:.7rem; padding:.85rem 1.1rem; font-size:1.1rem; font-family:inherit; text-align:center; width:min(320px,90vw); outline:none}
#accessInput:focus{border-color:var(--blue)}
#opOverlay{position:fixed; inset:0; z-index:6000; background:rgba(0,0,0,.6); display:none; align-items:center; justify-content:center; padding:1.2rem}
#opOverlay.show{display:flex}
#opOverlay .op-card{background:var(--surface); border:1px solid var(--border); border-radius:1rem; padding:1.4rem 1.2rem; width:min(360px,92vw); text-align:center; box-shadow:0 20px 60px rgba(0,0,0,.45)}
#opOverlay h2{font-size:1.3rem; font-weight:700; margin-bottom:.25rem}
#opOverlay .op-sub{color:var(--text-dim); margin-bottom:1rem; font-size:1rem}
#opOverlay .op-btn{display:block; width:100%; background:var(--surface2); border:2px solid var(--border); color:var(--text); border-radius:.8rem; padding:1rem; font-size:1.15rem; font-weight:700; font-family:inherit; cursor:pointer; margin-bottom:.6rem}
#opOverlay .op-btn:hover{border-color:var(--blue)}
#opOverlay .op-btn.cur{border-color:var(--green)}
#opOverlay .op-close{margin-top:.3rem; background:none; border:none; color:var(--text-dim); font-family:inherit; font-size:1rem; cursor:pointer}
#accessBtn{background:var(--blue); color:#fff; border:none; border-radius:.7rem; padding:.8rem 2rem; font-size:1.1rem; font-weight:700; cursor:pointer; font-family:inherit}

#mainApp{display:none; flex-direction:column; height:100vh; height:100dvh; overflow-x:hidden}
header{display:grid; grid-template-columns:1fr auto 1fr; align-items:center; gap:.8rem; padding:.55rem 1rem; background:var(--surface); border-bottom:1px solid var(--border); position:relative; z-index:1200}
.brand{cursor:pointer; font-size:1.05rem; font-weight:700; display:flex; align-items:center; gap:.5rem; cursor:pointer; white-space:nowrap}
.brand span{color:var(--blue)}
.live-dot{width:9px; height:9px; border-radius:50%; background:var(--green); animation:pulse 2s infinite}
@keyframes pulse{0%{box-shadow:0 0 0 0 #16a34a99}70%{box-shadow:0 0 0 7px #16a34a00}100%{box-shadow:0 0 0 0 #16a34a00}}
#clock{text-align:center; line-height:1.15; flex:1}
.clock-time{font-size:1.5rem; font-weight:700; letter-spacing:.5px; font-variant-numeric:tabular-nums}
.clock-date{font-size:.875rem; color:var(--text-dim)}
.header-right{display:flex; gap:.4rem; align-items:center}
.icon-btn{background:var(--surface); border:1px solid var(--border); color:var(--text); border-radius:12px; padding:.45rem .65rem; font-size:1rem; cursor:pointer; font-family:inherit; min-height:40px; box-shadow:var(--card-shadow); transition:border-color .12s; display:inline-flex; align-items:center; gap:.4rem}
.icon-btn:hover{border-color:var(--blue)}
#setBtn.on{background:var(--tint-blue); border-color:var(--blue); color:var(--blue)}
.tasks-btn{background:var(--blue); color:#fff; border:none; position:relative}
.cnt{position:absolute; top:-7px; inset-inline-start:-7px; background:var(--orange); color:#fff; font-size:.8125rem; font-weight:700; border-radius:50%; min-width:17px; height:17px; display:flex; align-items:center; justify-content:center; padding:0 3px}
.op-chip{cursor:pointer}
.cache-tag{font-size:.8125rem; color:var(--text-dim); align-self:center; display:none}
.cache-tag.show{display:inline}

/* PAGES */
.page{display:none; flex:1; min-height:0; flex-direction:column}
.page.active{display:flex}

/* KPI */
.kpi-bar{display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:12px; padding:14px 16px; flex-shrink:0}
.kpi{min-width:0; background:var(--surface); border:1px solid var(--border); border-radius:12px; padding:14px 15px; display:flex; align-items:center; justify-content:space-between; gap:8px; cursor:pointer; box-shadow:var(--card-shadow); transition:transform .12s,box-shadow .12s; text-align:right}
.kpi:hover{transform:translateY(-2px); box-shadow:var(--card-shadow-hover)}
.kpi.active{box-shadow:0 0 0 2px var(--kpi-accent), var(--card-shadow-hover)}
.kpi-num{font-size:1.9rem; font-weight:700; line-height:1; color:var(--text); font-variant-numeric:tabular-nums}
.kpi-label{font-size:.9375rem; color:var(--text-dim); margin-top:3px; font-weight:600}
.kpi-sub{font-size:.875rem; color:var(--text-faint); margin-top:4px; font-weight:600; white-space:nowrap}
.kmed{width:46px; height:46px; border-radius:13px; display:flex; align-items:center; justify-content:center; flex:none}
.kmed svg{width:24px; height:24px}
.kpi-total{--kpi-accent:var(--blue)} .kpi-total .kmed{background:var(--tint-blue); color:var(--blue)}
.kpi-ready{--kpi-accent:var(--green)} .kpi-ready .kmed{background:var(--tint-green); color:var(--green)}
.kpi-fault{--kpi-accent:var(--red)} .kpi-fault .kmed{background:var(--tint-red); color:var(--red)}
.kpi-fault .kpi-sub{color:var(--red)}
.kpi-pending{--kpi-accent:var(--orange)} .kpi-pending .kmed{background:var(--tint-orange); color:var(--orange)}

.toolbar{display:flex; gap:.5rem; padding:0 1rem .6rem; flex-wrap:wrap; align-items:center; flex-shrink:0}
.filter-sel,.search-box,.inp{background:var(--surface); border:1px solid var(--border); color:var(--text); border-radius:12px; padding:.5rem .8rem; font-size:1rem; font-family:inherit; outline:none; min-height:40px; box-shadow:var(--card-shadow); transition:border-color .12s, box-shadow .12s}
.search-box{flex:1; min-width:140px}
.filter-sel:focus,.search-box:focus,.inp:focus{border-color:var(--blue); box-shadow:0 0 0 3px var(--tint-blue)}
button.filter-sel{cursor:pointer; display:inline-flex; align-items:center; gap:.45rem}
button.filter-sel:hover{border-color:var(--blue); color:var(--blue)}
button.filter-sel:hover .ti-ic{color:var(--blue)}
.ti-ic{width:17px; height:17px; color:var(--text-faint); flex:none}
.search-wrap{position:relative; flex:1; min-width:220px; display:flex}
.search-wrap .search-box{flex:1; padding-inline-start:2.3rem}
.search-wrap .ti-ic{position:absolute; inset-inline-start:.75rem; top:50%; transform:translateY(-50%); pointer-events:none}
.view-toggle{display:flex; background:var(--surface2); border:1px solid var(--border); border-radius:.55rem; overflow:hidden; margin-inline-start:auto}
.vt-btn{background:transparent; border:none; color:var(--text-dim); padding:.5rem .9rem; font-size:1rem; font-weight:700; cursor:pointer; font-family:inherit}
.vt-btn.active{background:var(--blue); color:#fff}

#layout{flex:1; display:grid; grid-template-columns:minmax(340px,1fr) 1.2fr; gap:.7rem; padding:0 1rem 1rem; min-height:0}
#listPane{overflow-y:auto; min-height:0; min-width:0}
#mapPane{position:relative; border-radius:.8rem; overflow:hidden; border:1px solid var(--border); min-height:0}
#mapEl{position:absolute; inset:0}
body.view-map #listPane{display:none}
body.view-list #mapPane{display:none}

.obj-list{display:flex; flex-direction:column; gap:.55rem; min-width:0}
.obj-card{background:var(--surface); border:1px solid var(--border); border-radius:12px; padding:.9rem 1rem; cursor:pointer; transition:transform .12s,box-shadow .12s,border-color .15s; border-inline-start:4px solid var(--grey); box-shadow:var(--card-shadow)}
.obj-card:hover{border-color:var(--blue); transform:translateY(-1px); box-shadow:var(--card-shadow-hover)}
.oc-ready{border-inline-start-color:var(--green)} .oc-fault{border-inline-start-color:var(--red)} .oc-pending{border-inline-start-color:var(--grey)}
.oc-top{display:flex; justify-content:space-between; align-items:flex-start; gap:.5rem; min-width:0}
.oc-top>*:not(.oc-badges){min-width:0}
.oc-name,.oc-meta{overflow-wrap:anywhere}
.oc-name{font-size:1.25rem; font-weight:700; line-height:1.25}
.oc-meta{font-size:.9375rem; color:var(--text-dim); margin-top:.15rem; line-height:1.4}
.oc-badges{display:flex; flex-direction:column; gap:.3rem; align-items:flex-end; flex-shrink:0}
.badge{font-size:.875rem; font-weight:600; padding:.28rem .65rem; border-radius:999px; white-space:nowrap; display:inline-flex; align-items:center; gap:.3rem}
.badge.lg{font-size:1rem; padding:.4rem .8rem; border-radius:999px}
.brand-group{display:flex; align-items:center; gap:.5rem; justify-self:start}
.hdr-sep{width:1px; height:24px; background:var(--border); margin-inline:.3rem; flex:none}
.header-right{justify-self:end}
.set-pop{display:none; position:absolute; top:calc(100% + 10px); inset-inline-end:0; z-index:2000; background:var(--pop-bg); border:1px solid var(--pop-bd); border-radius:14px; box-shadow:var(--pop-shadow); padding:.15rem .9rem .75rem; min-width:264px; transform-origin:top left}
.set-pop::before{content:""; position:absolute; top:-6px; inset-inline-end:15px; width:11px; height:11px; background:var(--pop-bg); border-top:1px solid var(--pop-bd); border-left:1px solid var(--pop-bd); border-radius:3px 0 0 0; transform:rotate(45deg)}
.set-pop.show{display:block; animation:setPopIn .15s cubic-bezier(.2,.8,.3,1)}
@keyframes setPopIn{from{opacity:0; transform:translateY(-7px) scale(.97)} to{opacity:1; transform:none}}
.set-head{display:flex; align-items:center; gap:.4rem; padding:.6rem 0 .5rem; border-bottom:1px solid var(--border); color:var(--text-dim); font-size:.8125rem; font-weight:700}
.set-head svg{width:15px; height:15px; flex:none}
.set-row{display:flex; align-items:center; justify-content:space-between; gap:.7rem; padding:.45rem 0; font-size:.9375rem}
.set-row+.set-row{border-top:1px solid var(--border)}
.b-green{background:var(--green-soft); color:#4ade80} .b-orange{background:var(--orange-soft); color:#fb923c} .b-red{background:#dc262622; color:#f87171}
.b-grey{background:#6b728022; color:var(--text-dim)} .b-overdue{background:#ca8a0422; color:#fbbf24}
.b-review{background:var(--rev-bg); color:var(--rev-tx); border:1px solid var(--rev-bd)}
.b-svc{background:var(--svc-bg); color:var(--svc-tx); border:1px solid var(--svc-bd)}
.b-blue{background:#2563eb22; color:#60a5fa} .b-manual{background:#7c3aed22; color:#a78bfa} .b-hoara{background:#f59e0b22; color:#fbbf24}
.oc-faults{margin-top:.5rem; display:flex; flex-wrap:wrap; gap:.3rem}
.fault-chip{font-size:.875rem; background:#dc262618; color:#f87171; padding:.18rem .5rem; border-radius:.4rem; border:1px solid #dc262633}
.fault-ic{display:inline-flex; align-items:center; justify-content:center; width:58px; height:58px; border-radius:12px; background:var(--fault-plate); border:1px solid var(--fault-line)}
.fic{width:40px; height:40px; color:var(--fault-fg)}
.tri-warn{width:1.05em; height:1.05em; color:var(--fault-fg); vertical-align:-.16em; flex:none}
.badge .tri-warn{color:currentColor}
.mi{width:15px; height:15px; color:#94a3b8; vertical-align:-2px; margin-inline-end:.4rem; flex:none}
.bi{width:1em; height:1em; flex:none}
.mrow{display:flex; align-items:center; line-height:1.55}
.grp-head{display:flex; justify-content:space-between; align-items:center; cursor:pointer; padding:.65rem .95rem; margin:.6rem 0; background:var(--surface); border:1px solid var(--border); border-radius:12px; box-shadow:var(--card-shadow); user-select:none}
.grp-head:hover{border-color:var(--blue)}
.grp-title{font-weight:700; font-size:1.05rem; display:inline-flex; align-items:center; gap:.45rem}
.grp-cnt{background:var(--tint-blue); color:var(--blue); font-size:.9375rem; font-weight:700; border-radius:999px; padding:.1rem .6rem}
.grp-arr{opacity:.55; display:inline-flex; align-items:center}
.grp-arr svg{width:17px; height:17px; transition:transform .2s}
.grp-arr.coll svg{transform:rotate(-90deg)}
.empty{text-align:center; color:var(--text-dim); padding:2.5rem 1rem}
.empty .emo{margin-bottom:.5rem; color:var(--text-faint)}
.empty .emo svg{width:44px; height:44px}

/* ===== סינון (фильтр/сводка по паспорту) ===== */
.sn-filters{display:flex; gap:.5rem; padding:.2rem 1.1rem .6rem; flex-wrap:wrap; align-items:center; flex-shrink:0}
.sn-chip{background:var(--surface2); border:1px solid var(--border); color:var(--text-dim); border-radius:.55rem; padding:.5rem .8rem; font-size:1rem; font-weight:700; cursor:pointer; font-family:inherit; white-space:nowrap}
.sn-chip.on{background:var(--blue); border-color:var(--blue); color:#fff}
.sn-chip.on-rev{background:var(--rev-bg); border-color:var(--rev-bd); color:var(--rev-tx)}
.sn-chip.on-svc{background:var(--svc-bg); border-color:var(--svc-bd); color:var(--svc-tx)}
.sn-reset{background:transparent; border:1px solid var(--border); color:var(--text-dim); border-radius:.55rem; padding:.5rem .8rem; font-size:1rem; font-weight:700; cursor:pointer; font-family:inherit}
.sn-export{background:var(--green); border:none; color:#fff; border-radius:.55rem; padding:.5rem .9rem; font-size:1rem; font-weight:700; cursor:pointer; font-family:inherit; margin-inline-start:auto}
.sn-summary{padding:0 1.1rem .55rem; font-size:1rem; font-weight:700; color:var(--text); flex-shrink:0}
.sn-summary .muted{font-weight:500; color:var(--text-dim)}
.sn-pivot{padding:0 1.1rem; flex-shrink:0; display:flex; flex-direction:column; gap:.35rem}
.sn-pivot:not(:empty){padding-bottom:.55rem}
.pv-row{display:flex; flex-wrap:wrap; gap:.4rem; align-items:center}
.sn-pivot .pv-title{font-size:.9375rem; font-weight:700; color:var(--text-dim); margin-inline-end:.2rem}
.sn-pv{background:var(--surface2); border:1px solid var(--border); color:var(--text); border-radius:1rem; padding:.28rem .35rem .28rem .75rem; font-size:.9375rem; font-weight:700; cursor:pointer; font-family:inherit; white-space:nowrap; display:inline-flex; align-items:center; gap:.45rem}
.sn-pv:hover{border-color:var(--blue)}
.sn-pv.on{background:var(--blue); border-color:var(--blue); color:#fff}
.sn-pv .pv-n{background:var(--bg); color:var(--text-dim); border-radius:1rem; min-width:1.5rem; text-align:center; padding:.08rem .45rem; font-size:.9375rem; font-weight:700}
.sn-pv.on .pv-n{background:rgba(255,255,255,.28); color:#fff}
.sn-pv.empty-val{color:var(--text-dim); font-style:italic}
.sn-pv.empty-val .pv-n{font-style:normal}
.pv-hint{font-size:.875rem; color:var(--text-dim); font-style:italic; align-self:center}
.sn-fields{margin-top:.5rem; display:flex; flex-wrap:wrap; gap:.35rem}
.sn-f{font-size:.875rem; background:var(--surface2); border:1px solid var(--border); border-radius:.4rem; padding:.18rem .5rem; color:var(--text-dim)}
.sn-f b{color:var(--text); font-weight:700}
#pageSinun .fs-scroll{padding-top:.2rem}
.sn-seg{display:inline-flex; border:1px solid var(--border); border-radius:.55rem; overflow:hidden}
.sn-seg button{background:var(--surface2); border:none; border-inline-start:1px solid var(--border); color:var(--text-dim); padding:.5rem .8rem; font-size:.9375rem; font-weight:700; cursor:pointer; font-family:inherit; white-space:nowrap}
.sn-seg button:first-child{border-inline-start:none}
.sn-seg button.on{background:var(--blue); color:#fff}
.sn-seg button.on-red{background:var(--red); color:#fff}
.sn-seg button.on-green{background:var(--green); color:#fff}
.sn-seg button.on-grey{background:var(--grey); color:#fff}
.sn-bar{display:flex; gap:.5rem; padding:.2rem 1.1rem .4rem; flex-wrap:wrap; align-items:center; flex-shrink:0}
.sn-search-res{display:none; margin:.1rem 1.1rem .35rem; flex-shrink:0; background:var(--surface2); border:1px solid var(--border); border-radius:.55rem; overflow:hidden; overflow-y:auto; max-height:min(46vh,320px)}
.sn-sr-item{display:flex; justify-content:space-between; align-items:center; gap:.6rem; width:100%; text-align:start; background:transparent; border:none; border-bottom:1px solid var(--border); color:var(--text); padding:.55rem .8rem; font-family:inherit; font-size:1rem; cursor:pointer}
.sn-sr-item:last-child{border-bottom:none}
.sn-sr-item:hover,.sn-sr-item.on{background:var(--blue); color:#fff}
.sn-sr-lbl{font-weight:700}
.sn-sr-grp{color:var(--text-dim); font-size:.9375rem; white-space:nowrap}
.sn-sr-item.on .sn-sr-grp,.sn-sr-item:hover .sn-sr-grp{color:rgba(255,255,255,.85)}
.sn-sr-empty{padding:.55rem .8rem; color:var(--text-dim); font-size:1rem}
.sn-lbl{font-size:.9375rem; font-weight:700; color:var(--text-dim); margin-inline-start:.25rem}
.sn-chip.on-red{background:var(--red); border-color:var(--red); color:#fff}
.sn-chip.on-green{background:var(--green); border-color:var(--green); color:#fff}
.sn-chip.on-grey{background:var(--grey); border-color:var(--grey); color:#fff}
.sn-gear{background:transparent; border:1px solid var(--border); color:var(--text-dim); border-radius:.55rem; padding:.5rem .8rem; font-size:1rem; font-weight:700; cursor:pointer; font-family:inherit}
.sn-gear.on{background:var(--blue); border-color:var(--blue); color:#fff}
.sn-settings{margin:0 1.1rem .6rem; padding:.7rem .9rem; background:var(--surface2); border:1px solid var(--border); border-radius:.6rem; display:flex; flex-wrap:wrap; gap:.8rem 1.3rem; align-items:flex-start; max-height:55vh; overflow-y:auto}
.sn-set-grp{display:flex; flex-direction:column; gap:.3rem; min-width:150px}
.sn-set-title{font-size:.9375rem; font-weight:700; color:var(--text-dim); margin-bottom:.15rem}
.sn-set-item{display:flex; align-items:center; gap:.4rem; font-size:.9375rem; color:var(--text); cursor:pointer}
.sn-set-item input{width:15px; height:15px; cursor:pointer}
.sn-set-all{align-self:center; background:transparent; border:1px solid var(--border); color:var(--text-dim); border-radius:.5rem; padding:.4rem .8rem; font-size:.9375rem; font-weight:700; cursor:pointer; font-family:inherit}
.sn-ord-wrap{display:inline-flex; gap:2px; margin-inline-end:.3rem; vertical-align:middle}
.sn-ord{background:transparent; border:1px solid var(--border); color:var(--text-dim); border-radius:.25rem; width:20px; height:17px; font-size:.8125rem; line-height:1; cursor:pointer; padding:0; font-family:inherit}
.sn-ord:hover:not(:disabled){border-color:var(--blue); color:var(--blue)}
.sn-ord:disabled{opacity:.28; cursor:default}
.sn-ord svg{width:12px; height:12px; display:block; margin:0 auto}
.sn-ord.up svg{transform:rotate(180deg)}
.sn-pill{font-size:.875rem; font-weight:700; border-radius:.4rem; padding:.18rem .5rem; white-space:nowrap}
.sn-pill.p-red{background:var(--red); color:#fff}
.sn-pill.p-green{background:var(--green); color:#fff}
.sn-pill.p-grey{background:var(--grey); color:#fff}

.leaflet-top,.leaflet-bottom{z-index:900}
.map-legend{position:absolute; bottom:10px; inset-inline-start:10px; z-index:500; background:var(--legend-bg); border:1px solid var(--border); border-radius:.6rem; padding:.5rem .65rem; font-size:.875rem; display:flex; flex-direction:column; gap:.3rem}
.leg-row{display:flex; align-items:center; gap:.4rem}
.leg-dot{width:11px; height:11px; border-radius:50%; border:1.5px solid #fff}
#mapError{display:none; position:absolute; inset:0; z-index:600; background:var(--surface2); flex-direction:column; align-items:center; justify-content:center; gap:.7rem; text-align:center; padding:1rem}
#mapError button{background:var(--surface); border:2px solid var(--border); color:var(--text); border-radius:.6rem; padding:.5rem 1.2rem; font-weight:700; cursor:pointer; font-family:inherit}
.leaflet-popup-content{font-family:'Heebo',sans-serif; direction:rtl; text-align:right}
.pop-nav{display:flex; gap:.4rem; margin-top:.5rem}
.pop-nav a{flex:1; text-align:center; text-decoration:none; background:#2563eb; color:#fff; border-radius:.45rem; padding:.35rem; font-size:.9375rem; font-weight:700}
.pop-nav a.waze{background:#16a34a}

/* ── FULL-SCREEN PAGES (miklat / tasks) ── */
.fs-scroll{flex:1; overflow-y:auto; padding:1rem; min-height:0}
.fs-head{display:flex; align-items:center; gap:.7rem; padding:.7rem 1rem; background:var(--surface); border-bottom:1px solid var(--border); flex-shrink:0}
.back-btn{background:var(--surface2); border:1px solid var(--border); color:var(--text); border-radius:.55rem; padding:.5rem .8rem; font-weight:700; cursor:pointer; font-family:inherit}
.fs-title{font-size:1.25rem; font-weight:700}
.fs-sub{font-size:.9375rem; color:var(--text-dim)}
.sect{background:var(--surface); border:1px solid var(--border); border-radius:.9rem; padding:1rem 1.1rem; margin-bottom:.9rem; max-width:780px}
.sect h3{font-size:1rem; font-weight:700; margin-bottom:.7rem; display:flex; align-items:center; gap:.4rem}
.kv{display:grid; grid-template-columns:135px 1fr; gap:.8rem; padding:.45rem 0; border-bottom:1px solid var(--border); font-size:1rem; align-items:baseline}
.kv .k{color:var(--text-dim)}
.kv span:last-child{text-align:right; word-break:break-word}
.kv:last-child{border-bottom:none}
/* ── תעודת זהות (v160): сетка карточек вместо текстовых колонок ──
   Каждая тема — отдельная карточка: поверхность + рамка + скругление,
   шапка во всю ширину с акцентной планкой. Grid → верхние края выровнены,
   длинная группа не рвётся между колонками, узкий экран сваливается в одну колонку. */
.pp-cols{--pp-pad:.85rem; display:grid; grid-template-columns:repeat(auto-fill,minmax(min(100%,320px),1fr)); gap:1rem; align-items:start}
.pp-group{margin:0; padding:0 var(--pp-pad,.85rem) .8rem; background:var(--surface2); border:1px solid var(--border); border-radius:.9rem; overflow:hidden}
.pp-group-title{display:flex; align-items:center; gap:.45rem; margin:0 calc(-1 * var(--pp-pad,.85rem)) .5rem; padding:.62rem var(--pp-pad,.85rem) .58rem; background:var(--tint-blue); border-bottom:1px solid var(--border); border-inline-start:3px solid var(--blue); font-size:1.02rem; font-weight:700; color:var(--text); letter-spacing:.01em; line-height:1.3}
.pp-cols .pp-group>.field:last-child{margin-bottom:.15rem}
.pp-cols .kv{grid-template-columns:150px 1fr; gap:.7rem; padding:.5rem .35rem; font-size:1rem; align-items:baseline; border-bottom:1px solid var(--border); border-radius:.4rem; transition:background .12s}
.pp-cols .kv:hover{background:var(--pp-hover)}
.pp-cols .kv:last-child{border-bottom:none}
.pp-cols .kv .k{color:var(--text-dim); font-weight:500}
.pp-cols .kv>span:last-child{color:var(--text); font-weight:500; text-align:start; word-break:break-word}
.pp-cols .kv .muted{font-size:.9375rem; font-weight:400; opacity:.7}
.mono{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace; font-size:1rem; letter-spacing:.01em}
.pp-nav-line{display:flex; gap:1.1rem; align-items:center; flex-wrap:wrap; margin-top:1rem; padding-top:.7rem; border-top:1px solid var(--border); font-size:.9375rem; color:var(--text-dim)}
.pp-unit{display:grid; grid-template-columns:54px 1fr 1fr 34px; gap:.45rem; align-items:center; margin-bottom:.45rem}
.pp-unit-n{font-size:.9375rem; color:var(--text-dim); font-weight:600}
.pp-unit-del{background:none; border:1px solid var(--border); color:var(--text-dim); border-radius:.5rem; cursor:pointer; padding:.3rem; font-size:.9375rem}
.pp-unit-del:hover{color:var(--red); border-color:var(--red)}
.pp-unit .inp{width:100%; min-width:0}   /* инпуты заполняют ячейку и сжимаются — иначе מספר רישום вылезал за карточку */
.pp-accent{background:var(--pp-accent-bg); border-radius:.5rem; padding:.4rem .55rem; margin:.15rem 0}
.pp-accent .k, .pp-accent label{color:var(--pp-accent-tx); font-weight:700}
/* ── редактор схемы паспорта (🏷️): имя категории + добавление категорий/полей ── */
.pp-cat-name{background:var(--pp-accent-bg); border:1px dashed var(--pp-accent-tx); border-radius:.6rem; padding:.5rem .6rem .55rem; margin-bottom:.75rem}
.pp-cat-name label{display:flex; align-items:center; gap:.35rem; font-size:.9375rem; color:var(--pp-accent-tx); font-weight:700; margin-bottom:.35rem}
.pp-cat-name input.inp{font-weight:700; background:var(--surface)}
.pp-cf{border:1px solid var(--border); border-radius:.6rem; padding:.55rem .6rem .35rem; margin-bottom:.6rem; background:var(--surface2)}
.pp-cf-head{display:flex; align-items:center; justify-content:space-between; gap:.5rem; margin-bottom:.4rem}
.pp-cf-head .tag{font-size:.875rem; font-weight:700; color:var(--pp-accent-tx); background:var(--pp-accent-bg); border-radius:1rem; padding:.12rem .55rem}
.pp-cf-del{background:none; border:none; cursor:pointer; font-size:1rem; line-height:1; opacity:.6; padding:.1rem}
.pp-cf-del:hover{opacity:1}
.pp-cf-del.pp-off{opacity:1; color:var(--muted)}
.pp-tsel{flex:none; width:6.5rem; padding-inline:.4rem}
.field.pp-off, .pp-group.pp-off{opacity:.6}
#netList .switch{padding-block:.35rem}
#netQ{margin-bottom:.2rem}
.pp-cf-row{display:flex; gap:.5rem; flex-wrap:wrap}
.pp-cf-row .field{flex:1 1 7rem; margin-bottom:.6rem}
.pp-add{margin-top:.45rem}
.pp-add .btn{font-size:.9375rem; padding:.42rem .8rem}
.pp-add-cat{margin-top:1rem; padding-top:.85rem; border-top:1px dashed var(--border)}
.pp-badge{border-radius:.6rem; padding:.55rem .8rem; margin-bottom:.7rem; font-size:1rem; font-weight:600; display:flex; align-items:center; gap:.5rem; flex-wrap:wrap; line-height:1.35}
.pp-badge.svc{background:var(--svc-bg); border:1px solid var(--svc-bd); color:var(--svc-tx)}
.pp-badge.rev{background:var(--rev-bg); border:1px solid var(--rev-bd); color:var(--rev-tx)}
.pp-rev-ok{margin-inline-start:auto; background:var(--surface); border:1px solid var(--border); color:var(--text); border-radius:.45rem; padding:.28rem .6rem; font-size:.9375rem; cursor:pointer; font-weight:600}
.pp-rev-ok:hover{border-color:var(--green); color:var(--green)}
.pp-group.pp-hl{background:var(--rev-bg); border-color:var(--rev-bd)}
.pp-group.pp-hl .pp-group-title{background:transparent; color:var(--rev-tx); border-inline-start-color:var(--rev-bd); border-bottom-color:var(--rev-bd)}
.pp-hl-tag{font-size:.875rem; font-weight:700; color:var(--rev-tx); border:1px solid var(--rev-bd); border-radius:1rem; padding:.04rem .5rem; margin-inline-start:auto}
.kv .k{color:var(--text-dim)}
.sys-row{display:flex; align-items:center; gap:.75rem; padding:.6rem 0; border-bottom:1px solid var(--border)}
.sys-row:last-child{border-bottom:none}
.sys-row:last-child{border-bottom:none}
.sys-dot{width:13px; height:13px; border-radius:50%; flex-shrink:0}
.sys-tile{width:44px; height:44px; border-radius:12px; border:1px solid transparent; display:flex; align-items:center; justify-content:center; flex:none}
.sys-tile.t-fault{background:var(--fault-plate); border-color:var(--red); color:var(--fault-fg)}
.sys-tile.t-fixed{background:var(--tint-blue); border-color:var(--blue); color:var(--blue)}
.sys-tile.t-ok{background:var(--tint-green); border-color:var(--green); color:var(--green)}
.sys-tile.t-stale{background:var(--surface2); border-color:var(--border); color:var(--grey)}
.st-lab.t-fault{color:var(--fault-fg)} .st-lab.t-fixed{color:var(--blue)} .st-lab.t-ok{color:var(--green)} .st-lab.t-stale{color:var(--grey)}
.sys-tile svg{width:28px; height:28px}
.st-ic{width:1em; height:1em; vertical-align:-.14em; margin-inline-end:.35rem; flex:none}
.eic{width:1.05em; height:1.05em; vertical-align:-.16em; margin-inline-end:.35rem; flex:none}
.eic.tr{margin-inline-end:0; margin-inline-start:.35rem}
.eic.solo{margin:0}
.sdot{display:inline-block; width:.6em; height:.6em; border-radius:50%; margin-inline-end:.4rem; flex:none}
.sdot.d-red{background:var(--red)} .sdot.d-green{background:var(--green)} .sdot.d-grey{background:var(--grey)} .sdot.d-blue{background:var(--blue)} .sdot.d-orange{background:var(--orange)}
.st-lab{display:inline-flex; align-items:center}
.ah-ic{width:20px; height:20px; color:var(--blue); flex:none}
.sys-name{flex:1; font-size:1rem; font-weight:700}
.sys-state{font-size:.9375rem; color:var(--text-dim)}
.seg{display:flex; gap:.4rem; flex-wrap:wrap}
.seg button{background:var(--surface2); border:1px solid var(--border); color:var(--text); border-radius:.55rem; padding:.5rem .9rem; font-weight:700; cursor:pointer; font-family:inherit; font-size:1rem}
.seg button.on{background:var(--blue); border-color:var(--blue); color:#fff}
.seg button.on-green{background:var(--green); border-color:var(--green); color:#fff}
.seg button.on-orange{background:var(--orange); border-color:var(--orange); color:#fff}
.seg button.on-red{background:var(--red); border-color:var(--red); color:#fff}
.row-inline{display:flex; gap:.5rem; align-items:center; flex-wrap:wrap}
.switch{display:flex; align-items:center; gap:.6rem; padding:.5rem 0; justify-content:space-between}
.tgl{width:50px; height:28px; border-radius:99px; background:var(--surface2); border:1px solid var(--border); position:relative; cursor:pointer; flex-shrink:0; transition:background .15s}
.tgl.on{background:var(--green)}
.tgl::after{content:''; position:absolute; top:2px; inset-inline-end:2px; width:22px; height:22px; border-radius:50%; background:#fff; transition:transform .15s}
.tgl.on::after{transform:translateX(-22px)}
html[dir=rtl] .tgl.on::after{transform:translateX(22px)}
textarea.inp{width:100%; min-height:80px; resize:vertical; line-height:1.5}
.btn{background:var(--blue); color:#fff; border:none; border-radius:12px; padding:.55rem 1.1rem; font-weight:700; cursor:pointer; font-family:inherit; font-size:1rem; transition:filter .12s}
.btn:hover{filter:brightness(1.08)}
.btn.ghost{background:var(--surface2); color:var(--text); border:1px solid var(--border)}
.btn:hover{filter:brightness(1.08)}
.muted{color:var(--text-dim); font-size:.9375rem}
.task-card{background:var(--surface2); border:1px solid var(--border); border-radius:.7rem; padding:.7rem .8rem; margin-bottom:.55rem}
.hist-row{background:var(--surface2); border:1px solid var(--border); border-radius:.6rem; padding:.6rem .7rem; margin-bottom:.5rem}
.hist-top{display:flex; justify-content:space-between; gap:.6rem; flex-wrap:wrap; align-items:baseline}
.hist-tabs{display:flex; gap:.4rem; margin:0 0 .8rem}
.hist-tabs button{flex:1; padding:.6rem .5rem; border:1px solid var(--border); background:var(--surface2); color:var(--text-dim); border-radius:.6rem; font-weight:700; font-size:1rem; cursor:pointer}
.hist-tabs button.on{background:var(--accent,#2563eb); color:#fff; border-color:transparent}
.oc-actions{margin-top:.55rem; padding-top:.5rem; border-top:1px solid var(--border)}
.insp-assign{width:100%; font-size:.9375rem; padding:.4rem .5rem; color:#2563eb; font-weight:700; cursor:pointer}
.dash-toast{position:fixed; inset-inline:0; bottom:24px; margin-inline:auto; width:max-content; max-width:90vw; background:#16a34a; color:#fff; font-weight:700; padding:12px 20px; border-radius:12px; box-shadow:0 10px 30px rgba(0,0,0,.3); opacity:0; transform:translateY(10px); transition:.22s; z-index:9999; pointer-events:none}
.dash-toast.show{opacity:1; transform:translateY(0)}
.hist-wrap{max-width:1060px; margin-inline:auto}
.hist-wrap .sect{max-width:none}
.hist-list{display:grid; grid-template-columns:repeat(auto-fill,minmax(330px,1fr)); gap:.6rem}
@media(max-width:720px){ .hist-list{grid-template-columns:minmax(0,1fr)} }
.chip-on{border-color:var(--orange)!important; color:var(--orange)!important; font-weight:700}
.cycle-bar{display:inline-flex; flex-wrap:wrap; min-width:0; align-items:center; gap:.6rem; margin-inline-start:auto; padding:.3rem .7rem; background:var(--surface); border:1px solid var(--border); border-radius:12px; font-size:.9375rem; color:var(--text-dim); box-shadow:var(--card-shadow); min-height:40px; white-space:nowrap}
.cycle-bar .btn{font-size:.875rem; padding:.3rem .7rem}
.task-card.done{opacity:.6}
.task-top{display:flex; justify-content:space-between; gap:.6rem; align-items:flex-start}
.task-title{font-weight:700; font-size:1rem}
.task-meta{font-size:.875rem; color:var(--text-dim); margin-top:.2rem; line-height:1.5}
.task-done{font-size:.9375rem; color:var(--green); font-weight:700; margin-top:.3rem}
.task-trail{margin-top:.45rem; padding-top:.4rem; border-top:1px dashed var(--border); display:flex; flex-direction:column; gap:.15rem}
.trail-row{font-size:.875rem; color:var(--text-dim); line-height:1.45}
.task-actions{display:flex; flex-wrap:wrap; gap:.4rem; align-items:center; margin-top:.55rem}
.task-history{margin-top:.6rem; border-top:1px dashed var(--border); padding-top:.6rem}
.task-history>summary{cursor:pointer; font-weight:700; color:var(--text-dim); padding:.35rem 0; user-select:none; list-style:revert}
.tk-reassign{max-width:190px; font-size:.9375rem; padding:.35rem .5rem}
.mini-link{color:var(--blue); cursor:pointer; text-decoration:underline}
.field{margin-bottom:.7rem}
.field label{display:block; font-size:.9375rem; color:var(--text-dim); margin-bottom:.45rem; line-height:1.35}
.field{margin-bottom:1rem}
.tkpick-tabs{display:flex; gap:.4rem; margin-bottom:.4rem}
.tkpick-tab{flex:1; background:var(--surface2); border:1px solid var(--border); color:var(--text-dim); border-radius:.55rem; padding:.45rem .5rem; font-weight:700; font-size:1rem; font-family:inherit; cursor:pointer}
.tkpick-tab.on{background:var(--blue); color:#fff; border-color:var(--blue)}
.tkpick-list{max-height:220px; overflow:auto; border:1px solid var(--border); border-radius:.55rem; background:var(--surface2)}
.tkpick-row{padding:.5rem .7rem; font-size:1rem; cursor:pointer; border-bottom:1px solid var(--border)}
.tkpick-row:last-child{border-bottom:none}
.tkpick-row:hover{background:var(--surface)}
.tkpick-row.sel{background:var(--blue); color:#fff; font-weight:700}
.tkpick-empty{padding:.8rem; text-align:center; color:var(--text-dim); font-size:1rem}
select.inp{width:100%}

/* miklat: two columns + accordion + systems edit */
.mk-layout{flex:1; display:grid; grid-template-columns:minmax(0,860px) 1fr; gap:.85rem; padding:.85rem 1.1rem 1rem; min-height:0}
.mk-head{display:flex; align-items:center; gap:1.4rem; padding:.85rem 1.2rem; flex-wrap:wrap; justify-content:flex-start}
.mk-head .fs-title{font-size:1.45rem; font-weight:700}
.mk-head-title{min-width:170px}
.mk-head-status{display:flex; flex-direction:column; gap:.28rem; font-size:1rem; white-space:nowrap; margin-inline-start:2.5rem; padding-inline-start:1.5rem; border-inline-start:2px solid var(--border)}
.mk-head-status .row{display:flex; gap:.45rem; justify-content:flex-start; align-items:center; text-align:right}
.mk-head-status .lbl{color:var(--text-dim)}
.mk-head-status .val{color:var(--text); font-weight:700}
.mk-left{display:flex; flex-direction:column; gap:.7rem; min-height:0}
#mkMap{flex:1; min-height:240px; border-radius:.9rem; border:1px solid var(--border); overflow:hidden}
.navbtns{display:flex; gap:.5rem}
.navbtns button{flex:1; text-align:center; background:var(--blue); color:#fff; border:none; border-radius:.6rem; padding:.65rem; font-weight:700; font-size:1rem; cursor:pointer; font-family:inherit}
.navbtns button.alt{background:var(--surface2); color:var(--text); border:1px solid var(--border)}
.navbtns button:hover{filter:brightness(1.08)}
.mk-summary{background:var(--surface); border:1px solid var(--border); border-radius:.9rem; padding:.85rem}
.mk-right{overflow-y:auto; min-height:0; padding-bottom:1rem}
.acc{background:var(--surface); border:1px solid var(--border); border-radius:.9rem; margin-bottom:.7rem; overflow:hidden; max-width:none}
.acc-head{display:flex; align-items:center; gap:.55rem; padding:.85rem 1rem; cursor:pointer; user-select:none}
.acc-head h3{font-size:1rem; font-weight:700; flex:1; margin:0}
.acc-arrow{color:var(--text-dim); transition:transform .2s; width:16px; height:16px; display:inline-flex; align-items:center; justify-content:center; flex:none}
.acc-arrow svg{width:16px; height:16px}
.acc.open .acc-arrow{transform:rotate(180deg)}
.acc-edit{background:var(--surface2); border:1px solid var(--border); color:var(--text); border-radius:.5rem; padding:.4rem .65rem; cursor:pointer; font-size:1rem; margin-inline-start:.4rem}
.acc-edit.active{background:var(--blue); border-color:var(--blue); color:#fff}
.acc-body{display:none; padding:0 1rem 1rem}
.acc.open .acc-body{display:block}
.tk-grid{display:grid; grid-template-columns:minmax(260px,320px) minmax(260px,320px) minmax(0,1fr); gap:1rem; align-items:start}
@media(max-width:1024px){ .tk-grid{grid-template-columns:minmax(0,1fr)} }
.tk-col{display:flex; flex-direction:column; gap:.9rem; min-width:0}
.fault-item{background:var(--surface2); border:1px solid var(--border); border-radius:.7rem; padding:.7rem .85rem; margin-bottom:.6rem}
.fault-item:last-child{margin-bottom:0}
.fault-name{font-weight:700; font-size:1rem}
.fault-meta{font-size:.9375rem; color:var(--text-dim); margin-top:.2rem}
.fault-note{margin-top:.45rem; font-size:1rem; line-height:1.35; white-space:pre-wrap; word-break:break-word}
.fault-note.muted{font-style:italic}
.fault-assign{margin-top:.45rem; font-size:.9375rem; font-weight:700; color:#1d4ed8}
.tk-sum{background:var(--surface); border:1px solid var(--border); border-radius:.9rem; padding:1rem 1.05rem}
.tk-sum h3{font-size:1rem; font-weight:700; margin:0 0 .7rem; display:flex; align-items:center; gap:.4rem}
.tk-sum h4{font-size:.875rem; font-weight:700; color:var(--text-dim); margin:.95rem 0 .35rem}
.tk-stat{display:flex; gap:.5rem; margin-bottom:.3rem}
.tk-stat .s{flex:1; min-width:0; background:var(--surface2); border:1px solid var(--border); border-radius:.6rem; padding:.5rem; text-align:center; font-family:inherit; cursor:pointer; transition:border-color .12s, background .12s}
.tk-stat .s:hover{border-color:var(--blue)}
.tk-stat .s.on{border-color:var(--blue); background:var(--tint-blue); box-shadow:inset 0 0 0 1px var(--blue)}
.tk-stat .s b{display:block; font-size:1.35rem; font-weight:700; line-height:1.1}
.tk-stat .s span{font-size:.8125rem; color:var(--text-dim)}
.tk-line{display:flex; align-items:center; justify-content:space-between; gap:.5rem; padding:.32rem 0; border-bottom:1px solid var(--border); font-size:.9375rem}
.tk-line:last-child{border-bottom:none}
.tk-line .n{background:var(--surface2); border-radius:.4rem; padding:.05rem .45rem; font-weight:700; font-size:.9375rem}
.tk-old{font-size:.9375rem; padding:.42rem 0; border-bottom:1px solid var(--border)}
.tk-old:last-child{border-bottom:none}
.tk-old .t{font-weight:700} .tk-old .m{color:var(--text-dim); font-size:.875rem; margin-top:.12rem}
.tk-tiles{display:flex; flex-wrap:wrap; gap:.5rem; margin-bottom:.9rem}
.tk-tile{display:flex; flex-direction:column; align-items:center; gap:.25rem; min-width:92px; background:var(--surface2); border:1px solid var(--border); border-radius:.7rem; padding:.55rem .6rem; cursor:pointer; font-family:inherit}
.tk-tile .lbl{font-size:.9375rem; font-weight:700; color:var(--text); white-space:nowrap}
.tk-tile .tk-tile-n{font-size:1.15rem; font-weight:700; color:var(--blue)}
.tk-tile.on{border-color:var(--blue); box-shadow:0 0 0 2px var(--blue) inset}
.tk-tile.caban .tk-tile-n{color:var(--orange)}
.tk-tile.gen .tk-tile-n{color:var(--text-dim)}
.tk-tile.plan{border-style:dashed} .tk-tile.plan .tk-tile-n{color:#a78bfa}
.tk-segs{display:flex; flex-wrap:wrap; gap:.4rem; margin-bottom:.8rem}
.tk-seg{flex:1; background:var(--surface2); border:1px solid var(--border); color:var(--text-dim); border-radius:.55rem; padding:.45rem; font-weight:700; font-size:.9375rem; font-family:inherit; cursor:pointer}
.tk-seg.on{background:var(--blue); color:#fff; border-color:var(--blue)}
.tk-seg-new{display:inline-flex; align-items:center; justify-content:center; gap:.35rem; flex:0 0 auto; background:var(--blue); border:1px solid var(--blue); color:#fff; border-radius:.55rem; padding:.45rem .95rem; font-weight:700; font-size:.9375rem; font-family:inherit; cursor:pointer; white-space:nowrap; box-shadow:0 2px 8px color-mix(in srgb, var(--blue) 30%, transparent); transition:filter .15s}
.tk-seg-new:hover{filter:brightness(1.07)}
.tk-seg-new .eic{width:1em;height:1em}
.tk-genhint{display:flex; align-items:center; gap:.5rem; background:var(--surface2); border:1px dashed var(--border); border-radius:.55rem; padding:.7rem .8rem; color:var(--text-dim); font-size:.9375rem; line-height:1.45}
.tk-genhint .eic{flex:none; color:var(--blue)}
.tk-genobj{display:inline-flex; align-items:center; gap:.25rem; color:var(--text-dim)}
.tk-line.on{background:var(--surface2); border-radius:.4rem; padding-inline:.4rem}
.plan-group{margin-bottom:1rem}
.plan-obj{display:flex; align-items:center; gap:.5rem; font-weight:700; font-size:1rem; margin:.3rem 0 .5rem; padding-bottom:.3rem; border-bottom:1px solid var(--border)}
.plan-obj .n{background:var(--surface2); border-radius:.4rem; padding:.05rem .45rem; font-size:.9375rem}
.tk-planhead{background:#7c3aed14; border:1px dashed #7c3aed55; color:var(--text-dim); border-radius:.6rem; padding:.55rem .7rem; font-size:.9375rem; margin-bottom:.8rem}
.b-plan{background:#7c3aed22; color:#a78bfa}
.sys-edit-row{padding:.65rem 0; border-bottom:1px solid var(--border)}
.sys-edit-row:last-child{border-bottom:none}
.who-inp{flex:1; min-width:110px}
.photos-stub{text-align:center; color:var(--text-dim); padding:1.5rem; border:1px dashed var(--border); border-radius:.7rem}
#modalOverlay{display:none; position:fixed; inset:0; z-index:3000; background:rgba(0,0,0,.6); align-items:center; justify-content:center; padding:1rem}
#modalOverlay.show{display:flex}
#modalCard{background:var(--surface); border:1px solid var(--border); border-radius:1rem; max-width:560px; width:100%; max-height:85vh; overflow:auto; padding:1.3rem; box-shadow:var(--card-shadow)}
.modal-head{display:flex; align-items:center; justify-content:space-between; gap:1rem; margin-bottom:1rem}
.modal-head h3{font-size:1.15rem; font-weight:700}
.modal-close{background:transparent; border:none; color:var(--text-dim); cursor:pointer; line-height:1; display:inline-flex; padding:.2rem}
.modal-close svg{width:20px; height:20px}
.modal-close:hover{color:var(--text)}
/* 🧰 ציוד — двухколоночный просмотр по категориям + модал редактирования */
.ziud-grid{column-count:2; column-gap:1.2rem}
@media(max-width:900px){ .ziud-grid{column-count:1} }
.ziud-cat{break-inside:avoid; -webkit-column-break-inside:avoid; margin-bottom:1rem}
.ziud-cat-h{font-weight:700; color:var(--blue); border-bottom:2px solid var(--border); padding-bottom:.3rem; margin-bottom:.35rem; display:flex; justify-content:space-between; align-items:center; gap:.5rem}
.ziud-cat-h .c{font-size:.9375rem; font-weight:600; color:var(--text-dim)}
.ziud-item{display:flex; gap:.5rem; align-items:center; padding:.35rem 0; border-bottom:1px solid var(--border)}
.ziud-mov{display:none; position:fixed; inset:0; z-index:3200; background:rgba(0,0,0,.62); align-items:center; justify-content:center; padding:1.5vh 1.5vw}
.ziud-mov.show{display:flex}
.ziud-modal{background:var(--surface); border:1px solid var(--border); border-radius:1rem; width:min(1080px,97vw); height:min(94vh,960px); display:flex; flex-direction:column; overflow:hidden; box-shadow:var(--card-shadow)}
.ziud-modal-head{display:flex; align-items:center; justify-content:space-between; gap:1rem; padding:1rem 1.2rem; border-bottom:1px solid var(--border)}
.ziud-modal-head h3{font-size:1.1rem; font-weight:700}
.ziud-modal-body{flex:1; overflow:auto; padding:1rem 1.2rem}
.ziud-modal-foot{display:flex; gap:.6rem; align-items:center; padding:.85rem 1.2rem; border-top:1px solid var(--border); flex-wrap:wrap}
.ziud-erow{display:flex; gap:.4rem; align-items:center; flex-wrap:wrap; padding:.45rem 0; border-bottom:1px solid var(--border)}
.ziud-ecat{font-weight:700; color:var(--blue); margin:1rem 0 .3rem; border-bottom:2px solid var(--border); padding-bottom:.25rem}
/* app-confirm — центральное окно подтверждения в стиле приложения */
#confirmOverlay{display:none; position:fixed; inset:0; z-index:3400; background:rgba(0,0,0,.62); align-items:center; justify-content:center; padding:1rem}
#confirmOverlay.show{display:flex}
.confirm-card{background:var(--surface); border:1px solid var(--border); border-radius:1.1rem; max-width:470px; width:100%; box-shadow:var(--card-shadow); overflow:hidden; animation:cfIn .14s ease}
@keyframes cfIn{from{transform:translateY(8px) scale(.98); opacity:.4}to{transform:none; opacity:1}}
.confirm-head{font-size:1.2rem; font-weight:700; padding:1.2rem 1.3rem .5rem}
.confirm-body{padding:0 1.3rem 1.1rem; color:var(--text); line-height:1.55; font-size:1rem}
.confirm-flist{list-style:none; margin:.5rem 0 .9rem; padding:0; display:flex; flex-direction:column; gap:.4rem}
.confirm-flist li{background:#dc262614; border:1px solid #dc262633; color:var(--text); border-radius:.6rem; padding:.5rem .7rem; font-weight:700}
.confirm-foot{display:flex; gap:.7rem; padding:1rem 1.3rem; border-top:1px solid var(--border)}
.confirm-foot .btn{flex:1; justify-content:center; padding:.7rem; font-size:1rem}
.btn.danger{background:#dc2626; color:#fff; border-color:#dc2626}
/* ── ניקוי נתוני בדיקה (v136) — виден только владельцу ── */
.rs-open{color:var(--red); border-color:var(--red)!important}
.rs-gate{width:min(400px,94vw); height:auto}
.rs-gate-t{font-size:1rem; font-weight:700; color:var(--text-dim); margin-bottom:.6rem}
.rs-gate .inp{width:100%; text-align:center; letter-spacing:.12em; font-size:1.1rem}
.rs-gate-err{margin-top:.5rem; color:var(--red); font-weight:700; font-size:.9375rem}
.rs-gate-acts{display:flex; gap:.5rem; margin-top:1rem}
.rs-gate-acts .btn{flex:1; justify-content:center}
.rs-modal{width:min(640px,97vw); height:auto; max-height:94vh}
.rs-warn{display:flex; align-items:center; gap:.5rem; background:#dc262614; border:1px solid #dc262633; color:var(--text); border-radius:.6rem; padding:.6rem .75rem; font-weight:700; font-size:.9375rem; margin-bottom:1rem}
.rs-warn .eic{flex:none; color:var(--red)}
.rs-sec-t{font-size:.9375rem; font-weight:700; color:var(--text-dim); margin:.9rem 0 .45rem}
.rs-cbs{display:flex; flex-direction:column; gap:.35rem}
.rs-cb{display:flex; align-items:flex-start; gap:.6rem; background:var(--surface2); border:1px solid var(--border); border-radius:.6rem; padding:.6rem .75rem; cursor:pointer}
.rs-cb.on{border-color:var(--blue)}
.rs-cb input{width:17px; height:17px; margin-top:.15rem; cursor:pointer; flex:none}
.rs-cb input:disabled{cursor:default; opacity:.4}
.rs-cb-t{display:flex; flex-direction:column; gap:.1rem}
.rs-cb-t b{font-size:1rem; font-weight:700}
.rs-cb-t i{font-style:normal; font-size:.875rem; color:var(--text-dim)}
.rs-range{display:flex; gap:.6rem; align-items:center; flex-wrap:wrap}
.rs-hint{margin-top:.45rem; font-size:.9375rem; color:var(--text-dim)}
.rs-dates{display:flex; gap:.6rem; margin-top:.6rem; flex-wrap:wrap}
.rs-dates label{flex:1 1 150px; min-width:0; display:flex; flex-direction:column; gap:.25rem}
.rs-dates label span{font-size:.875rem; color:var(--text-dim); font-weight:700}
.rs-dates .inp{width:100%}
.rs-acts{margin-top:1rem}
.rs-plan{margin-top:1rem; background:var(--surface2); border:1px solid var(--border); border-radius:.7rem; padding:.8rem .9rem}
.rs-plan-h{display:flex; align-items:center; gap:.4rem; font-weight:700; font-size:1rem; margin-bottom:.4rem}
.rs-plan-h.rs-del{color:var(--red)}
.rs-plan-h.rs-keep{color:var(--green); margin-top:.9rem}
.rs-line{display:flex; justify-content:space-between; align-items:center; padding:.28rem 0; border-bottom:1px solid var(--border); font-size:.9375rem}
.rs-line:last-of-type{border-bottom:none}
.rs-line b{font-variant-numeric:tabular-nums; font-weight:700}
.rs-keeps{display:flex; flex-wrap:wrap; gap:.3rem}
.rs-k{font-size:.875rem; background:var(--tint-green); color:var(--green); border-radius:.4rem; padding:.15rem .5rem; font-weight:700}
.rs-exec{display:flex; gap:.5rem; align-items:center; flex-wrap:wrap; margin-top:.9rem}
.rs-pass{flex:1; min-width:130px}
.rs-prog{margin-top:.7rem; font-size:.9375rem; font-weight:700; color:var(--text-dim); min-height:1.2em}

/* ── דוח מערכת (v146): отчёт владельца + экран предохранителя ── */
#usageFuse{position:fixed; inset:0; z-index:9999; background:rgba(10,14,22,.92);
  display:flex; align-items:center; justify-content:center; padding:1.2rem}
.uf-box{background:var(--surface); border:1px solid var(--border); border-radius:.75rem;
  padding:1.6rem 1.4rem; max-width:460px; text-align:center; box-shadow:0 18px 50px rgba(0,0,0,.35)}
.uf-ic{color:var(--red); line-height:0; margin-bottom:.6rem}
.uf-ic svg{width:46px; height:46px}
.uf-box h2{margin:.2rem 0 .7rem; font-size:1.35rem}
.uf-box p{margin:.4rem 0}
.uf-box .uf-sub{color:var(--text-dim); font-size:.9375rem}
.uf-box button{margin-top:1rem; min-height:40px; padding:.5rem 1.1rem; border-radius:.6rem;
  background:var(--blue); color:#fff; border:0; font-weight:700; font-size:1rem; cursor:pointer; font-family:inherit}
.us-modal{width:min(520px,97vw); height:auto; max-height:94vh}
.us-tabs{margin-bottom:.8rem}
.us-gate{display:flex; flex-direction:column; gap:.7rem; align-items:stretch; padding:.5rem 0}
.us-gate p{font-weight:700}
.us-err{color:var(--red); font-weight:700; font-size:.9375rem}
.us-card{background:var(--surface2); border:1px solid var(--border); border-radius:.6rem;
  padding:.8rem .9rem; margin-bottom:.7rem}
.us-card h4{margin:0 0 .5rem; font-size:.9375rem; color:var(--text-dim); display:flex; align-items:center; gap:.4rem}
.us-sum{border-color:var(--blue)}
.us-role{background:var(--surface); border:1px solid var(--border); border-radius:999px;
  padding:.05rem .5rem; font-size:.8125rem; font-weight:700; color:var(--text-dim)}
.us-row{display:flex; justify-content:space-between; align-items:center; padding:.28rem 0; font-size:1rem}
.us-row b.warn{color:var(--orange)}
.us-row b.alarm{color:var(--red)}
.us-op{border-top:1px solid var(--border); padding-top:.45rem; margin-top:.45rem}
.us-op:first-of-type{border-top:0; margin-top:0}
.us-op-n{font-weight:700; margin-bottom:.15rem}
.us-sep{height:1px; background:var(--border); margin:.5rem 0}
.us-note{color:var(--text-dim); font-size:.875rem; line-height:1.5}
.us-range{display:flex; gap:.6rem; align-items:flex-end; flex-wrap:wrap; margin-bottom:.8rem}

/* ── טקסט מודגש (v138): контраст + вес приглушённого текста ── */
body.bold-ui{--text-dim:#c3ced9; --text-faint:#a3b0bd}
body.light.bold-ui{--text-dim:#334155; --text-faint:#475569}
body.bold-ui .kpi-label,body.bold-ui .kpi-sub,body.bold-ui .oc-meta,body.bold-ui .fs-sub,
body.bold-ui .mk-head-status .lbl,body.bold-ui .kv .k,body.bold-ui .pp-cols .kv .k,
body.bold-ui .muted,body.bold-ui .sn-summary .muted,body.bold-ui .task-meta,body.bold-ui .trail-row,
body.bold-ui .fault-meta,body.bold-ui .field label,body.bold-ui .sys-state,body.bold-ui .clock-date,
body.bold-ui .tk-old .m,body.bold-ui .tk-stat .s span,body.bold-ui .sn-f,body.bold-ui .rs-cb-t i,
body.bold-ui .set-row,body.bold-ui .acc-sub{font-weight:700}

/* ══════════ RESPONSIVE (v135) — desktop / tablet / phone ══════════ */
/* ≥1025px — десктоп: сплит «список | карта», переключатель не нужен */
@media(min-width:1025px){
  #mapPane{display:block!important}
  body.view-map #listPane,body.view-list #mapPane{display:block}
  .view-toggle{display:none}
}
/* ≤1024px — планшет: одна колонка + вкладки «список / карта» */
@media(max-width:1024px){
  header{grid-template-columns:auto 1fr}
  #clock{display:none}
  .header-right{justify-content:flex-end; flex-wrap:wrap}
  #layout{grid-template-columns:minmax(0,1fr)}
  .view-toggle{display:flex}
  /* один вертикальный скролл вместо двух зажатых колонок */
  .mk-layout{display:flex; flex-direction:column; overflow-y:auto; -webkit-overflow-scrolling:touch; padding:.75rem}
  .mk-right{overflow:visible; min-height:auto; padding-bottom:0}
  .mk-left{flex:none; min-height:auto}
  #mkMap{flex:none; height:280px; min-height:280px}
  .navbtns{padding-bottom:.6rem}
  .mk-head-status{margin-inline-start:0; padding-inline-start:0; border:none; width:100%}
}
/* ≤760px — телефон */
@media(max-width:760px){
  .kpi-bar{grid-template-columns:repeat(2,minmax(0,1fr)); gap:9px; padding:10px 12px}
  .kpi-sub{white-space:normal}
  .mk-head-status{white-space:normal}
  .kpi{padding:11px 12px}
  .kpi-num{font-size:1.6rem}
  .kmed{width:40px; height:40px; border-radius:11px}
  .kmed svg{width:21px; height:21px}
  .toolbar{padding:0 .75rem .55rem; gap:.4rem}
  .search-wrap{flex:1 1 100%; min-width:0; order:-1}
  select.filter-sel{flex:1 1 40%; min-width:0}
  .cycle-bar{margin-inline-start:0; width:100%; justify-content:space-between; white-space:normal}
  .toolbar{min-width:0}
  .obj-card{padding:.8rem .85rem}
  .view-toggle{margin-inline-start:0; flex:1 1 100%}
  .vt-btn{flex:1}
  #layout{padding:0 .75rem .75rem}
  .icon-btn .btxt{display:none}
  .icon-btn{padding:.45rem .6rem}
  .fs-scroll{padding:.75rem}
  .fs-head{padding:.6rem .75rem; gap:.5rem}
  .mk-head{gap:.7rem; padding:.7rem .8rem}
  .sect{padding:.85rem .9rem}
  .kv{grid-template-columns:108px 1fr; gap:.5rem}
  .pp-cols{--pp-pad:.7rem; gap:.75rem}
  .sn-bar,.sn-filters{padding-inline:.75rem}
  .sn-summary,.sn-pivot{padding-inline:.75rem}
  .sn-settings{margin-inline:.75rem}
  .sn-set-grp{min-width:130px}
  .tk-reassign{max-width:none}
  .set-pop{width:min(300px,calc(100vw - 22px))}
  /* большие модалы — на весь экран */
  .ziud-mov{padding:0}
  .ziud-modal{width:100vw; height:100vh; height:100dvh; max-height:none; border-radius:0; border:none}
  #modalOverlay{padding:.6rem}
  /* тач-таргеты ≥44px */
  .icon-btn,.filter-sel,.vt-btn,.back-btn,.sn-chip,.sn-gear,.sn-reset,.sn-export,.hist-tabs button{min-height:44px}
}
/* ≤430px — узкий телефон */
@media(max-width:430px){
  .kpi-num{font-size:1.45rem}
  .kpi-label{font-size:.875rem}
  .kpi-sub{font-size:.8125rem}
  .kmed{width:36px; height:36px}
  .kmed svg{width:19px; height:19px}
  .brand{font-size:.95rem}
  .mk-head .fs-title{font-size:1.2rem}
  .kv{grid-template-columns:1fr; gap:.15rem}
  .kv .k{font-size:.875rem}
}

/* ── ניהול עובדים (v162) — редактор сотрудников. Виден только владельцу, под паролем ── */
.st-gate{width:min(400px,94vw); height:auto}
.st-gate-t{font-size:1rem; font-weight:700; color:var(--text-dim); margin-bottom:.6rem}
.st-gate .inp{width:100%; text-align:center; letter-spacing:.12em; font-size:1.1rem}
.st-gate-err{margin-top:.5rem; color:var(--red); font-weight:700; font-size:.9375rem}
.st-gate-acts{display:flex; gap:.5rem; margin-top:1rem}
.st-gate-acts .btn{flex:1; justify-content:center}
.st-modal{width:min(760px,97vw); height:auto; max-height:94vh}
.st-warn{display:flex; align-items:flex-start; gap:.5rem; background:var(--tint-green); border:1px solid var(--border);
  border-radius:.6rem; padding:.6rem .75rem; font-size:.9375rem; line-height:1.5; margin-bottom:1rem}
.st-warn .eic{flex:none; color:var(--green); margin-top:.15rem}
.st-card{background:var(--surface2); border:1px solid var(--border); border-radius:.7rem; padding:.75rem .85rem; margin-bottom:.7rem}
.st-card.off{opacity:.62; border-style:dashed}
.st-card.new{border-color:var(--blue)}
.st-top{display:flex; align-items:center; gap:.6rem; flex-wrap:wrap; margin-bottom:.55rem}
.st-id{direction:ltr; font-family:ui-monospace,SFMono-Regular,Menlo,monospace; font-size:.875rem; font-weight:700;
  background:var(--surface); border:1px solid var(--border); border-radius:.4rem; padding:.15rem .5rem; color:var(--text-dim)}
.st-idin{direction:ltr; font-family:ui-monospace,SFMono-Regular,Menlo,monospace; width:170px; min-height:32px; padding:.25rem .5rem; font-size:.9375rem}
.st-lock{font-style:normal; font-size:.875rem; font-weight:700; color:var(--text-dim); display:inline-flex; align-items:center; gap:.3rem}
.st-grid{display:grid; grid-template-columns:repeat(auto-fit,minmax(min(160px,100%),1fr)); gap:.5rem}
.st-grid label{display:flex; flex-direction:column; gap:.22rem; min-width:0}
.st-grid label span{font-size:.8125rem; font-weight:700; color:var(--text-dim)}
.st-grid .inp{width:100%; min-height:36px}
.st-flags{display:flex; flex-wrap:wrap; gap:.5rem; margin-top:.6rem}
.st-cb{display:inline-flex; align-items:center; gap:.4rem; background:var(--surface); border:1px solid var(--border);
  border-radius:.5rem; padding:.35rem .6rem; cursor:pointer; font-size:.9375rem; font-weight:700}
.st-cb input{width:16px; height:16px; cursor:pointer; flex:none}
.st-cb input:disabled{cursor:default; opacity:.4}
.st-alias{display:flex; flex-wrap:wrap; align-items:center; gap:.3rem; margin-top:.55rem; font-size:.875rem; color:var(--text-dim)}
.st-alias b{background:var(--surface); border:1px solid var(--border); border-radius:.4rem; padding:.1rem .45rem; font-weight:700; color:var(--text)}
.st-msg{font-size:.9375rem; font-weight:700; color:var(--text-dim)}
.st-msg.ok{color:var(--green)}
.st-msg.bad{color:var(--red)}
/* v163 — подсказка под флагом (מפעיל ≠ עובד שטח: развели два смысла) */
.st-cb{align-items:flex-start}
.st-cb span{display:flex; flex-direction:column; gap:.1rem; line-height:1.3}
.st-cb span i{font-style:normal; font-size:.8125rem; font-weight:600; color:var(--text-dim)}
.st-cb.dis{opacity:.45; cursor:default}

/* v163 — переверстка карточки сотрудника: имя+id сверху, поля, две группы флагов */
.st-card{padding:.85rem .95rem}
.st-top{display:flex; align-items:flex-end; gap:.7rem; flex-wrap:wrap; margin-bottom:.65rem}
.st-nm{flex:1 1 220px; min-width:0; display:flex; flex-direction:column; gap:.22rem}
.st-nm span{font-size:.8125rem; font-weight:700; color:var(--text-dim)}
.st-nm .inp{width:100%; min-height:40px; font-weight:700; font-size:1.05rem}
.st-idbox{display:flex; align-items:center; gap:.45rem; flex-wrap:wrap; padding-bottom:.35rem}
.st-tag{font-style:normal; font-size:.8125rem; font-weight:700; display:inline-flex; align-items:center; gap:.28rem;
  border-radius:.4rem; padding:.12rem .45rem}
.st-tag.own{background:var(--tint-blue); color:var(--blue)}
.st-tag.off{background:var(--tint-red); color:var(--red)}
.st-rm{background:transparent; border:1px solid var(--border); color:var(--red); border-radius:.45rem;
  padding:.2rem .4rem; cursor:pointer; display:inline-flex; align-items:center; line-height:1}
.st-rm:hover{background:var(--tint-red); border-color:var(--red)}
.st-sec{margin-top:.6rem}
.st-sec-t{font-size:.75rem; font-weight:700; color:var(--text-dim); letter-spacing:.02em; margin-bottom:.3rem}
.st-flags{display:grid; grid-template-columns:repeat(auto-fit,minmax(min(200px,100%),1fr)); gap:.45rem; align-items:stretch}
.st-cb{display:flex; align-items:flex-start; gap:.45rem; background:var(--surface); border:1px solid var(--border);
  border-radius:.5rem; padding:.45rem .55rem; cursor:pointer; min-width:0}
.st-cb input{margin-top:.15rem}
.st-cb span{display:flex; flex-direction:column; gap:.05rem; min-width:0; line-height:1.25}
.st-cb span b{font-size:.9375rem; font-weight:700}
.st-cb span i{font-style:normal; font-size:.75rem; font-weight:600; color:var(--text-dim)}
.st-cb:has(input:checked){border-color:var(--blue); background:var(--tint-blue)}
.st-cb.dis{opacity:.4; cursor:default; background:var(--surface2)}
.st-sum{display:flex; align-items:center; gap:.3rem; flex-wrap:wrap; font-size:.9375rem; color:var(--text-dim);
  margin:0 0 .7rem; padding-bottom:.5rem; border-bottom:1px solid var(--border)}
.st-sum b{color:var(--text); font-weight:700; font-variant-numeric:tabular-nums}
.st-sum span{opacity:.5}
.st-alias{margin-top:.6rem; padding-top:.5rem; border-top:1px dashed var(--border)}

/* v165 — карточка сотрудника: имя-шапкой (искать глазами при прокрутке) и честный замок владельца */
.st-card{position:relative; overflow:hidden; padding-inline-start:1.1rem}
.st-card::before{content:''; position:absolute; inset-inline-start:0; top:0; bottom:0; width:4px; background:var(--blue)}
.st-card.off::before{background:var(--text-dim)}
.st-card.new::before{background:var(--green)}
.st-top{align-items:center; background:var(--tint-blue); border:1px solid var(--border);
  border-radius:.6rem; padding:.45rem .6rem; margin:0 0 .75rem}
.st-card.off .st-top{background:var(--surface2)}
.st-card.new .st-top{background:var(--tint-green)}
.st-nm{gap:0}
.st-nm > span{display:none}                 /* подпись лишняя: шапка и есть имя */
.st-nm .inp{background:var(--surface); font-size:1.1rem; font-weight:800; min-height:38px}
.st-idbox{padding-bottom:0}
/* Замок владельца: флаг НЕ выключен, он неизменяем. При 40% прозрачности галочка читалась как снятая. */
.st-cb.dis{opacity:.55}
.st-cb.dis:has(input:checked){opacity:.9; border-color:var(--blue); background:var(--tint-blue)}
.st-cb.dis:has(input:checked) span b{color:var(--text)}
