/* GharSeva owner console */
body.ops{background:var(--paper);min-height:100dvh}
.ops-shell{display:grid;grid-template-columns:248px 1fr;min-height:100dvh}
.ops-side{background:var(--night);color:#CFC4B8;position:sticky;top:0;height:100dvh;overflow-y:auto;padding:20px 14px;display:flex;flex-direction:column;gap:4px}
.ops-side a.brand{color:#fff;padding:4px 8px 16px;font-size:1.3rem;font-weight:600}
.ops-side a.brand:hover{background:none}
.ops-side h6{margin:16px 10px 6px;font-size:.68rem;letter-spacing:.14em;text-transform:uppercase;color:#7F7368;font-weight:600}
.ops-side a{display:flex;align-items:center;gap:10px;padding:9px 10px;border-radius:10px;text-decoration:none;font-size:.9rem;font-weight:500;color:#CFC4B8}
.ops-side a:hover{background:#261E19;color:#fff}
.ops-side a.on{background:#2E241F;color:#fff}
.ops-side a svg{width:17px;height:17px;flex:none;opacity:.85}
.ops-side .me{margin-top:auto;padding:14px 10px 4px;border-top:1px solid #2E2520;font-size:.84rem}
.ops-side .me b{display:block;color:#fff}
.ops-main{min-width:0}
.ops-top{position:sticky;top:0;z-index:20;background:color-mix(in srgb,var(--paper) 90%,transparent);backdrop-filter:blur(10px);border-bottom:1px solid var(--line);
  padding:14px clamp(16px,3vw,32px);display:flex;align-items:center;gap:12px}
.ops-top h1{font-size:1.45rem}
.ops-top p{font-size:.86rem;color:var(--muted)}
.ops-top .end{margin-left:auto;display:flex;gap:8px;align-items:center}
.ops-menu{display:none}
.ops-body{padding:clamp(16px,3vw,32px);display:grid;gap:20px;max-width:1400px}
.ops-live{display:inline-flex;align-items:center;gap:6px;font-size:.78rem;color:var(--leaf);font-weight:600}
.ops-live::before{content:"";width:8px;height:8px;border-radius:50%;background:var(--leaf);box-shadow:0 0 0 3px var(--leaf-soft)}
@media (max-width:960px){
  .ops-shell{grid-template-columns:1fr}
  .ops-side{position:fixed;left:0;top:0;bottom:0;width:272px;z-index:60;transform:translateX(-100%);transition:transform .22s}
  body.nav-open .ops-side{transform:none;box-shadow:var(--sh-3)}
  body.nav-open::after{content:"";position:fixed;inset:0;background:rgba(23,17,14,.4);z-index:55}
  .ops-menu{display:inline-flex}
  .ops-top h1{font-size:1.2rem}
}
/* blocks */
.kpis{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:12px}
.kpi{background:var(--card);border:1px solid var(--line);border-radius:18px;padding:16px 18px}
.kpi small{display:block;font-size:.8rem;color:var(--muted);font-weight:500}
.kpi b{display:block;font-family:var(--f-display);font-size:1.9rem;font-weight:600;letter-spacing:-.02em;margin-top:4px;line-height:1.1}
.kpi span{font-size:.8rem;color:var(--muted)}
.kpi.good b{color:var(--leaf)} .kpi.warn b{color:var(--gold)} .kpi.bad b{color:var(--rose)}
.panel{background:var(--card);border:1px solid var(--line);border-radius:20px;overflow:hidden;min-width:0}
.panel>header{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:16px 20px;border-bottom:1px solid var(--line)}
.panel>header h2{font-family:var(--f-body);font-size:1rem;font-weight:600;letter-spacing:0}
.panel>header p{font-size:.8rem;color:var(--muted)}
.panel .pb{padding:18px 20px}
.cols{display:grid;gap:20px;grid-template-columns:repeat(12,1fr)}
.c4{grid-column:span 4}.c5{grid-column:span 5}.c6{grid-column:span 6}.c7{grid-column:span 7}.c8{grid-column:span 8}.c12{grid-column:span 12}
@media (max-width:1100px){.c4,.c5,.c6,.c7,.c8{grid-column:span 12}}
.tbl{width:100%;border-collapse:collapse;font-size:.88rem}
.tbl th{text-align:left;font-size:.72rem;letter-spacing:.06em;text-transform:uppercase;color:var(--muted);font-weight:600;padding:10px 20px;border-bottom:1px solid var(--line);white-space:nowrap}
.tbl td{padding:12px 20px;border-bottom:1px solid var(--line);vertical-align:top}
.tbl tr:last-child td{border-bottom:none}
.tbl .num{text-align:right}
.tbl-wrap{overflow-x:auto}
.empty-row{padding:28px 20px;text-align:center;color:var(--muted);font-size:.9rem}
.status{display:inline-flex;align-items:center;gap:6px;font-weight:600;font-size:.8rem;padding:4px 10px;border-radius:999px;white-space:nowrap}
.status.pass{background:var(--leaf-soft);color:var(--leaf)} .status.warn{background:var(--gold-soft);color:var(--gold)} .status.fail{background:var(--rose-soft);color:var(--rose)} .status.info{background:var(--sky-soft);color:var(--sky)} .status.idle{background:var(--paper-2);color:var(--muted)}
.hbar{display:grid;grid-template-columns:120px 1fr 48px;align-items:center;gap:10px;font-size:.86rem;padding:5px 0}
.hbar i{display:block;height:10px;border-radius:6px;background:var(--accent);min-width:2px}
.hbar .t{background:var(--paper-2);border-radius:6px;overflow:hidden}
.hbar b{text-align:right;font-variant-numeric:tabular-nums}
.chart{width:100%;height:150px;display:block;margin-top:8px}
.chart text{font-size:10px;fill:var(--muted);font-family:var(--f-body)}
.funnel{display:grid;gap:8px}
.funnel div{display:grid;grid-template-columns:130px 1fr 70px;gap:10px;align-items:center;font-size:.88rem}
.funnel i{display:block;height:28px;border-radius:8px;background:linear-gradient(90deg,var(--accent),#E0703D)}
/* chat */
.chat{display:flex;flex-direction:column;height:600px;max-height:78dvh}
.chat .log{flex:1;overflow-y:auto;padding:16px 20px;display:flex;flex-direction:column;gap:10px}
.chat .m{max-width:88%;padding:10px 14px;border-radius:16px;font-size:.92rem;line-height:1.55;white-space:pre-wrap;word-wrap:break-word}
.chat .m.u{align-self:flex-end;background:var(--ink);color:#fff;border-bottom-right-radius:5px}
.chat .m.a{align-self:flex-start;background:var(--paper);border:1px solid var(--line);border-bottom-left-radius:5px}
.chat .m.e{align-self:stretch;background:var(--rose-soft);color:var(--rose);font-size:.86rem}
.chat .m.a b{font-weight:650}
.chat .sugg{display:flex;gap:6px;flex-wrap:wrap;padding:0 20px 10px}
.chat .sugg button{border:1px solid var(--line-2);background:var(--card);border-radius:999px;padding:6px 12px;font-size:.8rem;cursor:pointer}
.chat .sugg button:hover{border-color:var(--ink-2)}
.chat form{display:flex;gap:8px;padding:12px;border-top:1px solid var(--line)}
.chat textarea{flex:1;resize:none;min-height:46px;max-height:140px;border-radius:14px}
.typing{display:inline-flex;gap:4px}
.typing i{width:6px;height:6px;border-radius:50%;background:var(--muted);animation:blink 1s infinite}
.typing i:nth-child(2){animation-delay:.15s}.typing i:nth-child(3){animation-delay:.3s}
@keyframes blink{50%{opacity:.25}}
/* gate */
.gate{min-height:100dvh;display:grid;place-items:center;padding:16px}
.gate .card{max-width:400px;width:100%;padding:32px}
.gate h1{font-size:1.6rem;margin:16px 0 6px}
.gate .input{margin-top:10px}
.checklist .it{display:grid;grid-template-columns:auto 1fr auto;gap:14px;align-items:start;padding:14px 20px;border-bottom:1px solid var(--line)}
.checklist .it:last-child{border-bottom:none}
.checklist .it b{display:block;font-weight:600;font-size:.94rem}
.checklist .it p{font-size:.85rem;color:var(--muted);margin-top:2px}
.dotst{width:12px;height:12px;border-radius:50%;margin-top:5px}
.dotst.pass{background:var(--leaf)}.dotst.warn{background:var(--gold)}.dotst.fail{background:var(--rose)}.dotst.idle{background:var(--line-2)}
.hide-sm{} @media (max-width:560px){.hide-sm{display:none}.ops-live{display:none}}

/* ── v74: tabs, dialogs, forms ── */
.tabbar{display:flex;gap:6px;flex-wrap:wrap;margin:2px 0 16px}
.tabbar button{border:1px solid var(--line-2);background:var(--card);border-radius:999px;padding:7px 14px;font:600 .86rem var(--f-body,Inter),sans-serif;color:var(--ink-2);cursor:pointer;display:inline-flex;gap:6px;align-items:center}
.tabbar button[aria-selected="true"]{background:var(--ink);border-color:var(--ink);color:#fff}
.tabbar .cnt{background:var(--accent);color:#fff;border-radius:999px;font-size:.7rem;padding:1px 7px}
.tabbar button[aria-selected="true"] .cnt{background:#fff;color:var(--ink)}
dialog.dlg{border:none;border-radius:20px;padding:0;width:min(640px,calc(100vw - 24px));max-height:calc(100dvh - 32px);box-shadow:0 30px 80px -20px rgba(28,21,18,.45);background:var(--card);color:var(--ink)}
dialog.dlg::backdrop{background:rgba(28,21,18,.45)}
dialog.dlg header{display:flex;justify-content:space-between;align-items:center;padding:16px 20px;border-bottom:1px solid var(--line);position:sticky;top:0;background:var(--card);z-index:1}
dialog.dlg header h3{margin:0;font-size:1.1rem}
dialog.dlg .dlg-body{padding:18px 20px;display:grid;gap:12px}
dialog.dlg footer{display:flex;justify-content:flex-end;gap:8px;padding:14px 20px;border-top:1px solid var(--line);position:sticky;bottom:0;background:var(--card)}
.fgrid{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:12px}
.fgrid .full{grid-column:1/-1}
.fhead{grid-column:1/-1;font-size:.72rem;letter-spacing:.08em;text-transform:uppercase;color:var(--muted);font-weight:700;margin-top:6px}
.check{display:flex;gap:8px;align-items:center;font-size:.9rem}
.check input{width:18px;height:18px;accent-color:var(--accent)}
.toolbar{display:flex;gap:8px;flex-wrap:wrap;align-items:center;padding:12px 18px;border-bottom:1px solid var(--line)}
.toolbar .input,.toolbar .select{min-height:38px;padding:7px 10px;width:auto}
.mini{width:84px;min-height:34px;padding:5px 8px}
.thread{display:grid;gap:10px;padding:14px 18px}
.thread .msg{background:var(--paper-2);border-radius:14px;padding:10px 12px;font-size:.9rem}
.thread .msg.internal{background:#FEF3C7}
.thread .msg small{display:block;color:var(--muted);font-size:.75rem;margin-bottom:3px}
.split{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.3fr)}
.split>div+div{border-left:1px solid var(--line)}
.list-item{display:block;width:100%;text-align:left;background:none;border:none;border-top:1px solid var(--line);padding:12px 18px;cursor:pointer;font:inherit;color:inherit}
.list-item:hover,.list-item.on{background:var(--paper-2)}
.alert-row{display:flex;gap:10px;align-items:center;justify-content:space-between;padding:12px 18px;border-top:1px solid var(--line)}
@media (max-width:760px){.split{grid-template-columns:1fr}.split>div+div{border-left:none;border-top:1px solid var(--line)}}
.ops-body .kpis + .cols{margin-top:16px}
.tbl td:first-child{min-width:150px}
.panel .kpis{grid-template-columns:repeat(auto-fit,minmax(170px,1fr))}
