/* Multiview: client-side tiles over the main screen + layout editor. */
.mv-layer{position:absolute;inset:0;pointer-events:none;z-index:3}
.mv-tile{position:absolute;pointer-events:auto;overflow:hidden;background:#000;border-style:solid;user-select:none;-webkit-user-select:none;
  transition:box-shadow .15s,outline-color .15s;outline:2px solid transparent;outline-offset:1px}
.mv-tile.shadow{box-shadow:0 4px 16px #0006}
.mv-tile video{width:100%;height:100%;display:block;background:#000}
.mv-tile .mv-nosig{position:absolute;inset:0;display:none;flex-direction:column;align-items:center;justify-content:center;gap:4px;text-align:center;padding:4px;
  font:700 clamp(9px,1.4vw,15px) system-ui,sans-serif;letter-spacing:0;color:#fff;
  background:#151515}
.mv-tile .mv-nosig span{background:#000c;padding:3px 8px;border:1px solid #fff}
.mv-tile .mv-nosig small{font:11px system-ui,sans-serif;letter-spacing:0;background:#000c;padding:1px 6px}
.mv-tile.off .mv-nosig{display:flex}
.mv-tile .mv-label{position:absolute;left:6px;top:5px;max-width:calc(100% - 12px);font-size:12px;background:#000b;padding:2px 7px;border-radius:4px;
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis;pointer-events:none}
.mv-tile .mv-label b{font-family:system-ui,sans-serif;color:var(--text);margin-right:4px}
.mv-tile .mv-label i{font-style:normal;color:#fff;background:#333;border-radius:3px;padding:0 4px;margin-left:5px;font-size:10px}
.mv-tile .mv-audio{position:absolute;right:6px;top:5px;font-size:12px;background:#000b;padding:1px 6px;border-radius:4px;pointer-events:none;display:none}
.mv-tile.focus .mv-audio{display:block}
.mv-tile.focus{outline-color:var(--ok,#39ff88)}
.mv-tile .mv-chat{position:absolute;left:6px;right:6px;bottom:5px;font-size:11px;line-height:1.35;pointer-events:none;text-shadow:1px 1px 0 #000,0 0 4px #000}
.mv-tile .mv-chat p{margin:0;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}
.mv-tile .mv-chat b{color:var(--text);font-weight:400}
.mv-tile.mini{height:26px!important}
.mv-tile.mini video,.mv-tile.mini .mv-nosig,.mv-tile.mini .mv-chat{display:none!important}
.mv-tile.mini .mv-label{top:4px}
.mv-tile:fullscreen{width:100%!important;height:100%!important;inset:0!important;border:0!important;border-radius:0!important;opacity:1!important}
/* editor affordances */
.mv-layer.editing .mv-tile{touch-action:none;cursor:move}
.mv-layer.editing .mv-tile.locked{cursor:default}
.mv-layer.editing .mv-tile.sel{outline:2px dashed var(--accent,#00e5ff)}
.mv-h{position:absolute;width:18px;height:18px;display:none;z-index:2;background:var(--accent,#00e5ff);border:2px solid #000;border-radius:50%;touch-action:none}
.mv-layer.editing .mv-tile.sel:not(.locked) .mv-h{display:block}
.mv-h.nw{left:-3px;top:-3px;cursor:nwse-resize}.mv-h.ne{right:-3px;top:-3px;cursor:nesw-resize}
.mv-h.sw{left:-3px;bottom:-3px;cursor:nesw-resize}.mv-h.se{right:-3px;bottom:-3px;cursor:nwse-resize}
.mv-lock{position:absolute;right:6px;bottom:5px;font-size:12px;display:none;pointer-events:none}
.mv-layer.editing .mv-tile.locked .mv-lock{display:block}
.mv-grid{position:absolute;inset:0;pointer-events:none;display:none;z-index:2;opacity:.18;
  background-image:linear-gradient(to right,#fff 1px,transparent 1px),linear-gradient(to bottom,#fff 1px,transparent 1px)}
.mv-layer.editing.snap + .mv-grid{display:block}
/* panel */
.mv-panel{background:var(--panel);border:1px solid var(--line);border-radius:4px;padding:10px 12px;display:flex;flex-direction:column;gap:10px}
.mv-bar{display:flex;flex-wrap:wrap;gap:6px;align-items:center}
.mv-bar .sep{width:1px;height:22px;background:var(--line);margin:0 2px}
.mv-bar select,.mv-bar input[type=number]{background:var(--bg);border:1px solid var(--line);color:var(--text);font:inherit;padding:5px 6px;border-radius:6px}
.mv-bar label,.mv-insp label.cb{display:inline-flex;align-items:center;gap:5px;color:var(--dim);font-size:13px}
.mv-warn{color:var(--dim);font-size:12px}
.mv-panel button.k{min-height:34px}
.mv-insp{display:grid;grid-template-columns:repeat(auto-fill,minmax(210px,1fr));gap:8px 14px;border-top:1px solid var(--line);padding-top:10px}
.mv-insp h4{grid-column:1/-1;margin:4px 0 0;font:500 11px system-ui,sans-serif;letter-spacing:0;color:var(--dim)}
.mv-insp label{display:flex;flex-direction:column;gap:3px;font-size:12px;color:var(--dim)}
.mv-insp label.cb{flex-direction:row}
.mv-insp input[type=range]{width:100%;accent-color:var(--accent)}
.mv-insp select,.mv-insp input[type=number],.mv-insp input[type=text]{background:var(--bg);border:1px solid var(--line);color:var(--text);font:inherit;padding:5px 6px;border-radius:6px;width:100%}
.mv-insp .row{grid-column:1/-1;display:flex;flex-wrap:wrap;gap:6px}
.mv-insp .list{grid-column:1/-1;display:flex;flex-wrap:wrap;gap:4px 12px;max-height:120px;overflow:auto}
.mv-empty{color:var(--dim);font-size:13px}
.mv-gallery{display:grid;grid-template-columns:repeat(auto-fill,minmax(170px,1fr));gap:10px}
.mv-gallery .tpl{background:var(--panel2);border:1px solid var(--line);border-radius:8px;padding:6px;color:var(--text);font:inherit;text-align:left;cursor:pointer}
.mv-gallery .tpl:hover{border-color:var(--accent)}
.mv-gallery .tpl b{display:block;margin-top:5px}
.mv-gallery .tpl small{display:block;color:var(--dim);font-size:11px;margin-top:2px}
.mv-help{position:fixed;inset:0;z-index:60;background:#000a;display:flex;align-items:center;justify-content:center;padding:16px}
.mv-help>div{background:var(--panel);border:1px solid var(--accent);border-radius:4px;padding:16px 20px;max-width:560px;width:100%;max-height:90vh;overflow:auto}
.mv-help table{width:100%;border-collapse:collapse;font-size:14px}.mv-help td{padding:4px 6px;border-bottom:1px solid var(--line)}
.mv-help kbd{background:var(--panel2);border:1px solid var(--line);border-radius:4px;padding:1px 6px;font-family:inherit}
.mv-toast{position:fixed;bottom:18px;left:50%;transform:translateX(-50%);background:var(--panel2);border:1px solid var(--accent);padding:8px 14px;border-radius:6px;z-index:61;opacity:0;transition:.3s;pointer-events:none}
.mv-toast.on{opacity:1}
@media (max-width:980px){.mv-h{width:24px;height:24px}.mv-insp{grid-template-columns:1fr 1fr}}
.mv-panel[hidden]{display:none}
