/* daily.css — Рапорт по заказчикам, сводка дня, реестры и связи между вкладками. Порядок подключения файлов задан в app/web.py (CSS_FILES) и важен для каскада. */
/* ---------- рапорт: секция заказчика ---------- */
.cust{margin-bottom:22px;overflow:hidden}
.cust .ch{display:flex;align-items:center;gap:14px;padding:13px 20px;background:var(--brand);color:#fff;flex-wrap:wrap}
.cust .ch h3{margin:0;font-size:15px;font-weight:800;letter-spacing:.04em;text-transform:uppercase}
.cust .ch .t{font-size:13.5px;color:rgba(255,255,255,.85);display:inline-flex;align-items:center;gap:6px}
.cust .ch .r{margin-left:auto;display:flex;gap:8px;align-items:center;flex-wrap:wrap;justify-content:flex-end}
.cust .ch .pill{background:rgba(255,255,255,.16);color:#fff}
.cust .ch .pill.bad{background:var(--red)}
.fleet{display:grid;grid-template-columns:repeat(auto-fill,minmax(290px,1fr));gap:12px;padding:16px 20px;border-bottom:1px solid var(--line2);background:var(--surface2)}
.fl{border:1px solid var(--line2);border-radius:12px;padding:12px 14px 12px 16px;background:var(--surface);position:relative;box-shadow:var(--shadow)}
.fl.off{opacity:.9}
.fl .fh{display:flex;align-items:center;gap:10px;margin-bottom:8px;padding-right:72px;flex-wrap:wrap}
.fl .fh b{font-size:16px;font-weight:800}
.fl .crew{display:grid;grid-template-columns:auto 1fr;gap:3px 12px;font-size:14px;line-height:1.4}
.fl .crew .k{color:var(--ink3);font-size:12.5px;white-space:nowrap;padding-top:1px}
.fl .crew .v{color:var(--ink);font-weight:600}
.fl .crew .v.none{color:var(--ink3);font-weight:400}
.fl .crew-note{margin-top:6px;font-size:13px;color:var(--ink2)}
.fl .tech{margin-top:10px;display:flex;gap:6px;flex-wrap:wrap}
.fl .reason{margin-top:8px;font-size:13px;color:var(--bad);background:var(--bad-soft);border-radius:6px;padding:5px 8px;font-weight:500}
.fl.off .reason{color:var(--ink2);background:var(--muted-soft)}
.fl .stripe{position:absolute;left:0;top:0;bottom:0;width:4px;border-radius:12px 0 0 12px;background:var(--ok)}
.fl.rep .stripe{background:var(--bad)}.fl.off .stripe{background:var(--ink3)}
.fl .edit{all:unset;position:absolute;right:10px;top:10px;cursor:pointer;color:var(--brand);font-size:13px;font-weight:600;padding:3px 8px;border-radius:6px;border:1px solid transparent}
.fl .edit:hover{background:var(--brand-soft);border-color:var(--brand-soft)}
.subh{padding:14px 20px 6px;font-size:11.5px;text-transform:uppercase;letter-spacing:.08em;color:var(--ink3);font-weight:700}
.add{display:flex;align-items:center;gap:16px;padding:10px 20px 14px}
.add button{all:unset;color:var(--brand);font-weight:700;cursor:pointer;font-size:14px}
.add button:hover{text-decoration:underline}
.lnk{all:unset;color:var(--brand);cursor:pointer;font-size:13.5px;font-weight:700}
.lnk:hover{text-decoration:underline}

/* ---------- сводка дня ---------- */
.ov-top{margin-bottom:6px;align-items:stretch}
.summary{padding:12px 20px 18px}
.summary p{margin:0 0 9px;font-size:16px;line-height:1.55;color:var(--ink)}
.summary p:last-of-type{margin-bottom:0}
.summary b{font-weight:800;color:var(--brand)}
.summary .okline{color:var(--ok);font-weight:700}
.summary .meta{margin-top:14px;padding-top:12px;border-top:1px solid var(--line2);font-size:13px;color:var(--ink3)}
.summary .meta .warn,.frow .warn,.tl .warn{color:var(--warn);font-weight:700}
.attn{padding:8px 0 6px}
.attn .it{display:flex;gap:12px;padding:10px 20px;align-items:flex-start}
.attn .it+.it{border-top:1px solid var(--line2)}
.attn .dot{width:10px;height:10px;border-radius:50%;flex:none;margin-top:7px;background:var(--ink3)}
.attn .bad .dot{background:var(--bad)}.attn .warn .dot{background:var(--warn)}
.attn .it b{display:block;font-size:14.5px;line-height:1.4;font-weight:700}
.attn .it span{color:var(--ink2);font-size:13.5px;display:block;margin-top:2px}
.attn .none{padding:14px 20px 12px;color:var(--ok);font-weight:700;font-size:15px}
.frows{overflow:hidden}
.frows .fh-row,.frow{display:grid;grid-template-columns:118px 112px 124px minmax(240px,1fr) 200px 190px;gap:14px;padding:12px 20px;align-items:start}
.frows .fh-row{font-size:11.5px;text-transform:uppercase;letter-spacing:.06em;color:var(--ink3);font-weight:700;background:var(--surface2);border-bottom:1px solid var(--line);border-top:1px solid var(--line2);margin-top:12px;padding:10px 20px}
.frow{border-bottom:1px solid var(--line2);border-left:4px solid var(--ok);font-size:14px}
.frow:last-child{border-bottom:0;border-radius:0 0 14px 14px}
.frow.rep{border-left-color:var(--bad)}
.frow.off{border-left-color:var(--ink3);background:var(--surface2)}
.frow.off .id b{color:var(--ink2)}
.frow .id b{display:block;font-size:16px;font-weight:800}
.frow .id span{color:var(--ink3);font-size:13px}
.frow .cu{font-weight:600;padding-top:2px;color:var(--ink2)}
.frow .job div{margin-bottom:5px;line-height:1.45}
.frow .job div:last-child{margin-bottom:0}
.frow .job .mono{color:var(--brand);margin-right:8px;font-size:13px;font-weight:600}
.frow .crew b{font-weight:700}
.frow .crew small{color:var(--ink3);margin-left:6px;font-size:12px}
.frow .crew .muted{font-size:13px;margin-top:2px}
.frow .crew i{color:var(--ink3)}
.frow .tech{display:flex;flex-wrap:wrap;gap:5px}
.tl{padding:6px 0 4px}
.tl .it{display:grid;grid-template-columns:64px 1fr auto;gap:14px;padding:12px 20px;align-items:start}
.tl .it+.it{border-top:1px solid var(--line2)}
.tl .t{font-family:"JetBrains Mono",monospace;font-size:14px;color:var(--brand);font-weight:600;padding-top:2px;font-variant-numeric:tabular-nums}
.tl b{font-size:14.5px;font-weight:700}
.tl .d{color:var(--ink2);font-size:13.5px;margin-top:3px;line-height:1.5}
.tl-day{padding:12px 20px 6px;font-size:12px;text-transform:uppercase;letter-spacing:.06em;color:var(--brand);font-weight:700;background:var(--brand-band);border-top:1px solid var(--line2);margin-top:6px}
.tl .it.up .t{color:var(--ink3)}
.btn.danger{color:var(--bad);border-color:var(--bad-soft);background:var(--bad-soft)}
.btn.danger:hover{background:var(--bad);color:#fff;border-color:var(--bad)}
.dlg .ft .sp{flex:1}
.legend-box{padding:14px 20px;font-size:13.5px;color:var(--ink2);line-height:1.55;background:var(--surface2)}
.legend-box b{color:var(--ink)}
.todo{background:var(--warn-soft);color:var(--warn);border-radius:10px;padding:10px 16px;font-size:14px;margin-bottom:16px;line-height:1.5;border:1px solid rgba(180,83,9,.2)}
.todo b{margin-right:4px}

/* ---------- реестры и связи между вкладками ---------- */
.lnk-reg{cursor:pointer;color:var(--brand);border-color:var(--brand-soft);background:var(--brand-soft)}
.lnk-reg:hover{border-color:var(--brand)}
.lnk-reg.st-warn{color:var(--warn);background:var(--warn-soft);border-color:transparent}
.lnk-reg.st-bad{color:var(--bad);background:var(--bad-soft);border-color:transparent}
.lnk-name{all:unset;cursor:pointer;color:inherit;border-bottom:1px dotted var(--brand);font:inherit}
.lnk-name:hover{color:var(--brand)}
.attn .it.go{cursor:pointer}
.attn .it.go:hover{background:var(--surface2)}
.attn .arr{margin-left:auto;color:var(--ink3);font-size:20px;line-height:1;padding-top:2px}
.pchip{display:inline-flex;gap:4px;align-items:center;font-size:11.5px;border-radius:6px;padding:2px 7px;margin:2px 4px 2px 0;background:var(--ok-soft);color:var(--ok);white-space:nowrap}
.pchip.warn{background:var(--warn-soft);color:var(--warn)}
.pchip.bad{background:var(--bad-soft);color:var(--bad)}
td.wrap{white-space:normal;min-width:180px;line-height:1.4}
#staff td:first-child{min-width:210px}
#tech td:nth-child(3){min-width:150px}
tr.row-bad td:first-child{box-shadow:inset 3px 0 0 var(--bad)}
tr.row-warn td:first-child{box-shadow:inset 3px 0 0 var(--warn)}
.soon.live{border-style:solid;background:var(--surface);box-shadow:var(--shadow)}
.soon .nums{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin:10px 0}
.soon .nums div{background:var(--surface2);border-radius:8px;padding:8px 6px;text-align:center}
.soon .nums b{display:block;font-size:20px;font-weight:800;letter-spacing:-.02em}
.soon .nums span{font-size:11px;color:var(--ink3)}
.soon .nums .ok b{color:var(--ok)}.soon .nums .warn b{color:var(--warn)}.soon .nums .bad b{color:var(--bad)}
.soon .st{display:flex;gap:12px;align-items:center}

