/* «PanOps Работы» — мобильный прототип: крупные кнопки, без лишнего */
:root { --bg: #f6f6f3; --card: #fff; --ink: #111; --ink2: #55544f; --muted: #8a8983; --line: rgba(0,0,0,.09);
  --brand: #e30613; --ok: #0ca30c; --warn: #fab219; --crit: #d03b3b; --off: #8a8983;
  --cold: #2a78d6; --climate: #1baf7a; --power: #eb6834; --infra: #8a8983; color-scheme: light; }
@media (prefers-color-scheme: dark) { :root { --bg: #0f0f0e; --card: #1b1b1a; --ink: #f0efec; --ink2: #c3c2b7; --muted: #8a8983; --line: rgba(255,255,255,.1); color-scheme: dark; } }
* { box-sizing: border-box; }
body { margin: 0; font: 15px/1.45 system-ui, -apple-system, "Segoe UI", sans-serif; background: var(--bg); color: var(--ink); padding-bottom: 76px; }
.bar { position: sticky; top: 0; z-index: 5; display: flex; align-items: center; gap: 10px; padding: 10px 14px; padding-top: max(10px, env(safe-area-inset-top));
  background: var(--card); border-bottom: 1px solid var(--line); }
.bar .ttl { flex: 1; min-width: 0; display: flex; flex-direction: column; }
.bar b { font-size: 17px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.bar small { color: var(--muted); font-size: 12.5px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.demo { font-size: 11.5px; color: #8a5a00; background: #fdf0d2; border-radius: 6px; padding: 2px 7px; }
.ib { width: 40px; height: 40px; border: 0; background: none; color: var(--ink); border-radius: 10px; }
.ib svg, .tabs svg { width: 22px; height: 22px; fill: none; stroke: currentColor; stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; }
main { max-width: 560px; margin: 0 auto; padding: 14px; display: flex; flex-direction: column; gap: 12px; }
.lead { margin: 0; color: var(--ink2); }
.note { margin: 0; color: var(--muted); font-size: 13px; }
.hint { margin: 0; color: var(--ink2); font-size: 14px; }
.empty { color: var(--muted); text-align: center; padding: 30px 0; }
.scope { font-size: 13px; color: var(--ink2); background: color-mix(in srgb, var(--cold) 9%, var(--card)); border-radius: 10px; padding: 8px 12px; }
.list { display: flex; flex-direction: column; gap: 8px; }
.item { display: flex; gap: 12px; align-items: flex-start; text-align: left; width: 100%; background: var(--card); border: 1px solid var(--line); border-radius: 14px;
  padding: 12px 14px; color: inherit; text-decoration: none; font: inherit; }
button.item { cursor: pointer; flex-direction: column; gap: 4px; }
.it-main { flex: 1; min-width: 0; display: flex; flex-direction: column; gap: 1px; }
.it-main b { font-size: 15.5px; }
.it-main span, .it-sub { color: var(--muted); font-size: 13px; }
.it-main .what { color: var(--ink2); }
.si { width: 26px; height: 26px; border-radius: 50%; flex: none; display: inline-grid; place-items: center; color: #fff; font-weight: 800; font-size: 15px; }
.si-crit { background: var(--crit); } .si-warn { background: var(--warn); color: #3a2a00; } .si-off { background: var(--off); } .si-ok { background: var(--ok); }
.step { flex: none; align-self: center; font-size: 12px; padding: 3px 8px; border-radius: 6px; background: var(--bg); color: var(--ink2); white-space: nowrap; }
.step.s1, .step.s2 { background: color-mix(in srgb, var(--cold) 15%, var(--card)); color: var(--cold); }
.step.s3 { background: color-mix(in srgb, var(--ok) 15%, var(--card)); color: var(--ok); }
.head { display: flex; gap: 12px; align-items: flex-start; }
.head h2 { margin: 0; font-size: 19px; } .head p { margin: 2px 0 0; color: var(--ink2); }
h3 { margin: 8px 0 0; font-size: 13px; text-transform: uppercase; letter-spacing: .04em; color: var(--ink2); }
.plan { width: 100%; height: auto; max-height: 52vh; background: var(--card); border: 1px solid var(--line); border-radius: 14px; padding: 8px; }
.plan .walls path { fill: none; stroke: var(--muted); stroke-width: .9px; vector-effect: non-scaling-stroke; }
.plan .walls .pl-wf { fill: var(--muted); stroke: none; opacity: .5; }
.plan .u { stroke-width: 1.2px; vector-effect: non-scaling-stroke; }
.u-cold { fill: color-mix(in srgb, var(--cold) 25%, transparent); stroke: var(--cold); }
.u-climate { fill: color-mix(in srgb, var(--climate) 25%, transparent); stroke: var(--climate); }
.u-power { fill: color-mix(in srgb, var(--power) 25%, transparent); stroke: var(--power); }
.u-infra { fill: color-mix(in srgb, var(--infra) 20%, transparent); stroke: var(--infra); stroke-dasharray: 3 2; }
.plan .u.s-crit { fill: color-mix(in srgb, var(--crit) 45%, transparent); stroke: var(--crit); }
.plan .u.s-warn { fill: color-mix(in srgb, var(--warn) 55%, transparent); }
.plan .u.dim { opacity: .35; }
.plan .u.tgt { stroke: var(--ink); stroke-width: 2.4px; }
.plan .ping { fill: none; stroke: var(--crit); stroke-width: 2.5px; vector-effect: non-scaling-stroke; animation: ping 1.4s ease-out infinite; transform-box: fill-box; transform-origin: center; }
@keyframes ping { 0% { opacity: .9; transform: scale(.6); } 100% { opacity: 0; transform: scale(1.6); } }
.steps, .answers, .row { display: flex; gap: 8px; flex-wrap: wrap; }
.big { flex: 1; min-height: 52px; border-radius: 12px; border: 1px solid var(--line); background: var(--card); color: var(--ink); font: 600 15.5px system-ui, sans-serif; padding: 0 12px; }
.big.on { background: var(--ink); color: var(--card); }
.big:disabled:not(.on) { opacity: .45; }
.ghost { flex: 1; min-height: 44px; border-radius: 12px; border: 1px dashed var(--line); background: none; color: var(--ink2); font: inherit; }
.log { margin: 0; padding-left: 20px; color: var(--ink2); font-size: 13.5px; }
.ch { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 8px; }
.ch li { display: flex; align-items: center; gap: 8px; }
.ch small { color: var(--muted); }
.scopes { width: 100%; border-collapse: collapse; font-size: 14px; background: var(--card); border-radius: 12px; overflow: hidden; }
.scopes th, .scopes td { text-align: left; padding: 8px 10px; border-bottom: 1px solid var(--line); }
.scopes th { color: var(--muted); font-weight: 600; font-size: 12.5px; }
.tabs { position: fixed; left: 0; right: 0; bottom: 0; display: flex; background: var(--card); border-top: 1px solid var(--line); padding-bottom: env(safe-area-inset-bottom); z-index: 5; }
.tabs a { flex: 1; display: flex; flex-direction: column; align-items: center; gap: 2px; padding: 8px 0 10px; color: var(--muted); text-decoration: none; font-size: 12px; }
.tabs a.on { color: var(--brand); }
.tabs[hidden] { display: none; }
[hidden] { display: none !important; }
/* связь и очередь */
.netst { font-size: 11.5px; color: var(--cold); background: color-mix(in srgb, var(--cold) 12%, var(--card)); border-radius: 6px; padding: 2px 7px; white-space: nowrap; }
.netst.off { color: #fff; background: var(--crit); }
.toasts { position: fixed; left: 50%; transform: translateX(-50%); bottom: calc(84px + env(safe-area-inset-bottom)); z-index: 9; width: min(92vw, 520px);
  display: flex; flex-direction: column; gap: 6px; pointer-events: none; }
.toast { background: var(--ink); color: var(--card); border-radius: 12px; padding: 10px 14px; font-size: 14px; box-shadow: 0 6px 24px rgba(0,0,0,.25);
  white-space: nowrap; overflow: hidden; text-overflow: ellipsis; animation: toast 5s ease forwards; }
@keyframes toast { 0% { opacity: 0; translate: 0 8px; } 6%, 88% { opacity: 1; translate: 0 0; } 100% { opacity: 0; } }
.it-side { flex: none; align-self: center; display: flex; flex-direction: column; align-items: flex-end; gap: 4px; }
.it-side .step { align-self: auto; }
.unread { min-width: 20px; height: 20px; border-radius: 10px; background: var(--brand); color: #fff; font-size: 12px; font-weight: 700; display: inline-grid; place-items: center; padding: 0 6px; }
/* чат по заявке */
.chat { display: flex; flex-direction: column; gap: 6px; max-height: 46vh; overflow-y: auto; background: var(--card); border: 1px solid var(--line); border-radius: 14px; padding: 10px; }
.msg { align-self: flex-start; max-width: 82%; background: var(--bg); border-radius: 14px 14px 14px 4px; padding: 7px 11px; font-size: 14.5px; overflow-wrap: anywhere; }
.msg.mine { align-self: flex-end; background: color-mix(in srgb, var(--cold) 16%, var(--card)); border-radius: 14px 14px 4px 14px; }
.m-who { font-size: 12px; font-weight: 600; color: var(--ink2); }
.m-at { font-size: 11px; color: var(--muted); text-align: right; }
.sys { align-self: center; text-align: center; font-size: 12.5px; color: var(--muted); }
.chat-row { display: flex; gap: 8px; align-items: flex-end; }
.chat-in { flex: 1; min-height: 46px; max-height: 120px; resize: none; border-radius: 12px; border: 1px solid var(--line); background: var(--card); color: var(--ink); font: 16px/1.35 system-ui, sans-serif; padding: 12px; }
.send { width: 52px; height: 46px; flex: none; border: 0; border-radius: 12px; background: var(--brand); color: #fff; font-size: 20px; }
