/* Standalone videos (studio/videos.js, migration 015): home, New video, video room, check-ins, pipeline, Spine settings.
   Brand tokens from studio.css (Abyss, Signal Blue, Volt, Foam). */

/* ---------- home ---------- */
.nv-home{display:flex;flex-direction:column;gap:22px}
.nv-head{display:flex;align-items:flex-end;gap:20px;flex-wrap:wrap}
.nv-head .hgreet{margin-top:10px}
.btn.nv-new{min-height:54px;padding:0 26px;font-size:16px;gap:10px;box-shadow:0 10px 28px rgba(47,66,251,.18),inset 0 0 0 1px rgba(7,11,59,.08);transition:transform .15s ease,box-shadow .15s ease}
.btn.nv-new:hover{transform:translateY(-1px);box-shadow:0 14px 34px rgba(47,66,251,.24),inset 0 0 0 1px rgba(7,11,59,.08)}
.btn.nv-new svg,.btn svg{width:18px;height:18px;flex:none}
.btn[disabled]{opacity:.5;cursor:not-allowed;transform:none}
.nv-gate{display:flex;align-items:center;gap:16px;background:var(--volt-soft);border:1px solid #E6EA9E;border-radius:20px;padding:16px 18px;flex-wrap:wrap}
.nv-gate b{color:var(--abyss);font-size:16px}
.nv-gate p{color:var(--ink2);margin-top:2px}
.nv-gate-ic{width:44px;height:44px;border-radius:14px;background:var(--abyss);color:var(--volt);display:grid;place-items:center;flex:none}
.nv-gate-ic svg{width:22px;height:22px}
.nv-stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}
.nv-stat{background:#fff;border:1px solid var(--line);border-radius:18px;padding:16px 18px;text-align:left;display:flex;flex-direction:column;gap:2px;font:inherit;color:inherit;cursor:pointer;transition:border-color .15s,box-shadow .15s}
div.nv-stat{cursor:default}
button.nv-stat:hover{border-color:var(--line2);box-shadow:var(--sh1)}
.nv-stat .n{font-family:var(--wide);font-stretch:125%;font-weight:850;font-size:34px;line-height:1;color:var(--abyss)}
.nv-stat .l{font-size:13.5px;color:var(--muted)}
.nv-stat.hot{background:var(--abyss);border-color:var(--abyss)}
.nv-stat.hot .n{color:var(--volt)}.nv-stat.hot .l{color:#C9CDF2}
.nv-h{font-family:var(--wide);font-stretch:115%;font-weight:800;font-size:15px;letter-spacing:.06em;text-transform:uppercase;color:var(--abyss);margin:0}
.nv-need{display:flex;flex-direction:column;gap:10px}
.nv-needs{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:10px}
.nv-needcard{display:flex;align-items:center;gap:12px;background:#fff;border:1.5px solid var(--blue);border-radius:16px;padding:12px 14px;text-align:left;font:inherit;color:inherit;cursor:pointer;box-shadow:0 6px 18px rgba(47,66,251,.08)}
.nv-needcard:hover{background:var(--blue-soft)}
.nv-needcard b{display:block;color:var(--abyss);font-size:15px}
.nv-needcard .tiny{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.nv-ni{width:38px;height:38px;border-radius:12px;display:grid;place-items:center;flex:none;background:var(--blue-soft);color:var(--blue)}
.nv-ni svg{width:19px;height:19px}
.nv-ni.tone-bad{background:#FFECEB;color:var(--red)}.nv-ni.tone-work{background:var(--sand);color:var(--ink2)}
.nv-go{font-size:24px;color:var(--blue);line-height:1}
.nv-sec{display:flex;flex-direction:column;gap:14px}
.nv-sech{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;padding-bottom:12px;border-bottom:1px solid var(--line)}
.nv-filters{gap:6px}
.nv-none{padding:8px 2px}

/* video cards */
.nv-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:16px}
.nv-card{display:flex;flex-direction:column;gap:10px;background:none;border:0;padding:0;text-align:left;font:inherit;color:inherit;cursor:pointer;min-width:0}
.nv-thumb{position:relative;aspect-ratio:4/5;border-radius:18px;overflow:hidden;background:var(--sand);box-shadow:var(--sh1);transition:transform .18s ease,box-shadow .18s ease}
.nv-card:hover .nv-thumb{transform:translateY(-2px);box-shadow:var(--sh2)}
.nv-card:focus-visible{outline:none}.nv-card:focus-visible .nv-thumb{outline:3px solid var(--blue);outline-offset:3px}
.nv-thumb img,.nv-thumb .nv-frame{width:100%;height:100%;object-fit:cover;display:block;pointer-events:none;background:var(--abyss)}
.nv-ph{position:absolute;inset:0;display:grid;place-items:center;color:#fff;background:linear-gradient(155deg,#121B6E 0%,#070B3B 70%)}
.nv-ph svg{width:34px;height:34px;opacity:.85;position:relative;z-index:1}
.nv-ph.k-ready,.nv-ph.k-done{background:linear-gradient(155deg,#2F42FB,#121B6E)}
.nv-ph.k-stopped{background:linear-gradient(155deg,#3A1013,#1A0709)}
.nv-ph.k-paused{background:linear-gradient(155deg,#E9E3D6,#CFC8BA);color:var(--ink2)}
.nv-ph.k-check{background:linear-gradient(155deg,#2F42FB,#070B3B);color:var(--volt)}
.nv-ph.k-script,.nv-ph.k-waiting{background:linear-gradient(155deg,#E9E3D6,#D6D0C3);color:var(--abyss)}
.nv-pulse{position:absolute;width:76px;height:76px;border-radius:50%;background:radial-gradient(circle,rgba(219,229,88,.55),rgba(219,229,88,0) 70%);animation:nvpulse 1.8s ease-in-out infinite}
@keyframes nvpulse{0%,100%{transform:scale(.7);opacity:.6}50%{transform:scale(1.25);opacity:1}}
.nv-pill{display:inline-flex;align-items:center;gap:6px;border-radius:999px;padding:4px 10px;font-size:12px;font-weight:700;white-space:nowrap;background:#fff;color:var(--ink2);box-shadow:0 1px 2px rgba(7,11,59,.12)}
.nv-thumb .nv-pill{position:absolute;top:10px;left:10px;max-width:calc(100% - 20px);overflow:hidden;text-overflow:ellipsis}
.nv-pill::before{content:"";width:7px;height:7px;border-radius:50%;background:currentColor;flex:none}
.nv-pill.tone-you{background:var(--blue);color:#fff}
.nv-pill.tone-work{background:#fff;color:var(--ink2)}
.nv-pill.tone-work::before{background:var(--volt-ink);animation:nvblink 1.4s ease-in-out infinite}
.nv-pill.tone-ok{background:var(--volt);color:var(--abyss)}
.nv-pill.tone-bad{background:#FFECEB;color:var(--red)}
.nv-pill.tone-mute{background:var(--sand);color:var(--ink2)}
.nv-ni.tone-mute{background:var(--sand);color:var(--ink2)}
@keyframes nvblink{50%{opacity:.25}}
.nv-dur{position:absolute;bottom:10px;right:10px;background:rgba(7,11,59,.7);color:#fff;font-size:11.5px;font-weight:700;border-radius:8px;padding:2px 7px}
.nv-prev{position:absolute;bottom:10px;right:10px;background:#FFF0DB;color:#6B3D00;font-size:11px;font-weight:800;letter-spacing:.06em;text-transform:uppercase;border-radius:8px;padding:2px 7px}
.nv-cb{display:flex;flex-direction:column;gap:6px;padding:0 2px}
.nv-t{color:var(--abyss);font-size:15px;line-height:1.3;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}

/* the five steps */
.nv-steps{display:grid;grid-template-columns:repeat(5,1fr);gap:4px}
.nv-steps span{display:flex;flex-direction:column;gap:6px;min-width:0}
.nv-steps i{height:5px;border-radius:99px;background:var(--line2)}
.nv-steps b{font-size:11.5px;font-weight:650;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.nv-steps .done i{background:var(--abyss)}.nv-steps .done b{color:var(--ink2)}
.nv-steps .now i{background:linear-gradient(90deg,var(--blue) 0%,var(--blue) 50%,#9BA5FF 50%,#9BA5FF 100%);background-size:200% 100%;animation:nvbar 1.6s linear infinite}
.nv-steps .now b{color:var(--blue)}
@keyframes nvbar{from{background-position:100% 0}to{background-position:0 0}}
.nv-steps.mini{gap:3px}
.nv-steps.mini span{height:4px;border-radius:99px;background:var(--line2)}
.nv-steps.mini .done{background:var(--abyss)}.nv-steps.mini .now{background:var(--blue)}

/* empty */
.nv-empty{display:flex;flex-direction:column;align-items:center;text-align:center;gap:10px;padding:48px 20px;border:1.5px dashed var(--line2);border-radius:24px;background:#fff}
.nv-empty h3{font-family:var(--wide);font-stretch:125%;font-weight:850;text-transform:uppercase;color:var(--abyss);margin:0;font-size:22px}
.nv-empty p{max-width:420px}
.nv-empty-ic{width:56px;height:56px;border-radius:18px;background:var(--abyss);color:var(--volt);display:grid;place-items:center}
.nv-empty-ic svg{width:28px;height:28px}

/* ---------- sheets (fields, selects and textareas look the same everywhere: studio/ds.css) ---------- */
.sheet.nv-sheet{max-width:760px;padding:0;gap:0;border-radius:28px}
.sheet.nv-sheet.nv-roomsheet{max-width:1000px}
.nv-form,.nv-check{display:flex;flex-direction:column;gap:22px;padding:28px 30px 0}
.nv-sh{display:flex;align-items:flex-start;justify-content:space-between;gap:16px}
.nv-sh .muted{margin-top:6px;max-width:520px}
.nv-title{font-size:clamp(28px,4vw,40px);text-transform:uppercase;margin-top:6px}
.nv-x{width:40px;height:40px;border-radius:50%;border:0;background:var(--foam);color:var(--abyss);display:grid;place-items:center;cursor:pointer;flex:none}
.nv-x:hover{background:var(--sand)}.nv-x svg{width:18px;height:18px}
.nv-blk{display:flex;flex-direction:column;gap:10px}
.nv-lab{font-weight:750;font-size:14.5px;color:var(--abyss)}
.nv-lab.sm{font-size:13px;font-weight:700;color:var(--ink2)}

.nv-f{display:flex;flex-direction:column;gap:6px}
.nv-f>span{font-size:13px;font-weight:700;color:var(--ink2)}
.nv-seg{display:grid;grid-auto-flow:column;grid-auto-columns:1fr;background:var(--foam);border:1px solid var(--line);border-radius:16px;padding:4px;gap:4px}
.nv-seg button{display:flex;align-items:center;justify-content:center;gap:8px;min-height:46px;border:0;border-radius:12px;background:none;font-weight:700;font-size:14.5px;color:var(--ink2);cursor:pointer}
.nv-seg button svg{width:17px;height:17px}
.nv-seg button[aria-checked="true"]{background:#fff;color:var(--abyss);box-shadow:0 1px 3px rgba(7,11,59,.12),0 0 0 1.5px var(--abyss)}
.nv-seg.sm{display:inline-grid}.nv-seg.sm button{min-height:36px;padding:0 14px;font-size:13.5px}

.nv-chips{display:flex;flex-wrap:wrap;gap:8px}
.nv-chip{display:inline-flex;align-items:center;gap:6px;border:1.5px solid var(--line2);border-radius:999px;padding:8px 15px;background:#fff;font-weight:650;font-size:14px;color:var(--ink2);cursor:pointer;font-family:inherit}
.nv-chip svg{width:15px;height:15px}
.nv-chip.sm{padding:6px 13px;font-size:13.5px}
.nv-chip:hover{border-color:var(--abyss)}
.nv-chip[aria-checked="true"],.nv-chip[aria-pressed="true"]{background:var(--abyss);border-color:var(--abyss);color:#fff}

.nv-sub{display:flex;flex-direction:column;gap:8px;padding:12px 14px;background:var(--foam);border-radius:14px}
.nv-cks{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}
.nv-ck{position:relative;display:flex;flex-direction:column;align-items:flex-start;gap:6px;text-align:left;border:1.5px solid var(--line2);border-radius:18px;padding:16px;background:#fff;font:inherit;color:var(--ink2);cursor:pointer}
.nv-ck b{color:var(--abyss);font-size:15px}
.nv-ck .tiny{line-height:1.4}
.nv-ck-ic{width:36px;height:36px;border-radius:11px;display:grid;place-items:center;background:var(--foam);color:var(--abyss)}
.nv-ck-ic svg{width:18px;height:18px}
.nv-ck[aria-checked="true"]{border-color:var(--blue);box-shadow:0 0 0 1.5px var(--blue);background:var(--blue-soft)}
.nv-ck[aria-checked="true"] .nv-ck-ic{background:var(--blue);color:#fff}
.nv-def{position:absolute;top:12px;right:12px;font-size:10.5px;font-weight:800;letter-spacing:.08em;text-transform:uppercase;color:var(--volt-ink);background:var(--volt-soft);border-radius:999px;padding:2px 8px}
.nv-more{border:1px solid var(--line);border-radius:18px;padding:0 16px;background:#fff}
.nv-more summary{list-style:none;cursor:pointer;display:flex;align-items:baseline;gap:10px;flex-wrap:wrap;padding:15px 0;font-weight:750;color:var(--abyss)}
.nv-more summary::-webkit-details-marker{display:none}
.nv-more summary::before{content:"+";font-family:var(--wide);font-size:18px;color:var(--blue);width:14px}
.nv-more[open] summary::before{content:"–"}
.nv-more[open]{padding-bottom:16px}
.nv-more>.nv-f{margin-top:12px}
.nv-grid2{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
.nv-teamrow{border:1.5px dashed #B7A300;background:rgba(219,229,88,.12);border-radius:18px;padding:14px 16px}
.nv-tag{align-self:flex-start;font-size:10.5px;font-weight:800;letter-spacing:.12em;text-transform:uppercase;color:#6A5E00}
.nv-stepper{display:inline-flex;align-items:center;gap:10px}
.nv-stepper button{width:34px;height:34px;border-radius:50%;border:1.5px solid var(--line2);background:#fff;font-size:18px;font-weight:700;cursor:pointer;color:var(--abyss)}
.nv-stepper button[disabled]{opacity:.35;cursor:not-allowed}
.nv-stepper b{min-width:18px;text-align:center;font-size:17px;color:var(--abyss)}
.nv-test{background:var(--blue-soft);color:var(--abyss);border-radius:14px;padding:10px 14px}
.nv-foot{position:sticky;bottom:0;margin:4px -30px 0;padding:16px 30px calc(18px + env(safe-area-inset-bottom,0px));background:linear-gradient(180deg,rgba(255,255,255,.85),#fff 30%);border-top:1px solid var(--line);display:grid;grid-template-columns:1fr auto;align-items:center;gap:6px 16px}
.nv-foot #nv-err:empty{display:none}
.nv-foot #nv-err{grid-column:1/-1;order:-1}
.nv-go-btn{min-height:54px;padding:0 30px;font-size:16px}
.nv-bad{color:var(--red)!important}
.nv-skel{display:inline-block;width:110px;height:38px;border-radius:999px;background:linear-gradient(90deg,var(--foam),var(--sand),var(--foam));background-size:200% 100%;animation:nvbar 1.2s linear infinite}
.nv-spin{width:16px;height:16px;border-radius:50%;border:2.5px solid rgba(255,255,255,.35);border-top-color:#fff;animation:nvspin .7s linear infinite;display:inline-block}
.nv-spin.dark{border-color:var(--line2);border-top-color:var(--abyss)}
@keyframes nvspin{to{transform:rotate(360deg)}}
.nv-loading{display:flex;align-items:center;gap:10px;color:var(--muted);padding:24px 0 30px}

/* ---------- video room ---------- */
.nv-room{display:grid;grid-template-columns:minmax(0,1.05fr) minmax(0,1fr);min-height:min(640px,80vh)}
.nv-stage{background:var(--abyss);display:grid;place-items:center;padding:20px;border-radius:28px 0 0 28px}
.nv-player{width:100%;max-height:72vh;aspect-ratio:9/16;object-fit:contain;background:#000;border-radius:18px}
.nv-player.sm{max-height:52vh}
.nv-making{display:flex;flex-direction:column;align-items:center;text-align:center;gap:14px;color:#C9CDF2;width:100%;max-width:440px}
.nv-making .nv-steps{width:100%}
.nv-making .nv-steps b{font-size:11px;overflow:visible;text-overflow:clip}
.nv-making b{color:#fff;font-size:18px}
.nv-making .nv-steps b{color:#8E92C2}.nv-making .nv-steps .now b{color:var(--volt)}
.nv-making .nv-steps i{background:#232B78}.nv-making .nv-steps .done i{background:var(--volt)}
.nv-orb{position:relative;width:96px;height:96px;border-radius:50%;display:grid;place-items:center;background:#121B6E;color:var(--volt)}
.nv-orb svg{width:38px;height:38px;position:relative;z-index:1}
.nv-orb .nv-pulse{width:120px;height:120px}
.nv-orb.k-stopped{background:#3A1013;color:#FFB4B4}
.nv-orb.k-paused{background:var(--sand);color:var(--ink2)}
.btn.nv-del{color:var(--red)}
.nv-side{padding:24px 26px 26px;display:flex;flex-direction:column;gap:16px;min-width:0}
.nv-rt{font-family:var(--wide);font-stretch:125%;font-weight:850;text-transform:uppercase;letter-spacing:-.02em;line-height:1;color:var(--abyss);font-size:clamp(24px,3vw,32px);margin:0}
.nv-facts{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin:0}
.nv-facts div{background:var(--foam);border-radius:12px;padding:9px 12px;min-width:0}
.nv-facts dt{font-size:11px;font-weight:800;letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}
.nv-facts dd{margin:2px 0 0;font-size:14px;font-weight:650;color:var(--abyss);overflow-wrap:anywhere}
.nv-script{border:1px solid var(--line);border-radius:14px;padding:0 14px}
.nv-script summary{cursor:pointer;padding:12px 0;font-weight:700;color:var(--abyss)}
.nv-script p{white-space:pre-wrap;font-size:14.5px;color:var(--ink2);padding-bottom:14px}
.nv-acts{display:flex;flex-wrap:wrap;gap:10px;margin-top:auto}
.nv-acts .btn{flex:1 1 auto}
.nv-teamacts{display:flex;flex-wrap:wrap;gap:8px;align-items:center;border-top:1px dashed var(--line2);padding-top:14px}
.nv-teamacts .nv-tag{margin-right:4px;align-self:center}

/* ---------- check-in room ---------- */
.nv-check{padding-bottom:26px}
.nv-lines{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:8px}
.nv-lines li{background:var(--foam);border-radius:12px;padding:10px 14px;font-size:15.5px;line-height:1.5;color:var(--ink)}
.nv-lines li span{display:block;font-size:11px;font-weight:800;letter-spacing:.08em;text-transform:uppercase;color:var(--blue);margin-bottom:2px}
.nv-lines li span:empty{display:none}
.nv-opts{display:grid;gap:12px}
.nv-opt{display:flex;flex-direction:column;gap:12px;text-align:left;border:1.5px solid var(--line2);border-radius:20px;padding:16px;background:#fff;font:inherit;color:inherit;cursor:pointer}
.nv-opt[aria-checked="true"]{border-color:var(--blue);box-shadow:0 0 0 1.5px var(--blue)}
.nv-opt-h b{display:block;color:var(--abyss);font-size:16px}
.nv-board{display:grid;grid-template-columns:minmax(0,.8fr) minmax(0,1fr);gap:18px;align-items:start}
.nv-board .nv-making{color:var(--muted)}
.nv-takes{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:12px}
.nv-takes figure{margin:0;display:flex;flex-direction:column;gap:6px}
.nv-takes video{width:100%;aspect-ratio:9/16;object-fit:cover;border-radius:14px;background:#000}
.nv-decide{position:sticky;bottom:0;margin:0 -30px -26px;padding:16px 30px calc(20px + env(safe-area-inset-bottom,0px));background:linear-gradient(180deg,rgba(255,255,255,.9),#fff 24%);border-top:1px solid var(--line);display:flex;flex-direction:column;gap:12px}
.nv-decide .btn{flex:1 1 auto}
.nv-decide textarea{min-height:52px}
.nv-redo{border:0;margin:0;padding:0;display:flex;flex-direction:column;gap:6px}.nv-redo legend{font-weight:700;color:var(--ink2);margin-bottom:2px}.nv-redo label{display:flex;gap:8px;align-items:flex-start;cursor:pointer}.nv-redo input{margin-top:3px;accent-color:var(--blue)}

/* ---------- pipeline ---------- */
.nv-pipe-head{display:flex;align-items:flex-end;justify-content:space-between;gap:20px;flex-wrap:wrap;margin-bottom:24px}
.nv-pipe{background:#fff;border:1px solid var(--line);border-radius:22px;overflow:hidden}
.nv-prow{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(0,1.6fr) auto;align-items:center;gap:20px;width:100%;padding:16px 20px;border:0;border-bottom:1px solid var(--line);background:none;text-align:left;font:inherit;color:inherit;cursor:pointer}
.nv-prow:last-child{border-bottom:0}
.nv-prow:hover{background:var(--foam)}
.nv-pt b{display:block;color:var(--abyss);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}

@media (max-width:960px){
 .nv-stats{grid-template-columns:repeat(2,minmax(0,1fr))}
 .nv-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
 .btn.nv-new{width:100%}
 .nv-form,.nv-check{padding:22px 18px 0}
 .nv-decide{margin:0 -18px -26px;padding:14px 18px calc(16px + env(safe-area-inset-bottom,0px))}
 .nv-foot{margin:4px -18px 0;padding:14px 18px calc(16px + env(safe-area-inset-bottom,0px));grid-template-columns:1fr}
 .nv-go-btn,.nv-foot .btn{width:100%}
 .nv-cks{grid-template-columns:minmax(0,1fr)}
 .nv-grid2{grid-template-columns:minmax(0,1fr)}
 .nv-room{grid-template-columns:minmax(0,1fr)}
 .nv-stage{border-radius:28px 28px 0 0;padding:14px}
 .nv-player{max-height:56vh}
 .nv-board{grid-template-columns:minmax(0,1fr)}
 .nv-prow{grid-template-columns:minmax(0,1fr) auto}
 .nv-prow .nv-pbar{grid-column:1/-1;order:3}
 .scrim.mob .sheet.nv-sheet{border-radius:28px 28px 0 0;max-height:94vh;padding:0}
}
@media (prefers-reduced-motion:reduce){.nv-pulse,.nv-steps .now i,.nv-pill.tone-work::before,.nv-skel,.nv-spin{animation:none}.nv-thumb,.btn.nv-new{transition:none}}

