/* 视频舞台与单个视频瓦片 */
#stage{position:absolute;inset:0}
#canvas{position:absolute;inset:calc(78px + var(--sat)) calc(12px + env(safe-area-inset-right,0px)) calc(12px + var(--sab)) calc(12px + env(safe-area-inset-left,0px))}
.fs #canvas{inset:0}
.tile{position:absolute;background:#000;border-radius:16px;overflow:hidden;container-type:size;box-shadow:0 8px 30px rgba(0,0,0,.45);transition:left .35s,top .35s,width .35s,height .35s;cursor:pointer}
.tile video{position:absolute;left:50%;top:50%;width:100%;height:100%;transform:translate(-50%,-50%);object-fit:contain;display:block;transition:transform .3s}
.tile{outline:2px solid transparent;outline-offset:-2px}
.tile.selected{outline-color:var(--accent);transition:outline-color .25s,left .35s,top .35s,width .35s,height .35s}
#app.fs.idle .tile.selected{outline-color:transparent} /* 全屏且工具栏隐藏: 同步隐藏选中边框 */
.tile-label{position:absolute;left:10px;top:10px;max-width:70%;padding:3px 11px;border-radius:999px;font-size:12px;background:rgba(0,0,0,.45);backdrop-filter:blur(10px);color:#fff;opacity:0;transition:opacity .2s;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.tile:hover .tile-label,.tile.show-bar .tile-label{opacity:1}
#empty{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;text-align:center;padding:24px;color:#c9ccd1}
#empty h1{font-size:clamp(30px,7vw,60px);font-weight:700;letter-spacing:.16em;color:#d3d6db;margin:0 0 6px;padding-left:.16em}
#empty p{color:rgba(255,255,255,.5);font-size:15px}
.gh{display:inline-flex;align-items:center;gap:8px;text-decoration:none;font-weight:600;letter-spacing:.06em;color:#e4e6ea}
.gh svg{width:22px;height:22px;fill:currentColor;opacity:.85;transition:opacity .2s}.gh:hover svg{opacity:1}
.gh span{background:var(--grad);-webkit-background-clip:text;background-clip:text;color:transparent}

/* 桌面端: 视频铺满整个窗口，悬浮栏直接盖在画面上方 */
#app.desktop #canvas{inset:0}
#app.desktop .tile{border-radius:0}
