/* 配信君 ― 配信サイト（直伝スタッフ・主催者が作業する画面）の見た目
   決まり：docs/UIの決まり_v1.md（色・文字・形・ボタン・余白）。この数値どおりに作る。
   ・色は下の変数（--lv-*）だけを使う。明るい表示・暗い表示の両方を持つ
   ・「選んでいる場所（タブ・切り替え）」＝塗らない・太字＋金の下線 3px／「実行するボタン」＝塗り、または枠つきの箱
   ・状態の印（チップ）は、押せるように見せない（枠なし・影なし）
   ・文字は 15px（最小 13px）。太さは 400 と 700 だけ
   ★base.html（管理君）は書き換えない。このファイルは配信サイトの外枠（live_site/base.html）で読み込み、.lv と .ls-* の中だけを整える */
:root{
  --lv-bg:#F4F5F7; --lv-card:#FFFFFF; --lv-ink:#1A2233; --lv-sub:#4A5568; --lv-line:#D9DEE6; --lv-line2:#B8C0CC;
  --lv-navy:#14284B; --lv-navy-h:#1F3A68;
  --lv-head:#14284B;                                  /* 見出しの文字・選んでいるタブの文字 */
  --lv-accent:#14284B; --lv-accent-h:#1F3A68; --lv-accent-ink:#FFFFFF; --lv-accent-soft:#E6EDF7;   /* 実行するボタン（主） */
  --lv-btn-line:#14284B; --lv-btn-ink:#14284B;        /* 実行するボタン（副）の枠と文字 */
  --lv-gold:#A8843A; --lv-gold-ink:#7A5C1E; --lv-gold-soft:#F6F0E2;
  --lv-link:#1B4B8F;
  --lv-blue:#1B4B8F; --lv-blue-soft:#E6EDF7;          /* 受付中・お知らせ */
  --lv-live:#B3261E; --lv-live-soft:#FBEAE8;          /* ライブ中 */
  --lv-od:#1E7B4F; --lv-od-soft:#E4F3EB;              /* 正常・公開中 */
  --lv-prep:#5B6676; --lv-prep-soft:#EEF0F3;          /* 準備中・終了 */
  --lv-sun:#8A5A00; --lv-sun-soft:#FFF4DB; --lv-sun-ink:#8A5A00;   /* 注意（黄土） */
  --lv-warn:#8A5A00; --lv-warn-soft:#FFF4DB;
  --lv-danger:#B3261E; --lv-danger-soft:#FBEAE8; --lv-danger-fill:#B3261E; --lv-danger-line:#B3261E;
  --lv-top:#14284B; --lv-top-ink:#FFFFFF; --lv-top-gold:#C9A961;
  --lv-field:#FFFFFF; --lv-hover:#F4F5F7; --lv-off:#EEF0F3;
  --lv-radius:8px; --lv-radius-sm:6px;
  --lv-shadow:none; --lv-pop:0 8px 24px rgba(16,24,40,.18);
  --lv-font:"Hiragino Sans","Hiragino Kaku Gothic ProN","Yu Gothic UI","Meiryo",system-ui,sans-serif;
  --lv-mono:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;
  /* グラフの色（アンケート・リアクションの棒と円）。決まりの色と、その同系の薄い色だけ */
  --lv-c1:#14284B; --lv-c2:#A8843A; --lv-c3:#1E7B4F; --lv-c4:#B3261E; --lv-c5:#5B6676;
  --lv-c6:#5E86C4; --lv-c7:#D2B46A; --lv-c8:#74B596; --lv-c9:#D98C85; --lv-c10:#A9B4C6;
}
@media (prefers-color-scheme:dark){
  :root:not([data-theme="light"]){
    --lv-bg:#0E1626; --lv-card:#162036; --lv-ink:#E8ECF4; --lv-sub:#A9B4C6; --lv-line:#2A3650; --lv-line2:#3B4A68;
    --lv-navy:#3A5FA8; --lv-navy-h:#4A70BC;
    --lv-head:#E8ECF4;
    --lv-accent:#3A5FA8; --lv-accent-h:#4A70BC; --lv-accent-ink:#FFFFFF; --lv-accent-soft:#1B2A47;
    --lv-btn-line:#6F8FCB; --lv-btn-ink:#E8ECF4;
    --lv-gold:#D2B46A; --lv-gold-ink:#D2B46A; --lv-gold-soft:#2C2614;
    --lv-link:#8FB4F0;
    --lv-blue:#8FB4F0; --lv-blue-soft:#1B2A47;
    --lv-live:#FF8A80; --lv-live-soft:#3A1C1D;
    --lv-od:#5FD3A0; --lv-od-soft:#143326;
    --lv-prep:#A9B4C6; --lv-prep-soft:#232E44;
    --lv-sun:#F2C46B; --lv-sun-soft:#3A2E12; --lv-sun-ink:#F2C46B;
    --lv-warn:#F2C46B; --lv-warn-soft:#3A2E12;
    --lv-danger:#FF8A80; --lv-danger-soft:#3A1C1D; --lv-danger-fill:#B3261E; --lv-danger-line:#FF8A80;
    --lv-top:#0B1220; --lv-top-ink:#FFFFFF; --lv-top-gold:#D2B46A;
    --lv-field:#0E1626; --lv-hover:#1C2944; --lv-off:#1C2740;
    --lv-pop:0 8px 24px rgba(0,0,0,.5);
    --lv-c1:#8FB4F0; --lv-c2:#D2B46A; --lv-c3:#5FD3A0; --lv-c4:#FF8A80; --lv-c5:#A9B4C6;
    --lv-c6:#4F6FA8; --lv-c7:#8C7436; --lv-c8:#2F8A63; --lv-c9:#B5524A; --lv-c10:#5B6676;
    color-scheme:dark;
  }
}
:root[data-theme="dark"]{
  --lv-bg:#0E1626; --lv-card:#162036; --lv-ink:#E8ECF4; --lv-sub:#A9B4C6; --lv-line:#2A3650; --lv-line2:#3B4A68;
  --lv-navy:#3A5FA8; --lv-navy-h:#4A70BC;
  --lv-head:#E8ECF4;
  --lv-accent:#3A5FA8; --lv-accent-h:#4A70BC; --lv-accent-ink:#FFFFFF; --lv-accent-soft:#1B2A47;
  --lv-btn-line:#6F8FCB; --lv-btn-ink:#E8ECF4;
  --lv-gold:#D2B46A; --lv-gold-ink:#D2B46A; --lv-gold-soft:#2C2614;
  --lv-link:#8FB4F0;
  --lv-blue:#8FB4F0; --lv-blue-soft:#1B2A47;
  --lv-live:#FF8A80; --lv-live-soft:#3A1C1D;
  --lv-od:#5FD3A0; --lv-od-soft:#143326;
  --lv-prep:#A9B4C6; --lv-prep-soft:#232E44;
  --lv-sun:#F2C46B; --lv-sun-soft:#3A2E12; --lv-sun-ink:#F2C46B;
  --lv-warn:#F2C46B; --lv-warn-soft:#3A2E12;
  --lv-danger:#FF8A80; --lv-danger-soft:#3A1C1D; --lv-danger-fill:#B3261E; --lv-danger-line:#FF8A80;
  --lv-top:#0B1220; --lv-top-ink:#FFFFFF; --lv-top-gold:#D2B46A;
  --lv-field:#0E1626; --lv-hover:#1C2944; --lv-off:#1C2740;
  --lv-pop:0 8px 24px rgba(0,0,0,.5);
  --lv-c1:#8FB4F0; --lv-c2:#D2B46A; --lv-c3:#5FD3A0; --lv-c4:#FF8A80; --lv-c5:#A9B4C6;
  --lv-c6:#4F6FA8; --lv-c7:#8C7436; --lv-c8:#2F8A63; --lv-c9:#B5524A; --lv-c10:#5B6676;
  color-scheme:dark;
}

/* ================= 1. 土台（文字・見出し・リンク） ================= */
body:has(.lv){background:var(--lv-bg)}
.lv{color:var(--lv-ink);font-size:15px;line-height:1.5;font-variant-numeric:tabular-nums}
.lv *{box-sizing:border-box}
.lv [hidden]{display:none!important}                 /* hidden 属性は、並べ方の指定（flex／grid）があっても必ず効かせる */
.lv a{color:var(--lv-link)}
.lv h1{font-size:20px;font-weight:700;line-height:1.4;margin:0;color:var(--lv-head)}
.lv h2{font-size:16px;font-weight:700;line-height:1.4;margin:0 0 8px;color:var(--lv-head)}
.lv h3{font-size:15px;font-weight:700;margin:16px 0 6px;padding-top:12px;border-top:1px solid var(--lv-line);color:var(--lv-head)}
.lv b,.lv strong{font-weight:700}
.lv p{margin:0 0 8px}
.lv .lv-kicker{font-size:13px;color:var(--lv-sub)}
.lv .lv-muted{color:var(--lv-sub)}
.lv .lv-small{font-size:13px}
.lv small{font-size:13px}
.lv code{font-family:var(--lv-mono);background:var(--lv-prep-soft);color:var(--lv-ink);padding:1px 6px;border-radius:4px;font-size:13px}
.lv svg{width:14px;height:14px;vertical-align:-2px;flex:none}
.lv details > summary{cursor:pointer}
.lv :focus-visible{outline:2px solid var(--lv-gold);outline-offset:1px}

/* 画面の題のあたり（1〜2行に収める） */
.lv .lv-head{display:flex;flex-wrap:wrap;align-items:center;gap:4px 16px;margin:0 0 8px}
.lv .lv-head > div:first-child{min-width:0}
.lv .lv-head .lv-actions{margin-left:auto;display:flex;gap:8px;flex-wrap:wrap;align-items:center}
.lv .lv-head-line{display:flex;flex-wrap:wrap;align-items:baseline;gap:2px 14px}
.lv .lv-desc{margin:0 0 8px}
/* 番組の見出し：「取引先名　番組名　番組コード」を1行に。パンくず・権限は小さく同じ行の右へ */
.lv .lv-phead{align-items:baseline;gap:2px 16px;margin:0 0 4px}
.lv .lv-phead-main{display:flex;flex-wrap:wrap;align-items:baseline;gap:0 12px;min-width:0}
.lv .lv-pcompany{font-size:16px;font-weight:700;line-height:1.4;overflow-wrap:anywhere}
.lv .lv-pcompany small{font-size:13px;font-weight:400;color:var(--lv-sub)}
.lv h1.lv-ptitle{font-size:20px;line-height:1.4;margin:0;overflow-wrap:anywhere}
.lv .lv-pcode{font-family:var(--lv-mono);font-size:13px;color:var(--lv-sub);white-space:nowrap}
.lv .lv-pmeta{margin-left:auto;font-size:13px;color:var(--lv-sub);display:flex;flex-wrap:wrap;gap:0 14px;align-items:baseline}

/* ================= 2. 面（カード）・お知らせ ================= */
.lv .lv-card{background:var(--lv-card);border:1px solid var(--lv-line);border-radius:var(--lv-radius);padding:12px 16px;margin:0 0 12px}
.lv .lv-card > :last-child{margin-bottom:0}
.lv .lv-note{border-radius:var(--lv-radius-sm);padding:8px 12px;margin:0 0 12px;background:var(--lv-blue-soft);border-left:3px solid var(--lv-blue);font-size:15px}
.lv .lv-note.ok{background:var(--lv-od-soft);border-left-color:var(--lv-od)}
.lv .lv-note.warn{background:var(--lv-warn-soft);border-left-color:var(--lv-warn);color:var(--lv-ink)}
.lv .lv-note.ng{background:var(--lv-danger-soft);border-left-color:var(--lv-danger);color:var(--lv-ink)}
.lv .lv-warn-t{color:var(--lv-warn);font-weight:700}
.lv .lv-why{color:var(--lv-warn);font-weight:700}
.lv .lv-ng-t{color:var(--lv-danger);font-weight:700}
.lv .lv-ok-t{color:var(--lv-od);font-weight:700}

/* ================= 3. ボタン（★いちばん大事） =================
   実行する（副）＝ .lv-btn／実行する（主）＝ .lv-btn.primary／行の中の小さなボタン＝ .lv-btn.sm／止める・消す＝ .danger（最終の実行だけ塗り .ctl-danger） */
.lv .lv-btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;min-height:36px;padding:4px 14px;border-radius:var(--lv-radius-sm);border:1px solid var(--lv-btn-line);
  background:var(--lv-card);color:var(--lv-btn-ink);font:inherit;font-size:15px;font-weight:700;line-height:1.3;text-decoration:none;cursor:pointer;white-space:nowrap}
.lv .lv-btn:hover{background:var(--lv-hover)}
.lv .lv-btn.primary{background:var(--lv-accent);border-color:var(--lv-accent);color:var(--lv-accent-ink)}
.lv .lv-btn.primary:hover{background:var(--lv-accent-h);border-color:var(--lv-accent-h)}
.lv .lv-btn.sm{min-height:30px;padding:2px 8px;font-size:13px;font-weight:400;border-color:var(--lv-line2);color:var(--lv-ink)}
.lv .lv-btn.sm.primary{border-color:var(--lv-accent);color:var(--lv-accent-ink);font-weight:700}
.lv .lv-btn.sun{border-color:var(--lv-btn-line);color:var(--lv-btn-ink)}
.lv .lv-btn.danger,.lv .lv-btn.ctl-clearb,.lv .ctl-clearb{border-color:var(--lv-danger-line);color:var(--lv-danger);background:var(--lv-card)}
.lv .lv-btn.danger:hover,.lv .ctl-clearb:hover{background:var(--lv-danger-soft)}
.lv .lv-btn[disabled],.lv .lv-btn.off{background:var(--lv-off);border-color:var(--lv-line);color:var(--lv-prep);cursor:not-allowed;pointer-events:none}
.lv .lv-btn.primary[disabled],.lv .lv-btn.primary.off{background:var(--lv-off);border-color:var(--lv-line);color:var(--lv-prep)}
/* ライブ配信作業へ進むボタン（一覧の行の中）：目立つ色はここだけ */
.lv .lv-btn.lv-golive{background:var(--lv-accent);border-color:var(--lv-accent);color:var(--lv-accent-ink);font-weight:700}
.lv .lv-btn.lv-golive:hover{background:var(--lv-accent-h)}
.lv .lv-btn.lv-golive.off{background:var(--lv-off);border-color:var(--lv-line);color:var(--lv-prep)}

/* ================= 4. 状態の印（チップ）：薄い地＋同系の濃い文字・丸薬の形。押せるように見せない ================= */
.lv .lv-chip{display:inline-flex;align-items:center;gap:4px;padding:1px 9px;border-radius:999px;font-size:13px;font-weight:700;white-space:nowrap;line-height:1.5;
  background:var(--lv-prep-soft);color:var(--lv-prep);border:0;text-decoration:none}
.lv .lv-chip svg{width:13px;height:13px;flex:none}
.lv .lv-chip.apply{background:var(--lv-blue-soft);color:var(--lv-blue)}
.lv .lv-chip.live{background:var(--lv-live-soft);color:var(--lv-live)}
.lv .lv-chip.live svg{animation:lvPulse 1.4s ease-in-out infinite}
.lv .lv-chip.od{background:var(--lv-od-soft);color:var(--lv-od)}
.lv .lv-chip.prep,.lv .lv-chip.end,.lv .lv-chip.none{background:var(--lv-prep-soft);color:var(--lv-prep)}
.lv .lv-chip.sun,.lv .lv-chip.warn{background:var(--lv-sun-soft);color:var(--lv-sun-ink)}
.lv a.lv-chip{text-decoration:underline;text-underline-offset:2px}     /* 押すと移るチップは、リンクと分かる下線を付ける */
@keyframes lvPulse{0%,100%{opacity:1}50%{opacity:.35}}
@media (prefers-reduced-motion:reduce){.lv .lv-chip.live svg,.lv .lv-num.flash,.lv .ctl-b.next,.lv .ctl-b.next-red{animation:none}}

/* ================= 5. 選んでいる場所（タブ・切り替え）：塗らない。選んでいるものは「太字＋金の下線 3px」 ================= */
/* 番組のタブ（設定・編集／入稿／視聴URL …）。1行。入りきらないときは横に送れる */
.lv .lv-tabs{display:flex;flex-wrap:nowrap;gap:0;margin:0 0 8px;padding:0;border-bottom:1px solid var(--lv-line);overflow-x:auto;overflow-y:hidden;-webkit-overflow-scrolling:touch;scrollbar-width:thin;
  background:linear-gradient(to right,var(--lv-bg) 40%,transparent) 0 0/40px 100% no-repeat local,linear-gradient(to left,var(--lv-bg) 40%,transparent) 100% 0/40px 100% no-repeat local,
    linear-gradient(to right,var(--lv-line2),transparent) 0 0/14px 100% no-repeat scroll,linear-gradient(to left,var(--lv-line2),transparent) 100% 0/14px 100% no-repeat scroll}
.lv .lv-tabs a{flex:none;display:inline-flex;align-items:center;min-height:36px;padding:0 7px;margin-bottom:-1px;border-bottom:3px solid transparent;text-decoration:none;color:var(--lv-sub);font-size:14px;font-weight:400;white-space:nowrap}
.lv .lv-tabs a:hover{color:var(--lv-head);border-bottom-color:var(--lv-line2)}
.lv .lv-tabs a.on{color:var(--lv-head);font-weight:700;border-bottom-color:var(--lv-gold)}
.lv .lv-tabs a.off{color:var(--lv-prep);opacity:.6;pointer-events:none}
/* 「ライブ配信作業」だけは、選んでいなくても太字＋小さな金の印（塗らない） */
.lv .lv-tabs a.lv-golive{color:var(--lv-head);font-weight:700}
.lv .lv-tabs a.lv-golive::before{content:"";width:6px;height:6px;background:var(--lv-gold);margin-right:5px;flex:none}
.lv .lv-tabs a.lv-golive.off{color:var(--lv-prep)}

/* 入力の選択（ラジオ）：丸印は残し、選んでいるものは太字＋金の下線 */
.lv .lv-seg{display:flex;flex-wrap:wrap;gap:0 14px}
.lv .lv-seg label{display:inline-flex;align-items:center;gap:6px;min-height:34px;padding:2px 2px 0;border-bottom:3px solid transparent;cursor:pointer;color:var(--lv-ink);font-weight:400}
.lv .lv-seg input{accent-color:var(--lv-navy);width:16px;height:16px;margin:0}
.lv .lv-seg label:has(input:checked){font-weight:700;color:var(--lv-head);border-bottom-color:var(--lv-gold)}
.lv .lv-seg label.disabled{color:var(--lv-prep);cursor:not-allowed}
.lv .lv-seg.lv-seg-cols{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:0 16px;justify-items:start}
.lv .lv-check{display:inline-flex;align-items:center;gap:8px;min-height:32px;cursor:pointer}
.lv .lv-check input{width:18px;height:18px;accent-color:var(--lv-navy);flex:none;margin:0}

/* 視聴画面のモード（映像のみ／資料＋映像／資料のみ）など、押して切り替えるもの：下線のタブ */
.lv .ctl-layout{display:flex;flex-wrap:wrap;gap:4px 4px;align-items:center;margin-top:12px;padding-top:10px;border-top:1px solid var(--lv-line)}
.lv .ctl-layout .l{font-size:13px;font-weight:700;color:var(--lv-sub);margin-right:8px}
.lv .lv-btn[data-layout]{min-height:36px;padding:0 10px;border:0;border-bottom:3px solid transparent;border-radius:0;background:transparent;color:var(--lv-sub);font-size:15px;font-weight:400}
.lv .lv-btn[data-layout]:hover{background:transparent;color:var(--lv-head);border-bottom-color:var(--lv-line2)}
.lv .lv-btn[data-layout][aria-pressed="true"]{color:var(--lv-head);font-weight:700;border-bottom-color:var(--lv-gold);background:transparent}
.lv .lv-btn[data-layout][disabled]{color:var(--lv-prep);opacity:.6;background:transparent}
.lv .lv-btn[data-layout][aria-pressed="true"][disabled]{opacity:1;color:var(--lv-head)}

/* ================= 6. 集計（1行の細い帯）。大きな数字の演出は要所だけ ================= */
.lv .lv-stats{display:flex;flex-wrap:wrap;gap:1px;margin:0 0 12px;background:var(--lv-line);border:1px solid var(--lv-line);border-radius:var(--lv-radius);overflow:hidden}
.lv .lv-stat{flex:1 1 auto;display:flex;flex-wrap:wrap;align-items:baseline;gap:0 8px;padding:6px 16px;min-width:0;background:var(--lv-card)}
.lv .lv-stat .k{font-size:13px;color:var(--lv-sub);font-weight:700}
.lv .lv-num{font-size:20px;font-weight:700;line-height:1.3;font-variant-numeric:tabular-nums}
.lv .lv-num small{font-size:13px;font-weight:400;color:var(--lv-sub);margin-left:2px}
.lv .lv-stat.accent{background:var(--lv-gold-soft);color:var(--lv-ink);box-shadow:inset 3px 0 0 var(--lv-gold)}
.lv .lv-stat.accent .k,.lv .lv-stat.accent .lv-num small{color:var(--lv-ink)}
/* 目立たせる箱（金の薄い地）の中の小さい文字は、本文の色にそろえて読めるように（株主総会モード on の箱・投票済の「◯名」・合計議決権数の下の説明など） */
.lv .lv-stat.accent .lv-small,.lv .lv-stat.accent .lv-muted,.lv .lv-stat.accent .lv-small.lv-muted{color:var(--lv-ink)}
.lv .lv-stat.accent a{color:var(--lv-link)}
.lv .lv-stat.warn{background:var(--lv-warn-soft)}
.lv .lv-stat.warn .lv-num{color:var(--lv-warn)}
.lv .lv-num.flash{animation:lvFlash .9s ease}
@keyframes lvFlash{0%{color:var(--lv-gold)}100%{}}
/* 同時接続者数・延べ数（自動更新） */
.lv .lv-count{display:inline-flex;align-items:baseline;gap:3px;white-space:nowrap;font-size:13px;color:var(--lv-sub)}
.lv .lv-count b{font-variant-numeric:tabular-nums;font-size:15px;color:var(--lv-ink)}
.lv .lv-count .sep{color:var(--lv-line2)}
.lv .lv-count-dot{width:8px;height:8px;border-radius:50%;background:var(--lv-prep);display:inline-block;align-self:center;margin-right:2px}
.lv .lv-count.on .lv-count-dot{background:var(--lv-od)}
.lv .lv-count.on b{color:var(--lv-od)}
.lv .lv-count.stale{opacity:.6}
.lv .lv-count.flash{animation:lvCountFlash .9s ease}
@keyframes lvCountFlash{0%{background:var(--lv-gold-soft)}100%{}}
.lv .lv-count.big{font-size:15px}.lv .lv-count.big b{font-size:20px}
.lv .lv-count-bar{display:flex;flex-wrap:wrap;gap:4px 14px;align-items:baseline;margin:0 0 8px}

/* ================= 7. 登録番組一覧：1番組を1〜2行の表の行に ================= */
.lv .lv-list{display:grid;gap:0;background:var(--lv-card);border:1px solid var(--lv-line);border-radius:var(--lv-radius);overflow:hidden}
.lv .lv-list > .lv-card{border:0;margin:0}
.lv .lv-list-h,.lv .lv-row{display:grid;grid-template-columns:104px minmax(0,1fr) 184px 318px;gap:0 12px;align-items:center;padding:4px 12px}
.lv .lv-list-h{background:var(--lv-bg);border-bottom:1px solid var(--lv-line);font-size:13px;font-weight:700;color:var(--lv-sub);min-height:30px}
.lv .lv-row{border-bottom:1px solid var(--lv-line);min-height:56px;padding-top:3px;padding-bottom:3px}
.lv .lv-row:last-of-type{border-bottom:0}
/* ★v0.8.0（B-218）設定・編集で保存して戻ってきた番組の行：地を薄い緑・左に緑の線・「✓ 保存しました」の小さな札（色だけに頼らず文字でも） */
.lv .lv-row.is-saved{background:var(--lv-od-soft);box-shadow:inset 4px 0 0 var(--lv-od);scroll-margin:96px 0}
.lv .lv-saved-chip{display:inline-block;padding:0 8px;border-radius:999px;font-size:13px;font-weight:700;line-height:1.5;background:var(--lv-card);color:var(--lv-od);border:1px solid var(--lv-od);white-space:nowrap}
.lv .lv-row.past .lv-date,.lv .lv-row.past .co,.lv .lv-row.past .t{color:var(--lv-sub)}
.lv .lv-date{line-height:1.4;white-space:nowrap}
.lv .lv-date .md{font-size:15px;font-weight:700;font-variant-numeric:tabular-nums}
.lv .lv-date .w{font-size:13px;color:var(--lv-sub)}
.lv .lv-date .hm{font-size:13px;color:var(--lv-sub);font-variant-numeric:tabular-nums}
.lv .lv-row .lv-main{min-width:0}
.lv .lv-row .ttl{display:flex;flex-wrap:wrap;align-items:baseline;gap:0 10px}
.lv .lv-row .co{font-size:15px;font-weight:700;line-height:1.4;overflow-wrap:anywhere;display:inline-flex;flex-wrap:wrap;align-items:baseline;gap:0 8px}
.lv .lv-row .t{font-size:16px;font-weight:700;line-height:1.4;color:var(--lv-head);overflow-wrap:anywhere}
.lv .lv-row .meta{font-size:13px;color:var(--lv-sub);display:flex;flex-wrap:wrap;align-items:center;gap:2px 10px;margin-top:1px}
.lv .lv-row .chips{display:contents}
.lv .lv-row .nums{font-size:13px;color:var(--lv-sub);line-height:1.5}
.lv .lv-row .peak{font-variant-numeric:tabular-nums;white-space:nowrap}
.lv .lv-row .peak b{font-size:15px;color:var(--lv-ink)}
.lv .lv-row .btns{display:flex;flex-wrap:wrap;gap:4px;justify-content:flex-start}
.lv .lv-time-hl{display:inline-block;background:var(--lv-gold-soft);color:var(--lv-gold-ink);border-radius:4px;padding:0 6px;font-size:15px;font-weight:700;font-variant-numeric:tabular-nums}
.lv .lv-dup{display:flex;align-items:center;gap:4px;font-size:13px;font-weight:700;color:var(--lv-warn);background:var(--lv-warn-soft);border-radius:4px;padding:1px 8px;margin:2px 0;width:max-content;max-width:100%;white-space:normal}
/* 一覧の上の並び（絞り込み・新規番組登録）：ボタンを縦に引き伸ばさない */
.lv .lv-list-actions{align-items:center;flex-wrap:wrap}
.lv .lv-list-actions form{display:flex;gap:6px;align-items:center;flex-wrap:wrap}
.lv .lv-list-actions form input{width:200px}
.lv .lv-list-actions form select{width:auto}
/* 一覧の上の細い集計（これからの番組／受付中／ライブ中／オンデマンド公開中） */
.lv .lv-sum{display:flex;flex-wrap:wrap;align-items:baseline;gap:2px 0;font-size:13px;color:var(--lv-sub);margin:0}
.lv .lv-sum .lv-stat{flex:none;display:inline-flex;align-items:baseline;gap:6px;padding:0 14px 0 0;border-right:1px solid var(--lv-line);margin:0 14px 0 0;background:transparent;color:inherit}
.lv .lv-sum .lv-stat:last-child{border-right:0}
.lv .lv-sum .lv-stat.accent{background:transparent;color:inherit;box-shadow:none}
.lv .lv-sum .lv-stat.accent .k{color:var(--lv-sub)}
.lv .lv-sum .lv-stat.accent .lv-num small{color:var(--lv-sub)}
.lv .lv-sum .lv-num{font-size:16px;color:var(--lv-ink)}

/* ================= 8. フォーム ================= */
.lv .lv-sec{border-top:1px solid var(--lv-line);padding-top:12px;margin-top:12px;scroll-margin-top:60px}
.lv .lv-sec:first-of-type{border-top:0;padding-top:0;margin-top:0}
.lv .lv-sec > .h{display:flex;flex-wrap:wrap;align-items:center;gap:8px;font-weight:700;font-size:16px;color:var(--lv-head);margin-bottom:8px}
.lv .lv-sec > .h i{font-style:normal;font-weight:700;font-size:13px;display:inline-grid;place-items:center;min-width:24px;height:24px;padding:0 4px;border-radius:4px;border:1px solid var(--lv-gold);color:var(--lv-gold-ink);background:transparent}
.lv .lv-sec > .h .req{font-size:13px}
.lv .lv-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:8px 20px}
.lv .lv-f label.l,.lv .lv-f > span.l{display:block;font-size:13px;color:var(--lv-sub);font-weight:700;margin-bottom:2px}
.lv .lv-f .req{color:var(--lv-danger);margin-left:6px;font-size:13px;font-weight:700}
.lv input[type=text],.lv input[type=number],.lv input[type=email],.lv input[type=password],.lv input[type=datetime-local],.lv input[type=date],.lv input[type=time],.lv input[type=url],.lv input[type=search],.lv input:not([type]),.lv select,.lv textarea{
  width:100%;font:inherit;font-size:15px;color:var(--lv-ink);background:var(--lv-field);border:1px solid var(--lv-line2);border-radius:var(--lv-radius-sm);padding:5px 10px;min-height:36px}
.lv input[readonly]{background:var(--lv-bg)}
.lv input::placeholder,.lv textarea::placeholder{color:var(--lv-sub);opacity:.75}
.lv textarea{min-height:72px;line-height:1.5}
.lv input[type=color]{width:48px;height:36px;border:1px solid var(--lv-line2);border-radius:var(--lv-radius-sm);background:var(--lv-field);padding:2px}
.lv input[type=file]{font:inherit;font-size:13px;color:var(--lv-ink);max-width:100%}
.lv input[type=checkbox],.lv input[type=radio]{accent-color:var(--lv-navy)}
.lv .lv-ro{background:var(--lv-bg);border:1px solid var(--lv-line);border-radius:var(--lv-radius-sm);padding:6px 10px;min-height:36px}
.lv .lv-ro dl{display:grid;grid-template-columns:max-content 1fr;gap:4px 14px;margin:0}
.lv .lv-ro dt{color:var(--lv-sub);font-size:13px;font-weight:700;padding-top:2px}.lv .lv-ro dd{margin:0;overflow-wrap:anywhere}
.lv .lv-need{outline:2px solid var(--lv-danger);outline-offset:3px;border-radius:var(--lv-radius-sm)}
.lv .ls-form{display:grid;gap:10px;margin-top:8px}
.lv .lv-mask{letter-spacing:.02em}
.lv .lv-lock{display:flex;gap:12px;align-items:flex-start}
.lv .lv-lock .ic{flex:none;width:40px;height:40px;border-radius:var(--lv-radius-sm);display:grid;place-items:center;background:var(--lv-gold-soft);color:var(--lv-gold-ink);font-size:20px}
/* 画面の下にいつも見える、保存の帯（主ボタンは1つ） */
.lv .lv-savebar{position:sticky;bottom:0;z-index:5;display:flex;gap:8px 12px;align-items:center;flex-wrap:wrap;background:var(--lv-card);border:1px solid var(--lv-line);border-top:2px solid var(--lv-gold);border-radius:var(--lv-radius) var(--lv-radius) 0 0;padding:8px 16px;margin:0 0 12px;box-shadow:var(--lv-pop)}
.lv .lv-savebar .lv-btn.primary{min-width:140px}
/* ★v0.8.0（B-217）保存が終わったら、帯のボタンは「✓ 保存しました（HH:MM）」の押せない表示（緑＝正常の色・文字でも書く）。書き換えると［保存する］に戻る（live_savebar.js） */
.lv .lv-savebar .lv-btn.primary.is-saved[disabled]{background:var(--lv-od-soft);border-color:var(--lv-od);color:var(--lv-od);cursor:default;font-weight:700}
.lv .lv-savebar.is-saved{border-top-color:var(--lv-od)}
.lv .lv-savebar-note{font-size:13px;color:var(--lv-sub)}
.lv .lv-dirty{padding:2px 10px;border-radius:4px;background:var(--lv-sun-soft);color:var(--lv-sun-ink);font-size:13px;font-weight:700}
.lv .lv-chg{display:inline-block;margin-left:6px;padding:0 8px;border-radius:999px;font-size:13px;font-weight:700;line-height:1.5;background:var(--lv-gold-soft);color:var(--lv-gold-ink);white-space:nowrap}
.lv .lv-next{display:flex;flex-wrap:wrap;gap:6px;align-items:center;font-size:13px}
.lv .lv-time5{display:inline-flex;align-items:center;gap:4px;white-space:nowrap}
.lv .lv-time5 select{width:auto;min-width:64px}
.lv .lv-dt{display:flex;flex-wrap:wrap;gap:6px;align-items:center}
.lv .lv-dt input[type=date]{width:auto}
.lv .lv-colorrow{display:flex;flex-wrap:wrap;gap:8px;align-items:center}
.lv .lv-colorrow input[type=color]{width:56px;min-width:56px;height:36px;padding:2px}
.lv .lv-colorrow input[type=color]:disabled{opacity:.35}
.lv .lv-swatch{display:inline-block;width:16px;height:16px;margin-left:6px;border-radius:4px;border:1px solid var(--lv-line2);vertical-align:-3px}
.lv .lv-logo-prev{display:inline-flex;align-items:center;padding:8px 12px;border:1px solid var(--lv-line);border-radius:var(--lv-radius-sm);background:#fff}
.lv .lv-logo-prev img{max-height:48px;max-width:240px;display:block}
/* 視聴URLの配り方（3択）：選んでいるものは、紺の枠＋左に金の線（塗らない） */
.lv .lv-dist-choices{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:8px;margin:8px 0 10px}
.lv .lv-dist-c{display:flex;gap:10px;align-items:flex-start;border:1px solid var(--lv-line2);border-radius:var(--lv-radius-sm);padding:8px 12px;cursor:pointer;background:var(--lv-card)}
.lv .lv-dist-c input{margin-top:3px;accent-color:var(--lv-navy);width:18px;height:18px;flex:none}
.lv .lv-dist-c > span{display:grid;gap:2px}
.lv .lv-dist-c b{font-size:15px}
.lv .lv-dist-c:has(input:checked){border-color:var(--lv-btn-line);box-shadow:inset 3px 0 0 var(--lv-gold)}
.lv .lv-dist-c:has(input:checked) b{color:var(--lv-head)}
.lv .lv-dist-sub{border-left:3px solid var(--lv-line);padding:2px 0 2px 12px;margin:8px 0}
.lv .lv-dist-dl{display:flex;flex-wrap:wrap;gap:8px;margin-top:6px}
.lv .lv-seat-now{font-size:15px}.lv .lv-seat-now b{font-variant-numeric:tabular-nums;font-size:16px}

/* 設定・編集／新規番組登録：左に目次（かたまりの題へ飛ぶ。いまどこかが分かる）＋ラベルと入力欄の横並び */
.lv .lv-set{display:grid;grid-template-columns:176px minmax(0,1fr);gap:0 16px;align-items:start}
.lv .lv-toc{position:sticky;top:60px;display:grid;gap:0;background:var(--lv-card);border:1px solid var(--lv-line);border-radius:var(--lv-radius);padding:6px 0;font-size:14px}
.lv .lv-toc .lv-toc-h{font-size:13px;font-weight:700;color:var(--lv-sub);padding:2px 12px 4px}
.lv .lv-toc a{display:flex;gap:6px;align-items:baseline;padding:5px 10px 5px 9px;border-left:3px solid transparent;color:var(--lv-sub);text-decoration:none;line-height:1.35}
.lv .lv-toc a i{font-style:normal;font-size:13px;min-width:14px;text-align:center;color:var(--lv-gold-ink);font-weight:700}
.lv .lv-toc a:hover{color:var(--lv-head);background:var(--lv-hover)}
.lv .lv-toc a.on{color:var(--lv-head);font-weight:700;border-left-color:var(--lv-gold)}
.lv .lv-toc a[hidden]{display:none}
.lv .lv-toc .sep{height:1px;background:var(--lv-line);margin:4px 0}
#lvform .lv-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px 24px;margin-top:0}
#lvform .lv-grid + .lv-grid,#lvform .lv-f + .lv-grid,#lvform .lv-grid + .lv-f{margin-top:8px}
#lvform .lv-f:has(> label.l){display:grid;grid-template-columns:148px minmax(0,1fr);column-gap:10px;align-items:start;align-content:start}
#lvform .lv-f:has(> label.l) > label.l{grid-column:1;margin:0;padding-top:7px;line-height:1.4}
#lvform .lv-f:has(> label.l) > :not(label.l){grid-column:2;min-width:0}
#lvform .lv-f .lv-small{margin-top:2px}
#lvform .lv-f > br{display:none}
#lvform fieldset{border:0;margin:0;padding:0;min-width:0}
#lvform .lv-sub{margin-top:4px}
#lvform .lv-row2{display:flex;flex-wrap:wrap;gap:6px;align-items:center;margin-top:4px}
#lvform .lv-row2 > input,#lvform .lv-row2 > select{width:auto;min-width:0;flex:1 1 90px}
#lvform .lv-row2 > input[type=color]{flex:none}
#lvform .lv-row2 > input[type=number]{flex:0 0 90px;width:90px}
#lvform .lv-row2 .lv-seg{flex:1 1 auto}
#lvform .lv-row2 > label{white-space:nowrap}
#lvform .lv-narrow{max-width:140px}
/* いいねを使う：チャットの項目の中で見つけやすく（左に金の線） */
#lvform .lv-like{border-left:3px solid var(--lv-gold);padding:2px 0 2px 10px;margin-top:4px}
@media (max-width:1100px){
  .lv .lv-set{grid-template-columns:1fr}
  .lv .lv-toc{position:static;display:flex;flex-wrap:wrap;gap:0 2px;padding:2px 8px;margin:0 0 12px}
  .lv .lv-toc .lv-toc-h{padding:6px 6px 6px 0}
  .lv .lv-toc a{border-left:0;border-bottom:3px solid transparent;padding:5px 6px}
  .lv .lv-toc a.on{border-bottom-color:var(--lv-gold)}
  .lv .lv-toc .sep{display:none}
}
@media (max-width:760px){
  #lvform .lv-grid{grid-template-columns:1fr}
  #lvform .lv-f:has(> label.l){grid-template-columns:1fr}
  #lvform .lv-f:has(> label.l) > :not(label.l){grid-column:1}
  #lvform .lv-f:has(> label.l) > label.l{padding-top:0}
}

/* ================= 9. 表・一覧（1行の高さ 40px を基本。行の間は線） ================= */
.lv .lv-table-wrap{overflow-x:auto;-webkit-overflow-scrolling:touch}
.lv table.lv-t{width:100%;border-collapse:collapse;font-size:15px}
.lv table.lv-t th,.lv table.lv-t td{border-bottom:1px solid var(--lv-line);padding:4px 10px;height:40px;text-align:left;vertical-align:middle;background:transparent;color:var(--lv-ink)}
.lv table.lv-t th{font-size:13px;color:var(--lv-sub);font-weight:700;white-space:nowrap;background:var(--lv-bg);height:32px}
.lv table.lv-t td{white-space:nowrap}
.lv table.lv-t tr:last-child td{border-bottom:0}
.lv .lv-url{display:flex;gap:6px;align-items:center;min-width:0}
.lv .lv-url input{font-family:var(--lv-mono);font-size:13px}
.lv .lv-urlcard{display:grid;gap:4px;padding:8px 0;border-bottom:1px solid var(--lv-line);background:transparent}
.lv .lv-urlcard .h{display:flex;align-items:center;gap:8px;font-weight:700}
.lv .lv-grid > .lv-urlcard{background:var(--lv-card);border:1px solid var(--lv-line);border-radius:var(--lv-radius);padding:8px 12px;align-content:start}
.lv .lv-urlcard input{width:100%;font-family:var(--lv-mono);font-size:13px}

/* ================= 10. 配信サイトの外枠（上の帯・ログイン） ================= */
.ls-body{margin:0;min-height:100vh;display:flex;flex-direction:column;background:var(--lv-bg);color:var(--lv-ink);font:15px/1.5 var(--lv-font)}
.ls-body *{box-sizing:border-box}
/* 上の帯：紺・高さ 48px。選んでいるメニューは白い太字＋金の下線 */
.ls-top{display:flex;align-items:stretch;flex-wrap:nowrap;gap:0 20px;min-height:48px;padding:0 16px;background:var(--lv-top);color:var(--lv-top-ink);position:sticky;top:0;z-index:20}
.ls-brand{display:flex;align-items:center;gap:10px;font-weight:700;font-size:18px;letter-spacing:.1em;color:var(--lv-top-ink);text-decoration:none;white-space:nowrap}
.ls-logo{display:block;width:3px;height:20px;background:var(--lv-top-gold);font-size:0;color:transparent;overflow:hidden}
.ls-menu{display:flex;align-items:stretch;gap:4px;min-width:0}
.ls-menu a,.ls-menu span{display:flex;align-items:center;padding:3px 12px 0;border-bottom:3px solid transparent;text-decoration:none;color:rgba(255,255,255,.82);font-weight:400;font-size:15px;white-space:nowrap}
.ls-menu a:hover{color:#fff;border-bottom-color:rgba(255,255,255,.35)}
.ls-menu a.on{color:#fff;font-weight:700;border-bottom-color:var(--lv-top-gold)}
.ls-menu span.off{opacity:.5}
.ls-who{margin-left:auto;display:flex;align-items:center;gap:14px;font-size:13px;white-space:nowrap}
.ls-name,a.ls-name{display:flex;flex-direction:row;align-items:baseline;gap:6px;font-weight:700;font-size:15px;color:var(--lv-top-ink);text-decoration:none}
.ls-name small{color:rgba(255,255,255,.8);font-weight:400;font-size:13px}
a.ls-name:hover{text-decoration:underline}
.ls-warn{background:var(--lv-warn-soft);color:var(--lv-warn);border-radius:999px;padding:1px 8px;font-weight:700}
.ls-out{color:var(--lv-top-ink);font-size:13px;text-underline-offset:2px}
/* ★v0.7.1c（検収 K-12）直伝スタッフ用「管理君へ」：上の帯の右・名前の左。枠つきの箱（押すと別のサイトへ移る＝実行するもの） */
.ls-ops,a.ls-ops{display:inline-flex;align-items:center;min-height:30px;padding:0 12px;border:1px solid rgba(255,255,255,.55);border-radius:6px;color:var(--lv-top-ink);font-size:14px;font-weight:700;text-decoration:none;white-space:nowrap}
a.ls-ops:hover{background:rgba(255,255,255,.12);border-color:#fff}
.ls-top :focus-visible{outline:2px solid var(--lv-top-gold);outline-offset:-2px}
.ls-main{flex:1;width:100%;max-width:1440px;margin:0 auto;padding:12px 16px 32px}
.ls-foot{text-align:center;color:var(--lv-sub);font-size:13px;padding:10px 16px}
/* ログイン：紺と白、金の細い線を1本 */
.ls-auth{max-width:440px;margin:56px auto 24px}
.lv .lv-card.ls-auth{max-width:440px;margin:64px auto 24px;padding:30px 32px 24px;border-top:0;position:relative;overflow:hidden}
.lv .lv-card.ls-auth::before{content:"";position:absolute;left:0;right:0;top:0;height:6px;background:var(--lv-top)}
.lv .lv-card.ls-auth::after{content:"";position:absolute;left:0;right:0;top:6px;height:1px;background:var(--lv-top-gold)}
.lv .ls-auth .lv-kicker{letter-spacing:.12em;color:var(--lv-gold-ink);font-weight:700;margin-top:6px}
.lv .ls-auth h1{font-size:20px;margin:2px 0 14px}
.lv .ls-auth .ls-form{gap:14px}
.lv .ls-auth .ls-form .lv-btn{min-height:44px;font-size:16px}
.lv .ls-auth input{min-height:44px}
.lv .ls-auth .ls-help{margin:14px 0 0;padding-top:12px;border-top:1px solid var(--lv-line)}
@media (max-width:640px){
  .ls-top{flex-wrap:wrap;padding:0 12px;gap:0 12px}
  .ls-brand{min-height:44px}
  .ls-menu{order:3;width:100%;overflow-x:auto;min-height:40px}
  .ls-main{padding:12px 12px 28px}
  .lv .lv-card.ls-auth{margin:16px auto;padding:26px 18px 18px}
}

/* ================= 11. ライブ配信作業 ================= */
/* 状態の行（1行）：いまの段階｜配信サーバー｜視聴画面｜同時接続｜延べ。要所の数字だけ大きく */
.lv .ctl-band{display:flex;flex-wrap:wrap;align-items:baseline;gap:0 6px;border:1px solid var(--lv-line);border-left:4px solid var(--lv-prep);border-radius:var(--lv-radius-sm);background:var(--lv-card);padding:5px 12px;margin:0 0 8px;font-size:13px;color:var(--lv-sub)}
.lv .ctl-band b{font-variant-numeric:tabular-nums;color:var(--lv-ink);font-size:15px}
.lv .ctl-band .b-stage{font-weight:700;font-size:16px;color:var(--lv-prep);white-space:nowrap}
.lv .ctl-band .b-sep{color:var(--lv-line2)}
.lv .ctl-band .b-num b{font-size:20px;line-height:1}
.lv .b-link{display:inline-flex;align-items:center;gap:4px;font-size:13px;color:var(--lv-sub);white-space:nowrap}
.lv .ctl-band.st-gray{border-left-color:var(--lv-prep)}.lv .ctl-band.st-gray .b-stage{color:var(--lv-prep)}
.lv .ctl-band.st-yellow{border-left-color:var(--lv-sun)}.lv .ctl-band.st-yellow .b-stage{color:var(--lv-sun-ink)}
.lv .ctl-band.st-red{border-left-color:var(--lv-live)}.lv .ctl-band.st-red .b-stage{color:var(--lv-live)}
.lv .ctl-band.st-green{border-left-color:var(--lv-od)}.lv .ctl-band.st-green .b-stage{color:var(--lv-od)}
.lv .ctl-band.st-stop{border-left-color:var(--lv-danger)}.lv .ctl-band.st-stop .b-stage{color:var(--lv-danger)}
.lv .ctl-band.is-live .b-num b{color:var(--lv-od)}
.lv .ctl-band .b-encv{font-weight:700;border-radius:4px;padding:0 6px}
.lv .ctl-band .b-encv.lv-green{color:var(--lv-od)}
.lv .ctl-band .b-encv.lv-yellow{background:var(--lv-sun-soft);color:var(--lv-sun-ink)}
.lv .ctl-band .b-encv.lv-red{background:var(--lv-danger-fill);color:#fff;animation:lvEncBlink 1.2s ease-in-out infinite}
.lv .ctl-band .b-encv.lv-gray{color:var(--lv-prep)}
@keyframes lvEncBlink{0%,100%{opacity:1}50%{opacity:.7}}
.lv .ctl-band .b-presv{font-weight:700;color:var(--lv-ink)}
.lv .ctl-band .b-presv.lv-gray{color:var(--lv-prep);font-weight:400}
.lv .ctl-band .b-presv.lv-blue{background:var(--lv-blue-soft);color:var(--lv-blue);border-radius:4px;padding:0 6px}
.lv .vw-dot-s{display:inline-block;width:9px;height:9px;border-radius:50%;background:var(--lv-prep)}.lv .vw-dot-s.ok{background:var(--lv-od)}.lv .vw-dot-s.warn{background:var(--lv-warn)}
.lv .ctl-alert{border-radius:var(--lv-radius-sm);padding:8px 12px;margin:0 0 8px;font-weight:700;background:var(--lv-danger-fill);color:#fff}
.lv .ctl-alert.info{background:var(--lv-blue-soft);color:var(--lv-ink)}
/* ★v0.7.3（B-69）受信（視聴者の画面が映像を受け取れているか）：帯の文字と、黄の警告 */
.lv .ctl-band .b-rxv{font-weight:700;border-radius:4px;padding:0 6px}
.lv .ctl-band .b-rxv.lv-green{color:var(--lv-od)}
.lv .ctl-band .b-rxv.lv-yellow{background:var(--lv-sun-soft);color:var(--lv-sun-ink)}
.lv .ctl-band .b-rxv.lv-red{background:var(--lv-danger-fill);color:#fff}
.lv .ctl-band .b-rxv.lv-gray{color:var(--lv-prep)}
.lv .ctl-alert.warn{background:var(--lv-sun-soft);color:var(--lv-sun-ink)}
.lv .ctl-alert a{color:inherit;text-decoration:underline;margin-left:8px;font-weight:700;white-space:nowrap}
.lv .ctl-alert a[hidden]{display:none}
/* ★v0.7.3（B-69）その時刻の状況（問い合わせ対応）：判定の1行（色つき）・数の表・視聴者1人の経過 */
.lv .inq-form{display:flex;flex-wrap:wrap;align-items:flex-end;gap:10px 16px;margin:0 0 8px}
.lv .inq-form label{display:flex;flex-direction:column;gap:4px;font-size:14px;font-weight:700}
.lv .inq-form input,.lv .inq-form select{min-height:40px;font:inherit;font-weight:400;padding:4px 8px}
.lv .inq-verdict{border-radius:var(--lv-radius-sm);padding:14px 16px;margin:0 0 12px;border-left:6px solid var(--lv-prep);background:var(--lv-prep-soft);color:var(--lv-ink)}
.lv .inq-verdict.v-green{border-left-color:var(--lv-od);background:var(--lv-od-soft)}
.lv .inq-verdict.v-red{border-left-color:var(--lv-danger);background:var(--lv-danger-soft)}
.lv .inq-verdict-t{font-size:20px;font-weight:700;line-height:1.4}
.lv .inq-verdict-s{font-size:16px;line-height:1.7;margin-top:4px}
.lv .inq-table td.num{text-align:right;font-variant-numeric:tabular-nums}
.lv .inq-table tr.bad td,.lv #inqOps tr.bad td{background:var(--lv-danger-soft)}
.lv .inq-who{border-top:1px solid var(--lv-line);margin-top:10px;padding-top:10px}
.lv .inq-who-h{display:flex;flex-wrap:wrap;gap:6px 14px;align-items:baseline;margin:0 0 8px}
.lv .inq-lines{list-style:none;margin:8px 0 0;padding:0;font-size:15px;line-height:1.9}
.lv .inq-lines .t{display:inline-block;min-width:5.5em;font-variant-numeric:tabular-nums;color:var(--lv-prep)}
.lv .inq-lines li.ng{font-weight:700}
.lv .inq-draft{width:100%;font:inherit;line-height:1.7;padding:10px;box-sizing:border-box}
/* タブ（2つの並び：よく使う／たまに使う）。下線のタブ。広い画面では1行に並ぶ */
.lv .ctl-tabbar{display:flex;flex-wrap:wrap;align-items:stretch;gap:0 4px;margin:0 0 8px;border-bottom:1px solid var(--lv-line)}
.lv .ctl-tabs{display:flex;flex-wrap:wrap;gap:0;padding:0;margin:0 0 -1px}
.lv .ctl-tabs a{flex:none;display:inline-flex;align-items:center;min-height:36px;padding:0 10px;border:0;border-bottom:3px solid transparent;border-radius:0;background:transparent;color:var(--lv-sub);font-weight:400;font-size:15px;text-decoration:none;white-space:nowrap}
.lv .ctl-tabs a:hover{color:var(--lv-head);border-bottom-color:var(--lv-line2)}
.lv .ctl-tabs a.on{color:var(--lv-head);font-weight:700;border-bottom-color:var(--lv-gold);background:transparent}
.lv .ctl-tabs a.soon{color:var(--lv-prep);font-style:normal}
.lv .ctl-tabs2{padding-left:8px;margin-left:4px;position:relative}
.lv .ctl-tabs2::before{content:"";position:absolute;left:0;top:9px;bottom:9px;width:1px;background:var(--lv-line2)}
.lv .ctl-tabs2 a{font-size:14px;padding:0 8px}
/* 配信制御：左に流れ（大きなボタン）、右に URL */
.lv .ctl-grid{display:grid;grid-template-columns:3fr 2fr;gap:12px;align-items:start}
.lv .ctl-top{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin:0 0 12px;align-items:stretch}
.lv .ctl-state,.lv .ctl-conn{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.lv .ctl-v{font-size:20px}
.lv .ctl-link{grid-column:1/-1;font-size:13px;color:var(--lv-sub);display:flex;align-items:center;gap:6px;flex-wrap:wrap}
.lv .ctl-btns{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:12px}
/* 操作のボタン（44px 以上）：ふつう＝白地に紺の枠／始める＝紺の塗り／止める＝赤 */
.lv .ctl-b{min-height:56px;border-radius:var(--lv-radius-sm);border:1px solid var(--lv-btn-line);background:var(--lv-card);color:var(--lv-btn-ink);font:inherit;font-size:16px;font-weight:700;line-height:1.3;cursor:pointer;display:flex;align-items:center;gap:10px;padding:6px 16px;text-align:left}
.lv .ctl-b:hover{background:var(--lv-hover)}
.lv .ctl-b i{font-style:normal;display:inline-grid;place-items:center;width:26px;height:26px;border-radius:4px;border:1px solid currentColor;font-size:14px;flex:none}
.lv .ctl-b.go{background:var(--lv-accent);border-color:var(--lv-accent);color:var(--lv-accent-ink)}
.lv .ctl-b.go:hover{background:var(--lv-accent-h)}
.lv .ctl-b.stop{background:var(--lv-card);border-color:var(--lv-danger-line);color:var(--lv-danger)}
.lv .ctl-b.stop:hover{background:var(--lv-danger-soft)}
.lv .ctl-b.sm{min-height:44px;font-size:15px;padding:4px 14px}
.lv .ctl-b.pressed{opacity:.8}
.lv .ctl-b[disabled]{background:var(--lv-off);color:var(--lv-prep);border-color:var(--lv-line);cursor:not-allowed}
.lv .ctl-b.stop[disabled]{background:var(--lv-off);color:var(--lv-prep);border-color:var(--lv-line)}
/* いま押せる段階（次に押すボタン）：塗り＋外側の輪で、はっきり分かる */
.lv .ctl-b.next{background:var(--lv-accent);border-color:var(--lv-accent);color:var(--lv-accent-ink);animation:ctlGlow 1.6s ease-in-out infinite}
.lv .ctl-b.stop.next,.lv .ctl-b.next-red{background:var(--lv-danger-fill);border-color:var(--lv-danger-fill);color:#fff;animation:ctlGlowRed 1.6s ease-in-out infinite}
@keyframes ctlGlow{0%,100%{box-shadow:0 0 0 2px var(--lv-card),0 0 0 4px var(--lv-gold)}50%{box-shadow:0 0 0 2px var(--lv-card),0 0 0 7px var(--lv-gold-soft)}}
@keyframes ctlGlowRed{0%,100%{box-shadow:0 0 0 2px var(--lv-card),0 0 0 4px var(--lv-danger)}50%{box-shadow:0 0 0 2px var(--lv-card),0 0 0 7px var(--lv-danger-soft)}}
.lv .ctl-b.done,.lv .ctl-b.done[disabled]{background:var(--lv-off);border-color:var(--lv-line);color:var(--lv-prep)}
.lv .ctl-done{font-size:13px;font-weight:700;color:var(--lv-od);white-space:nowrap}
.lv .ctl-guide{display:flex;flex-wrap:wrap;gap:2px 12px;align-items:baseline;border-radius:var(--lv-radius-sm);border-left:4px solid var(--lv-prep);padding:8px 12px;margin:0 0 12px;background:var(--lv-prep-soft);font-size:15px;font-weight:700}
.lv .ctl-guide b{font-size:16px;white-space:nowrap}
.lv .ctl-guide.st-yellow{background:var(--lv-sun-soft);border-left-color:var(--lv-sun)}.lv .ctl-guide.st-yellow b{color:var(--lv-sun-ink)}
.lv .ctl-guide.st-red{background:var(--lv-live-soft);border-left-color:var(--lv-live)}.lv .ctl-guide.st-red b{color:var(--lv-live)}
.lv .ctl-guide.st-green{background:var(--lv-od-soft);border-left-color:var(--lv-od)}.lv .ctl-guide.st-green b{color:var(--lv-od)}
.lv .ctl-guide.st-stop{background:var(--lv-danger-soft);border-left-color:var(--lv-danger)}.lv .ctl-guide.st-stop b{color:var(--lv-danger)}
.lv .ctl-steps{display:grid;gap:12px}
.lv .ctl-step{display:flex;flex-wrap:wrap;align-items:center;gap:6px 12px}
.lv .ctl-step .ctl-b{min-width:280px;flex:0 1 auto}
.lv .ctl-step.stopish{margin-top:0}
.lv .ctl-step.stopish:first-of-type,.lv .ctl-step[data-step="stream.stop"]{margin-top:8px;padding-top:12px;border-top:1px solid var(--lv-line)}
.lv .ctl-check{border:0;border-left:3px solid var(--lv-gold);padding:2px 0 2px 12px;display:grid;gap:8px}
.lv .ctl-check-st{border-radius:4px;padding:6px 12px;font-weight:700;font-size:15px}
.lv .ctl-check-st.st-yellow{background:var(--lv-sun-soft);color:var(--lv-sun-ink)}
.lv .ctl-check-st.st-red{background:var(--lv-danger-fill);color:#fff}
.lv .ctl-check-st.st-gray{background:var(--lv-prep-soft);color:var(--lv-prep)}
.lv .ctl-check-row{display:flex;flex-wrap:wrap;gap:8px 16px;align-items:center}
.lv .ctl-checkurl.big{min-height:48px;font-size:16px;padding:8px 20px}
.lv .ctl-mini{display:grid;gap:4px;max-width:420px}
.lv .ctl-mini iframe{width:100%;aspect-ratio:16/9;border:0;background:#000;display:block}
.lv .ctl-mock{display:flex;flex-wrap:wrap;gap:6px;align-items:center;border:1px dashed var(--lv-line2);border-radius:var(--lv-radius-sm);padding:6px 8px;background:var(--lv-bg)}
.lv .ctl-sched summary{font-size:13px;color:var(--lv-link);text-decoration:underline}
.lv .ctl-sched-now{font-size:13px;font-weight:700;color:var(--lv-sun-ink)}
.lv .ctl-logh{margin:12px 0 2px}
.lv .ctl-log{margin-top:0;border:1px solid var(--lv-line);border-radius:var(--lv-radius-sm);padding:4px 10px;max-height:200px;overflow:auto;font-size:13px}
.lv .ctl-line{padding:3px 0;border-bottom:1px solid var(--lv-line)}
.lv .ctl-line:last-child{border-bottom:0}
.lv .ctl-line .t{color:var(--lv-sub);font-variant-numeric:tabular-nums;font-size:13px}
.lv .ctl-line.old{color:var(--lv-sub)}
.lv .ctl-line.new{animation:lvCountFlash 1.2s ease}
.lv .st{display:inline-block;border-radius:999px;padding:0 8px;background:var(--lv-prep-soft)}
.lv .st-完了{background:var(--lv-od-soft);color:var(--lv-od)}.lv .st-失敗{background:var(--lv-danger-soft);color:var(--lv-danger)}.lv .st-確認が必要{background:var(--lv-warn-soft);color:var(--lv-warn)}
.lv .st-すでに{background:var(--lv-prep-soft);color:var(--lv-ink)}
.lv .ctl-notice{display:flex;gap:8px;align-items:flex-end;margin-top:12px;flex-wrap:wrap}
.lv .ctl-reset{margin-top:20px;padding-top:12px;border-top:1px solid var(--lv-line);display:grid;gap:6px}
.lv .ctl-resetb{min-height:44px;font-size:15px;background:var(--lv-card);border-color:var(--lv-line2);color:var(--lv-ink);max-width:420px}
.lv .ctl-host{display:inline-block;font-size:13px;font-weight:700;color:var(--lv-blue);background:var(--lv-blue-soft);border-radius:4px;padding:0 6px;margin:0 4px}
/* 確認の小窓（浮いて出るものだけ影を付ける） */
.ctl-dlg{border:1px solid var(--lv-line);border-radius:var(--lv-radius);padding:20px;max-width:440px;width:calc(100% - 32px);box-shadow:var(--lv-pop);background:var(--lv-card);color:var(--lv-ink);font:15px/1.5 var(--lv-font)}
.ctl-dlg::backdrop{background:rgba(11,18,32,.55)}
.ctl-dlg h2{font-size:16px;font-weight:700;margin:0 0 8px;color:var(--lv-head)}
.ctl-dlg p{margin:0 0 8px}
.ctl-dlg .lv-small{font-size:13px}.ctl-dlg .lv-muted{color:var(--lv-sub)}
.ctl-dlg-btns{display:flex;gap:12px;justify-content:flex-end;margin-top:12px}
.ctl-dlg .lv-btn{display:inline-flex;align-items:center;justify-content:center;min-height:44px;padding:6px 18px;border-radius:var(--lv-radius-sm);border:1px solid var(--lv-btn-line);background:var(--lv-card);color:var(--lv-btn-ink);font:inherit;font-weight:700;cursor:pointer}
.ctl-dlg .lv-btn.primary{background:var(--lv-accent);border-color:var(--lv-accent);color:var(--lv-accent-ink)}
.lv-btn.ctl-danger,.ctl-dlg .ctl-danger,.ctl-dlg .lv-btn.ctl-danger,.lv .lv-btn.ctl-danger{background:var(--lv-danger-fill);border-color:var(--lv-danger-fill);color:#fff}
.ctl-dlg .lv-btn[hidden]{display:none}
.ctl-dlg .lv-btn[disabled]{background:var(--lv-off);border-color:var(--lv-line);color:var(--lv-prep);cursor:not-allowed}
.lv .ctl-danger{color:var(--lv-danger);border-color:var(--lv-danger-line)}
.lv .ctl-emergency{background:var(--lv-danger-fill)!important;color:#fff!important;border-color:var(--lv-danger-fill)!important;margin-left:auto}
@media (max-width:900px){ .lv .ctl-grid{grid-template-columns:1fr} }
@media (max-width:640px){
  .lv .ctl-top{grid-template-columns:1fr}
  .lv .ctl-btns{grid-template-columns:1fr 1fr}
  .lv .ctl-b{min-height:56px;font-size:15px}
  .lv .ctl-step .ctl-b{min-width:0;flex:1 1 100%}
}

/* ---- ライブ配信作業の各タブ ---- */
.lv .ctl-row{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin:6px 0}
.lv .ctl-row:first-child{margin-top:0}
.lv .ctl-row > h2{margin:0}
.lv .ctl-row > a,.lv .ql-tools > a{padding:4px 2px 1px;border-bottom:3px solid transparent;text-decoration:none;color:var(--lv-link)}
.lv .ctl-row > a.on,.lv .ql-tools > a.on{color:var(--lv-head);font-weight:700;border-bottom-color:var(--lv-gold)}
.lv .ql-tools > a{text-decoration:underline}
.lv .ctl-row .ctl-b{min-height:44px;font-size:15px;padding:4px 16px;flex:0 1 auto}
.lv .ctl-row .ctl-b + .ctl-b{margin-left:4px}
.lv .ctl-auto{margin-right:2px}
/* 区切りは線で（カードの入れ子はしない）。表示中のものは、左に赤の線 */
.lv .ctl-item{border:0;border-top:1px solid var(--lv-line);border-left:3px solid transparent;padding:8px 0 8px 10px;margin:0}
.lv .ctl-item.live{border-left-color:var(--lv-live);background:var(--lv-live-soft)}
.lv .ctl-q{border:1px solid var(--lv-line);border-radius:var(--lv-radius-sm);padding:8px 12px;margin:8px 0}
.lv .ctl-q.read{background:var(--lv-bg)}.lv .ctl-q.hidden{border-style:dashed}
.lv .ctl-q-h{display:flex;gap:6px;flex-wrap:wrap;align-items:center}
.lv .ctl-q-b{font-size:15px;margin:4px 0;white-space:pre-wrap;overflow-wrap:anywhere}
.lv .ctl-q-i{background:var(--lv-gold-soft);border-radius:4px;padding:2px 8px;font-size:13px}
.lv .ctl-graph{display:grid;grid-template-columns:1fr 120px;gap:14px;align-items:center;margin:6px 0}
.lv .ctl-bars{display:grid;gap:4px}
.lv .ctl-bar{display:grid;grid-template-columns:minmax(80px,1.2fr) 3fr auto;gap:8px;align-items:center;font-size:15px}
.lv .ctl-bar .bar{height:12px;background:var(--lv-prep-soft);border-radius:2px;overflow:hidden}.lv .ctl-bar .bar i{display:block;height:100%}
.lv .ctl-bar .n{font-variant-numeric:tabular-nums;white-space:nowrap;font-size:13px}
.lv .ctl-pie{width:112px;height:112px;border-radius:50%;display:grid;place-items:center;position:relative}
.lv .ctl-pie span{background:var(--lv-card);border-radius:50%;width:58px;height:58px;display:grid;place-items:center;font-weight:700;font-size:13px}
.lv .ctl-c1{background:var(--lv-c1)}.lv .ctl-c2{background:var(--lv-c2)}.lv .ctl-c3{background:var(--lv-c3)}.lv .ctl-c4{background:var(--lv-c4)}.lv .ctl-c5{background:var(--lv-c5)}
.lv .ctl-c6{background:var(--lv-c6)}.lv .ctl-c7{background:var(--lv-c7)}.lv .ctl-c8{background:var(--lv-c8)}.lv .ctl-c9{background:var(--lv-c9)}.lv .ctl-c10{background:var(--lv-c10)}
.lv .drag-list{list-style:none;padding:0;margin:8px 0;display:grid;gap:4px}
.lv .drag-list li{display:flex;gap:8px;align-items:center;border:1px solid var(--lv-line);border-radius:var(--lv-radius-sm);padding:4px 8px;background:var(--lv-card);cursor:grab}
.lv .drag-list li.dragging{opacity:.5}.lv .drag-list .grip{color:var(--lv-sub)}
.lv .ctl-chat tr.dim td{color:var(--lv-sub)}
.lv .ctl-chat td.body{white-space:normal;min-width:180px}
.lv .ctl-chat .nm{font-weight:700}
.lv .ctl-dot{display:inline-block;width:10px;height:10px;border-radius:2px;margin-right:6px;vertical-align:0}
.lv .ctl-off-note{color:var(--lv-sub)}
.lv .ctl-spark{display:flex;align-items:flex-end;gap:2px;height:120px;border-bottom:1px solid var(--lv-line);padding:4px 0;overflow-x:auto}
.lv .ctl-spark i{flex:1 0 4px;min-width:4px;max-width:18px;background:var(--lv-c1);border-radius:2px 2px 0 0;min-height:2px}
.lv .ctl-spark.sun i{background:var(--lv-c2)}
/* バナー（管理側）：見本は、視聴画面で出る色（取引先の差し色）ではなく、決まりの紺で出す */
.lv .bn-prev{display:inline-block;border-radius:4px;padding:2px 10px;font-weight:700;font-size:13px;background:var(--lv-top);color:#fff}
.lv .bn-prev.p3{background:var(--lv-card);color:var(--lv-ink);border:1px solid var(--lv-line2)}
.lv .bn-imgs{white-space:normal;min-width:260px}.lv .bn-img{display:flex;flex-wrap:wrap;align-items:center;gap:6px;margin:4px 0}
.lv .bn-img img.pc{width:160px;height:50px;object-fit:contain;border:1px solid var(--lv-line);border-radius:4px;background:#fff}
.lv .bn-img img.sp{width:120px;height:auto;max-height:60px;object-fit:contain;border:1px solid var(--lv-line);border-radius:4px;background:#fff}
.lv .bn-up{display:inline-flex;gap:4px;align-items:center;margin:0}.lv .bn-up input[type=file]{max-width:200px}
@media (max-width:640px){
  .lv .ctl-graph{grid-template-columns:1fr}
  .lv .ctl-row .ctl-b{flex:1 1 44%;min-height:48px}
}

/* ---- 音声質問 ---- */
.lv .ctl-hands{display:grid;gap:0;border-top:1px solid var(--lv-line)}
.lv .ctl-hand{display:grid;grid-template-columns:1fr auto;gap:10px;align-items:center;border:0;border-bottom:1px solid var(--lv-line);border-left:4px solid var(--lv-line2);padding:8px 12px}
.lv .ctl-hand.st-発言中{border-left-color:var(--lv-live);background:var(--lv-live-soft)}
.lv .ctl-hand.st-準備中{border-left-color:var(--lv-sun);background:var(--lv-sun-soft)}
.lv .ctl-hand-note{font-size:15px;margin:4px 0;overflow-wrap:anywhere}
.lv .ctl-hand-btns{display:flex;gap:12px;flex-wrap:wrap;justify-content:flex-end}
.lv .ctl-hand-btns .ctl-b{min-height:48px;min-width:96px;justify-content:center}
@media (max-width:640px){ .lv .ctl-hand{grid-template-columns:1fr} .lv .ctl-hand-btns{justify-content:stretch} .lv .ctl-hand-btns .ctl-b{flex:1} .lv .ctl-emergency{margin-left:0;flex:1 1 100%} }

/* ---- 資料の同期表示・文字起こし ---- */
.lv .pg-ctl{display:grid;grid-template-columns:minmax(0,1.6fr) minmax(260px,1fr);gap:16px;align-items:start;margin-top:8px}
.lv .pg-now{position:relative;background:#0B1220;border-radius:var(--lv-radius-sm);overflow:hidden;border:1px solid var(--lv-line)}
.lv .pg-now img{display:block;width:100%;height:auto;background:#fff}
.lv .pg-hidden{position:absolute;inset:0;display:grid;place-items:center;background:rgba(11,18,32,.6);color:#fff;font-weight:700}
.lv .pg-btns{display:flex;flex-direction:column;gap:10px}
.lv .pg-no{font-size:15px;color:var(--lv-sub)}.lv .pg-no b{font-size:24px;color:var(--lv-ink);font-variant-numeric:tabular-nums}
.lv .pg-thumbs{display:flex;gap:8px;overflow-x:auto;padding:10px 2px 4px;margin-top:10px}
.lv .pg-th{flex:none;width:112px;border:1px solid var(--lv-line);border-bottom:3px solid var(--lv-line);border-radius:4px;background:var(--lv-bg);padding:3px;cursor:pointer;position:relative}
.lv .pg-th img{display:block;width:100%;height:auto;border-radius:2px;background:#fff}
.lv .pg-th span{position:absolute;right:6px;bottom:6px;background:rgba(11,18,32,.8);color:#fff;border-radius:4px;font-size:13px;padding:0 5px}
.lv .pg-th.on{border-color:var(--lv-btn-line);border-bottom-color:var(--lv-gold)}
@media (max-width:760px){.lv .pg-ctl{grid-template-columns:1fr}}
.lv .pg-boxes{display:flex;flex-direction:column;gap:0;margin:8px 0;border-top:1px solid var(--lv-line)}
.lv .pg-box{display:flex;flex-wrap:wrap;gap:4px 8px;align-items:center;min-height:40px;border-bottom:1px solid var(--lv-line);border-left:3px solid transparent;padding:4px 10px}
.lv .pg-box.cur{border-left-color:var(--lv-od)}
.lv .pg-box .nm{font-weight:700}
.lv .pg-box .lv-note{margin:0;padding:2px 8px}
.lv .ctl-emerg{margin-top:4px;border:1px solid var(--lv-line);border-radius:var(--lv-radius-sm);padding:6px 10px}
.lv .ctl-emerg > summary{font-weight:700;color:var(--lv-warn)}
.lv .ctl-pcode-num{font-size:24px;font-weight:700;letter-spacing:.12em;font-variant-numeric:tabular-nums;line-height:1.5}
#presCopy[hidden],#presIssue[hidden],#presReissue[hidden]{display:none!important}
.lv .tr-list{max-height:420px;overflow:auto;margin-top:10px;border:1px solid var(--lv-line);border-radius:var(--lv-radius-sm);padding:4px 10px;background:var(--lv-card)}
.lv .tr-line{display:grid;grid-template-columns:70px 170px 1fr;gap:8px;padding:5px 0;border-bottom:1px solid var(--lv-line);font-size:15px}
.lv .tr-line.q .tr-sp{color:var(--lv-sun-ink);font-weight:700}
.lv .tr-at{color:var(--lv-sub);font-variant-numeric:tabular-nums}.lv .tr-sp{color:var(--lv-blue);font-weight:700;overflow-wrap:anywhere}
.lv .tr-line.new{animation:lvCountFlash 1.2s ease}
@media (max-width:640px){.lv .tr-line{grid-template-columns:60px 1fr}.lv .tr-tx{grid-column:1/-1}}

/* ---- オンデマンド設定 ---- */
.lv .od-state{font-size:20px}
.lv .od-grid{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(0,1fr);gap:12px;align-items:start;margin-bottom:12px}
@media (max-width:900px){.lv .od-grid{grid-template-columns:1fr}}
.lv .od-player{position:relative;background:#0B1220;border-radius:var(--lv-radius-sm);overflow:hidden;color:#fff;min-height:260px;display:grid;grid-template-columns:1.4fr 1fr;gap:8px;padding:10px}
.lv .od-player.cut{outline:3px solid var(--lv-sun)}
.lv .od-video{position:relative;display:grid;place-content:center;text-align:center;aspect-ratio:16/9;background:#14284B;border-radius:4px}
.lv .od-label{font-size:13px;opacity:.85}.lv .od-clock{font-size:36px;font-weight:700;font-variant-numeric:tabular-nums}.lv .od-sub{font-size:13px;opacity:.85}
.lv .od-notice{position:absolute;left:8px;right:8px;top:8px;background:#F6F0E2;color:#1A2233;border-radius:4px;font-size:13px;padding:4px 8px}
.lv .od-page{position:relative;background:#fff;border-radius:4px;overflow:hidden;align-self:center}.lv .od-page img{display:block;width:100%}
.lv .od-page span{position:absolute;right:6px;bottom:6px;background:rgba(11,18,32,.8);color:#fff;font-size:13px;border-radius:4px;padding:0 6px}
.lv .od-banners{grid-column:1/-1;display:flex;flex-direction:column;gap:4px}
.lv .od-bn{background:#1F3A68;color:#fff;border-radius:4px;padding:2px 10px;font-size:13px;font-weight:700;width:max-content;max-width:100%}
.lv .od-bn.pos-中央{align-self:center}.lv .od-bn.pos-右{align-self:flex-end}
.lv .od-extra{grid-column:1/-1;font-size:13px;color:#C9D2E0;min-height:1em}
.lv .od-bar{display:flex;gap:8px;align-items:center;margin-top:8px}.lv .od-bar input[type=range]{flex:1;accent-color:var(--lv-navy)}
.lv .od-num{display:flex;gap:4px;align-items:center}.lv .od-num input{width:110px}
/* ★v0.8.7（B-256）カットの候補 */
.lv .od-cut-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
@media (max-width:900px){.lv .od-cut-grid{grid-template-columns:1fr}}
.lv .od-cand{border:1px solid var(--lv-line,#d9dee8);border-radius:8px;padding:8px;margin-bottom:8px}
.lv .od-cand-media{display:flex;flex-direction:column;gap:6px;margin-top:6px}
.lv .od-cand-media[hidden]{display:none}
.lv .od-cand-thumbs,.lv .od-cand-wave,.lv .od-cand-clip{max-width:100%;height:auto;border-radius:4px}
/* 保存期限 */
.lv .ret-grid{display:grid;grid-template-columns:200px 1fr;gap:16px;align-items:start;margin-top:10px}
@media (max-width:640px){.lv .ret-grid{grid-template-columns:1fr}}
.lv .ret-due{font-size:20px;font-weight:700;font-variant-numeric:tabular-nums}
.lv .ret-warn{color:var(--lv-warn);font-weight:700}
.lv .ret-card.ret-まもなく期限{border-left:4px solid var(--lv-warn)}.lv .ret-card.ret-削除予定{border-left:4px solid var(--lv-danger)}
.lv .ret-actions{display:flex;flex-direction:column;gap:8px;margin-top:12px}
.lv .ret-row.ret-削除予定 td{background:var(--lv-danger-soft)}.lv .ret-row.ret-まもなく期限 td{background:var(--lv-warn-soft)}

/* v0.7.1 ライブ配信作業 */
/* 受付質問一覧：1件＝1行。左から「番号・時刻・名前・申込者の項目・識別子」｜「質問文」｜「操作」。行の高さは 40px を基本（2行になる行は 56px まで） */
.lv .ql{border-top:1px solid var(--lv-line);margin-top:2px}
.lv .ql-row{display:grid;grid-template-columns:minmax(150px,268px) minmax(0,1fr) auto;gap:0 10px;align-items:center;min-height:40px;padding:2px 4px 2px 6px;border-bottom:1px solid var(--lv-line);border-left:4px solid transparent}
.lv .ql-meta{font-size:13px;line-height:1.35;overflow-wrap:anywhere;min-width:0}
.lv .ql-no{font-variant-numeric:tabular-nums;font-weight:700}
.lv .ql-who{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.lv .ql-l1{display:flex;flex-wrap:wrap;align-items:baseline;gap:0 6px}
.lv .ql-l1 .ql-ident{margin-left:auto}
.lv .ql-who .ctl-host{margin:0 4px 0 0}
.lv .ql-ident{font-family:var(--lv-mono);font-size:13px;color:var(--lv-sub);overflow-wrap:anywhere}
.lv .ql-body{font-size:15px;line-height:1.3;overflow-wrap:anywhere}
.lv .ql-text{white-space:pre-wrap}
.lv .ql-inst{display:block;font-size:13px;color:var(--lv-gold-ink);background:var(--lv-gold-soft);border-radius:4px;padding:0 6px;margin-top:2px}
.lv .ql-row .lv-chip{padding:0 7px;margin-right:4px;vertical-align:1px;line-height:1.3}
.lv .ql-who .ctl-host{line-height:1.3}
.lv .ql-act{display:flex;flex-wrap:wrap;gap:3px;justify-content:flex-end;align-items:center;max-width:600px}
.lv .ql-act .lv-btn.sm{min-height:30px;padding:2px 6px;white-space:nowrap}
.lv .ctl-qa-act .lv-btn.sm{min-height:30px;padding:2px 9px;white-space:nowrap}
/* メリハリ：未読＝太字（左に紺の線）／既読＝薄く／ブラウザ表示中＝左に赤の線／講演者へ回した＝左に金の線 */
.lv .ql-row.is-unread{border-left-color:var(--lv-btn-line)}
.lv .ql-row.is-unread .ql-text,.lv .ql-row.is-unread .ql-name{font-weight:700}
.lv .ql-row.is-read{background:var(--lv-bg)}
.lv .ql-row.is-read .ql-text,.lv .ql-row.is-read .ql-meta{color:var(--lv-sub);font-weight:400}
.lv .ql-row.is-read .ql-name{font-weight:400}
.lv .ql-row.is-inst{border-left-color:var(--lv-gold)}
.lv .ql-row.is-onb{border-left-color:var(--lv-live);background:var(--lv-live-soft)}
.lv .ql-row.is-hid .ql-text{text-decoration:line-through}
.lv .ql-tools{margin-left:auto;display:inline-flex;flex-wrap:wrap;gap:8px;align-items:center}
.lv .ql-why{margin:4px 0}
@media (min-width:1200px){ .lv .ql-act{flex-wrap:nowrap;max-width:none} }
@media (max-width:900px){ .lv .ql-row{grid-template-columns:1fr} .lv .ql-act{justify-content:flex-start;max-width:none} }
/* 質疑応答（講演者・サポートスタッフが見る画面）：名前＋質問＋指示。右に［非表示（確認済み）］［削除］ */
.lv .ctl-qa-item{display:flex;gap:12px;align-items:flex-start;border-bottom:1px solid var(--lv-line);padding:8px 0}
.lv .ctl-qa-main{flex:1;min-width:0}
.lv .ctl-qa-n{font-size:15px;font-weight:700;color:var(--lv-sub)}
.lv .ctl-qa-q{font-size:20px;font-weight:700;line-height:1.45;overflow-wrap:anywhere}
.lv .ctl-qa-i{font-size:18px;color:var(--lv-gold-ink);font-weight:700;margin-top:2px;overflow-wrap:anywhere}
.lv .ctl-qa-act{display:flex;flex-direction:column;gap:6px;flex:none}
.lv .ctl-qa-item.is-done .ctl-qa-q,.lv .ctl-qa-item.is-done .ctl-qa-i{color:var(--lv-sub)}
@media (max-width:640px){ .lv .ctl-qa-q{font-size:18px}.lv .ctl-qa-i{font-size:16px} }
/* アンケートの登録：但し書き・数・できない理由 */
.lv .ctl-hint{display:block;font-size:13px;font-weight:700}
.lv .ctl-count{font-size:13px;font-weight:700;margin:-4px 0 6px}
.lv .ctl-count.ng{color:var(--lv-danger)}
.lv .ctl-submit{display:flex;flex-wrap:wrap;gap:10px;align-items:center}
.lv .ctl-formerr{color:var(--lv-danger);background:var(--lv-danger-soft);border-radius:var(--lv-radius-sm);padding:6px 12px;font-size:13px;font-weight:700}
/* スイッチャー接続キー：配信サイト・番組コード・接続キーを並べる */
.lv .sw-conn{display:grid;gap:6px}
.lv .sw-row{display:flex;gap:6px;align-items:center}
.lv .sw-row .l{flex:0 0 124px;font-size:13px;font-weight:700;color:var(--lv-sub)}
.lv .sw-row input{flex:1;min-width:0}
.lv .sw-msg{font-weight:700}.lv .sw-msg.ok{color:var(--lv-od)}.lv .sw-msg.ng{color:var(--lv-danger)}
.lv .sw-proto{margin:8px 0 0}
/* 荒らし対策のボタン（投稿の行の横） */
.lv .ctl-mod{display:inline-flex;flex-wrap:wrap;gap:4px;align-items:center}
.lv .ctl-mod-b.warn{border-color:var(--lv-sun);color:var(--lv-sun-ink)}
.lv .ctl-mod-b.danger{border-color:var(--lv-danger-line);color:var(--lv-danger)}
.lv .ctl-modcell{min-width:120px;white-space:normal}
.lv .ctl-modrow{margin:6px 0 0}
.lv .lv-blocks h2{font-size:16px}
/* 講演者への指示の小窓・［対策］の小窓・止める確認の小窓 */
.ctl-instdlg{max-width:560px}
.ctl-instdlg .inst-body{font-size:16px;font-weight:700;line-height:1.5;white-space:pre-wrap;overflow-wrap:anywhere;max-height:30vh;overflow:auto;border-left:3px solid var(--lv-gold);padding:2px 10px;margin:6px 0 10px}
.ctl-dlg .lv-f{display:grid;gap:4px;margin:8px 0}
.ctl-dlg .lv-f > span.l{font-size:13px;font-weight:700;color:var(--lv-sub)}
.ctl-dlg textarea,.ctl-dlg input[type=text],.ctl-dlg input:not([type]){width:100%;font:inherit;padding:6px 10px;border:1px solid var(--lv-line2);border-radius:var(--lv-radius-sm);background:var(--lv-field);color:var(--lv-ink)}
.ctl-instdlg .inst-err{color:var(--lv-danger);min-height:1em;margin:4px 0}
.lv-stopdlg .sd-info{display:grid;grid-template-columns:auto 1fr;gap:4px 12px;margin:0 0 10px;font-size:15px}
.lv-stopdlg .sd-info dt{color:var(--lv-sub);font-weight:700}.lv-stopdlg .sd-info dd{margin:0;font-weight:700;word-break:break-all}
.lv-stopdlg .sd-ex{font-weight:400!important;white-space:pre-wrap}
.lv-stopdlg .sd-err{color:var(--lv-danger);margin:4px 0 0;min-height:1em}
.lv-stopdlg .sd-menu{display:grid;grid-template-columns:minmax(0,1fr);gap:12px;margin:8px 0 12px}
.lv-stopdlg .sd-menu .sd-pick{display:grid;grid-template-columns:minmax(0,1fr);gap:2px;justify-items:start;text-align:left;white-space:normal;width:100%;min-height:44px;padding:8px 14px}
.lv-stopdlg .sd-menu .sd-pick span{font-size:13px;font-weight:400;color:var(--lv-sub)}
.lv-stopdlg .sd-menu .sd-pick.warn{border-color:var(--lv-sun);color:var(--lv-ink)}
.lv-stopdlg .sd-menu .sd-pick.danger{border-color:var(--lv-danger-line);color:var(--lv-danger);background:var(--lv-card)}
.lv-stopdlg .sd-meeting{color:var(--lv-danger);font-weight:700;border:1px solid var(--lv-danger-line);border-left-width:4px;border-radius:var(--lv-radius-sm);padding:6px 10px;margin:8px 0}
.lv-stoptoast{position:fixed;left:50%;bottom:20px;transform:translateX(-50%);z-index:9999;border-radius:var(--lv-radius-sm);padding:10px 16px;font:700 15px/1.5 var(--lv-font);box-shadow:var(--lv-pop)}
.lv-stoptoast.ok{background:#1E7B4F;color:#fff}.lv-stoptoast.ng{background:#B3261E;color:#fff}
.lv-stoptoast[hidden]{display:none}

/* ================= 12. そのほかの画面 ================= */
/* 入稿の画面（番組の中のタブ）に番組のタブを出すときの余白 */
.lv.lv-in-prog{margin-bottom:0}
/* 行の中に入力とボタンを横に並べる小さなフォーム */
.lv .lv-inline{display:flex;flex-wrap:wrap;gap:8px;align-items:center}
.lv .lv-inline input,.lv .lv-inline select{width:auto;flex:0 1 auto}
.lv .lv-wrap{white-space:normal!important}
.lv .lv-right{margin-left:auto}
.lv ul.lv-ul,.lv ol.lv-ul{margin:4px 0 0 18px;padding:0}

/* ================= 13. 小さな部品（テンプレートの中の style の直書きをここへ寄せた） ================= */
.ls-main .lv-gap{margin-top:8px}.ls-main .lv-gap2{margin-top:12px}.ls-main .lv-sub{margin-top:4px}
.ls-main .lv-mt0{margin-top:0}.ls-main h3.lv-mt0{padding-top:0;border-top:0}.ls-main .lv-m0{margin:0}.ls-main .lv-mb{margin-bottom:8px}.ls-main .lv-my{margin-top:8px;margin-bottom:8px}
.ls-main .lv-card > h3:first-child,.ls-main .lv-card > h2 + h3{margin-top:0;padding-top:0;border-top:0}
.ls-main .lv-il{display:inline}
.ls-main .lv-grow{flex:1 1 160px;min-width:0}.ls-main .lv-full{flex-basis:100%}.ls-main .lv-min0{min-width:0}
.ls-main .lv-col{flex-direction:column;align-items:flex-start}.ls-main .lv-end{align-items:end}.ls-main .lv-between{justify-content:space-between}
.ls-main .lv-stack{display:grid;gap:10px}
.ls-main .lv-nowrap{white-space:nowrap}.ls-main .lv-pre{white-space:pre-wrap;font:inherit;margin:4px 0}.ls-main .lv-any{overflow-wrap:anywhere}
.ls-main .lv-b{font-weight:700}.ls-main .lv-big{font-size:20px}.ls-main .lv-tr{text-align:right}
.ls-main .lv-warn-c{color:var(--lv-warn)}
.ls-main .lv-bg-warn,.ls-main table.lv-t tr.lv-bg-warn td{background:var(--lv-sun-soft)}
.ls-main .lv-fs{border:0;margin:0;padding:0;min-width:0}
.ls-main .lv-wa{width:auto}.ls-main .lv-w90{width:90px}.ls-main .lv-w120{max-width:120px}.ls-main .lv-w160{max-width:160px}.ls-main .lv-w300{max-width:300px}
.ls-main .lv-inline .lv-w90{flex:0 0 90px}
.ls-main .lv-form-m{max-width:720px}.ls-main .lv-form-s{max-width:520px}
.ls-main .lv-cell-m{max-width:220px}
.ls-main .lv-empty-act{margin:10px 0 0}.ls-main .lv-after{margin:8px 0 0}
.ls-main .lv-set-main{min-width:0}
.ls-main .lv-sec-card{scroll-margin-top:60px}
.ls-main .lv-cards2{grid-template-columns:repeat(auto-fit,minmax(320px,1fr));gap:0 12px;align-items:start}
#lvform .lv-wide{grid-column:1/-1}
.lv table.lv-t.lv-t-tight th{height:30px;padding:2px 10px}
.lv table.lv-t.lv-t-tight td{height:34px;padding:1px 10px}
.lv .ctl-vsep{align-self:stretch;width:1px;background:var(--lv-line);margin:2px 4px}
.lv .ctl-chatbar{margin:4px 0}
.lv .ctl-layout-in{margin:8px 0;padding:0;border-top:0}

@media (max-width:900px){
  .lv .lv-list-h{display:none}
  .lv .lv-row{grid-template-columns:96px minmax(0,1fr);gap:4px 10px}
  .lv .lv-row .nums,.lv .lv-row .btns{grid-column:2}
  .lv .lv-pmeta{margin-left:0}
}
@media (max-width:640px){
  .lv h1,.lv h1.lv-ptitle{font-size:18px}
  .lv .lv-card{padding:10px 12px}
  .lv .lv-row{grid-template-columns:1fr}
  .lv .lv-row .nums,.lv .lv-row .btns{grid-column:1}
  .lv .lv-row .btns .lv-btn{flex:1 1 auto;min-height:40px}
  .lv .lv-head .lv-actions{margin-left:0;width:100%}
  .lv .lv-ro dl{grid-template-columns:1fr}
  .lv .lv-btn{white-space:normal;text-align:center;min-height:40px}
  .lv .lv-btn.sm{min-height:36px}
  .lv .lv-url{flex-wrap:wrap}
  .lv .lv-stat{flex:1 1 40%}
}
/* フォームの中のボタン・パスワードの欄は、横いっぱいに引き伸ばさない（ログイン画面は別） */
.lv .ls-form > .lv-btn,.lv .ls-form > .ctl-submit{justify-self:start}
.lv .ls-form input[type=password]{max-width:420px}
.lv .ls-auth .ls-form > .lv-btn{justify-self:stretch}
.lv .ls-auth .ls-form input[type=password]{max-width:none}
.lv .ctl-row > .lv-right,.lv .lv-head > .lv-right{display:inline-flex;align-items:center;gap:8px;flex-wrap:wrap}
.lv table.lv-t input[type=checkbox]{width:18px;height:18px;vertical-align:middle}
.lv .lv-filter{gap:0 4px;border-bottom:1px solid var(--lv-line);margin-bottom:8px}
.lv .lv-filter > a{padding:4px 10px 3px;margin-bottom:-1px;color:var(--lv-sub);text-decoration:none}
#panel > .lv-card:first-child{padding-top:10px}
#panel > .lv-card:first-child > .ctl-row:first-child{margin-bottom:4px}
.lv .lv-urlcard + h3{border-top:0;padding-top:0;margin-top:10px}
.lv .lv-urlcard:last-child{border-bottom:0}
/* ★v0.7.2（B-56）この番組をコピーして新規登録 → ★v0.7.3（B-57）入口は管理君の［この予約を複製］に替えた（同じ場所のボタンは［予約を複製］／［予約を作る］。管理君へ移る）
   ・入口は「行の中の小さなボタン」（白地・線の枠）。設定・編集では、基本情報の題の右に置く（実行（副）の扱い。紺の塗りは［保存する］だけ）
   ・登録番組一覧：行のボタンが1つ増えても行の高さが増えない（2段のまま）ように、ボタンの間と左右の余白を少し詰め、ボタンの列を 318px → 384px に広げる
     （1段目に5つ、2段目に［オンデマンド設定］［ログ集計］［コピーして新規登録］が入る幅。文字の大きさ・高さ 30px はそのまま）。広げるのは幅 1200px 以上の画面だけ（それより狭い画面は今までどおりの並び） */
@media (min-width:1200px){ .lv .lv-list-h,.lv .lv-row{grid-template-columns:104px minmax(0,1fr) 184px 384px} }
.lv .lv-row .btns{gap:3px}
.lv .lv-row .btns .lv-btn.sm{padding:2px 6px;white-space:nowrap}
.lv .lv-sec > .h .lv-copy-new{margin-left:auto}
#lvform input.lv-date{width:auto}
.lv .lv-copy-rep h2{margin:0 0 8px}
.lv .lv-copy-rep h2 .lv-small{font-weight:400}
/* ★v0.7.3（B-57）コピーの結果は折りたためる（予約の複製で写した番組の「設定・編集」の上。題の行を押すと開け閉めできる。開け閉めの印は題の左） */
.lv details.lv-copy-rep > summary{cursor:pointer;list-style-position:outside;margin-left:18px}
.lv details.lv-copy-rep > summary h2{display:inline;margin:0}
.lv details.lv-copy-rep[open] > summary{margin-bottom:8px}
.lv .lv-copy-rep{margin-bottom:12px;border-top:2px solid var(--lv-gold)}
.lv .lv-copy-dl{display:grid;grid-template-columns:150px minmax(0,1fr);gap:0;margin:0}
.lv .lv-copy-dl dt{font-weight:700;color:var(--lv-head);padding:6px 8px 6px 0;border-top:1px solid var(--lv-line)}
.lv .lv-copy-dl dd{margin:0;padding:6px 0;border-top:1px solid var(--lv-line);overflow-wrap:anywhere}
.lv .lv-copy-dl dt:first-of-type,.lv .lv-copy-dl dt:first-of-type + dd{border-top:0}
.lv .lv-copy-it{display:inline-block;margin-right:14px;white-space:nowrap}
/* ★v0.7.3（検収2）コピーの結果：開いた状態でも最初の画面を埋めない。先に見せるのは要点（注意・写したもの・お知らせ）、細かい一覧は［くわしく見る］で開く */
.lv .lv-copy-sum{margin:0 0 6px;line-height:1.6}
.lv .lv-copy-sum .lv-copy-notes{margin:4px 0 0}
.lv details.lv-copy-more > summary{cursor:pointer;display:inline-block;padding:3px 10px;border:1px solid var(--lv-line);border-radius:4px;background:#fff;font-weight:700;list-style:none}
.lv details.lv-copy-more > summary::-webkit-details-marker{display:none}
.lv details.lv-copy-more > summary::before{content:"＋ "}
.lv details.lv-copy-more[open] > summary::before{content:"－ "}
.lv details.lv-copy-more[open] > summary{margin-bottom:8px}
.lv details.lv-copy-more .lv-small{font-weight:400}
.lv .lv-copy-rep .lv-note{margin:0 0 6px}
/* ★v0.7.2（B-51）登録番組一覧：取引先名のすぐ後ろに「／登壇企業・講師」を出す
   ・1行の高さを増やさない：番組名が1行目に入るかどうかは、今までとほぼ同じに決まる（登壇企業は、1行目の空いた幅だけを使う。最小 4字ぶん）。
     入りきらない名前は「…」で切り、全文は重ねたときの説明（title）に入れる
   ・絞り込みの欄：案内「タイトル・番組ID・取引先・登壇企業・講師」が読める幅にする（案内の字は 13px。題の行は 1366px でも1行のまま） */
.lv .lv-row .cl{flex:1 1 0;min-width:4em;max-width:max-content;margin-left:-8px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:15px;line-height:1.4;color:var(--lv-ink)}
.lv .lv-row.past .cl{color:var(--lv-sub)}
.lv .lv-list-actions form input{width:290px}
.lv .lv-list-actions form input::placeholder{font-size:13px}
@media (max-width:640px){
  .lv .lv-copy-dl{grid-template-columns:1fr}
  .lv .lv-copy-dl dd{border-top:0;padding-top:0}
  .lv .lv-sec > .h .lv-copy-new{margin-left:0}
  .lv .lv-row .btns .lv-btn.sm{white-space:normal}
}
/* ★v0.7.3（B-58）請求の印（登録番組一覧の行・設定編集の「基本情報」。直伝スタッフだけ）
   ・文字の印（請求なし／請求対象／請求書あり＋理由）。状態の印（チップ）と同じ形：丸薬・枠なし・押せるように見せない。絵（アイコン）は付けない
   ・色は UI の決まり §1：黄土＝注意（請求なし・下書き・保留）／灰（対象外）／青（請求対象）／緑（請求書あり）。赤は使わない
   ・［予約を作る］は行の中の小さなボタン（白地・線の枠）。行のボタンは2段のまま（行の高さは増やさない）
   ★v0.7.3（B-57）後半：［コピーして新規登録］をやめ、同じ場所（ボタンの列の最後）に［予約を作る］（請求なしの番組）／［予約を複製］（予約と結んである番組）を置く */
.lv .lv-chip.lv-bill{cursor:default}
.lv .lv-sec > .h .lv-bill-link{font-weight:400}
/* 行の高さを増やさない：印が1つ増えて2行目（番組ID・場所・状態の印）が折り返しても、ボタンの列（2段＝63px）の高さに収まるようにする。
   文字の大きさ（13px）は変えない。印の行の高さを 1.5 → 1.4 に、折り返したときの行の間と、番組名との間を 0 に（番組名 22px＋印 20px×2＝62px） */
/* ★v0.7.3（検収 E）この詰め方は、直伝スタッフの行（請求の印がある行）だけにする。お客様の行は v0.7.2 のまま（スマホ幅で 6px 変わっていた） */
.lv .lv-row.lv-staffrow .meta{row-gap:0;margin-top:0}
.lv .lv-row.lv-staffrow .meta .lv-chip{line-height:1.4}

/* ★v0.7.3（検収 E）登録番組一覧の行の高さを v0.7.2 以下に戻す（請求の印のぶん、2行目が折り返して行が高くなっていた：番組名が2行の行で 95px → 113px）
   ・直伝スタッフの行（請求の印がある行＝.lv-staffrow）だけ。お客様の行は v0.7.2 のまま（印も無い）
   ・やり方：請求の印を、2行目（番組ID・場所・状態の印）の並びから外に出す＝2行目の中身は v0.7.2 と同じになり、折り返し方も v0.7.2 と同じ（増えない）。
     HTML の中の順番は、今までどおり番組ID のすぐ後ろ（読み上げの順番・重ねたときの説明も今までどおり）。言葉（請求なし／請求対象／請求書あり＋理由）は切らずに全部出す
   ・広い画面（901px 以上）：「視聴の人数」の列のいちばん下（3行目。列の幅 184px に、いちばん長い「請求書あり（下書き）」も入る）。
     人数2行＋印1行＝約61px で、ボタンの列（2段＝63px）の高さに収まる（行は高くならない）。印が縦に1列に並ぶので、「請求なし」の番組を見つけやすい
   ・スマホ幅（640px 以下）：請求の印は日付の行の右、「あと◯日」「本日」は時刻の行の右（どちらも空いている所）。印の理由（…）は、入りきらないときだけ「…」で切る
   ・★v0.7.3（検収2）その間の幅（641〜900px）：日付の列（幅 96px）の、日付と時刻のすぐ下（空いている所）。日付の列は行の上にそろえる（直伝スタッフの行だけ）。
     理由つきの長い印（請求書あり（下書き）など）は、理由の前で折り返して2行にする（言葉は切らない）。印が左に縦1列に並ぶので、見つけやすい。
     2行目の中身は v0.7.2 と同じになり、行は高くならない（前は、印のぶん2行目が折り返して 18px 高くなる行があった）
   ・スマホ幅の［予約を作る］［予約を複製］は、押せる大きさ（高さ 44px 以上）。そのぶん（4px）行が高くならないよう、直伝スタッフの行の段の間を 4px → 2px にする */
@media (min-width:901px){
  .lv .lv-row.lv-staffrow{position:relative}
  .lv .lv-row.lv-staffrow > .nums{padding-bottom:21px;line-height:1.35}   /* 人数2行（約40px）＋印（20px）＝約61px ≦ ボタンの列 63px。印の場所を空けておく */
  .lv .lv-row.lv-staffrow .meta .lv-bill{position:absolute;top:calc(50% + 10px);left:calc(100% - 12px - 318px - 12px - 184px);max-width:184px;overflow:hidden;text-overflow:ellipsis;display:block}
}
@media (min-width:1200px){
  .lv .lv-row.lv-staffrow .meta .lv-bill{left:calc(100% - 12px - 384px - 12px - 184px)}
}
@media (min-width:641px) and (max-width:900px){
  .lv .lv-row.lv-staffrow{position:relative}
  .lv .lv-row.lv-staffrow > .lv-date{align-self:start}
  .lv .lv-row.lv-staffrow .meta .lv-bill{position:absolute;left:12px;top:48px;display:block;max-width:104px;white-space:normal;word-break:keep-all;line-height:1.3;border-radius:10px;padding:1px 8px}
  .lv .lv-row.lv-staffrow.no-hm .meta .lv-bill{top:27px}
}
@media (max-width:640px){
  .lv .lv-row.lv-staffrow{position:relative;row-gap:2px}
  .lv .lv-row.lv-staffrow .meta .lv-bill{position:absolute;top:3px;right:12px;display:block;max-width:calc(100% - 150px);overflow:hidden;text-overflow:ellipsis}
  .lv .lv-row.lv-staffrow .meta .lv-left{position:absolute;top:24px;right:12px}
  /* ★v0.7.3（検収2）時刻の無い行（日付だけ）：「あと◯日」は2行目の並びの中のまま（v0.7.2 と同じ場所）。日付の行の右は請求の印だけにして、理由（…）まで切らずに出す
     （前は「あと◯日」も日付の行に置いたので、請求の印の理由が「…」で切れていた） */
  .lv .lv-row.lv-staffrow.no-hm .meta .lv-left{position:static}
  .lv .lv-row .btns .lv-btn.lv-mkbook,.lv .lv-row .btns .lv-btn.lv-copy-new{min-height:44px}
}

/* ===== ★v0.7.3（検収3）［内容を確かめる・直す］（複製の印のある番組の、アンケート・バナー・ポップアップの一覧） =====
   ・バナーの直す欄：表が横に送れる幅（スマホ）でも、直す欄は「見えている幅」にとどめる（横に送っても左に止まる・幅は画面の幅まで）＝390px で全部読める
   ・スマホ幅では、たたんだ見出しを押しやすい高さ（44px）にする。パソコン幅は今のまま */
.lv table.lv-t tr.bn-edit > td{padding-top:0;white-space:normal;height:auto}
.lv .bn-edit-in{position:sticky;left:0;box-sizing:border-box;width:100%;max-width:calc(100vw - 66px);white-space:normal}
.lv .ctl-editpause{margin-bottom:8px}
@media (max-width:640px){
  .lv details.ctl-edit > summary{min-height:44px;box-sizing:border-box;padding:12px 0}
  .lv .bn-edit-in .lv-seg{flex-wrap:wrap}
}
/* ★v0.7.3（検収3）設定・編集の「開催日より後になっています」の文（lv-warn-text）に色が付いていなかった → 注意の色にする */
.lv .lv-warn-text{color:var(--lv-warn);font-weight:700}
/* ★v0.7.3（B-65）配信確認用の小窓の音声 オフ／オン */
.lv .ctl-sound{display:grid;gap:2px}

/* ===== ★v0.7.3（B-68）音声質問のタブの上の、たたんだ「音声質問の決まり」 ===== */
.lv details.ctl-rules{margin:6px 0 10px}
.lv details.ctl-rules > summary{cursor:pointer;color:var(--lv-sub)}
.lv details.ctl-rules ol{margin:6px 0 0;padding-left:1.7em;display:grid;gap:3px}
@media (max-width:640px){ .lv details.ctl-rules > summary{min-height:44px;box-sizing:border-box;padding:12px 0} }
/* ★v0.7.4 オンデマンド設定のプレビュー：本物の録画（映像の枠いっぱい。状態の文字は映像の上に重ねない） */
.lv .od-video.real{display:block;background:#000}
.lv .od-video.real video{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;background:#000;border-radius:4px}
.lv .od-video.real .od-notice{z-index:1}

/* ★v0.8.7（B-258 の 3）動画の点検：要確認（赤）のチップと、項目の色 */
.lv .lv-chip.ng{background:var(--lv-danger-soft);color:var(--lv-danger)}
.lv .vod-ck{margin:4px 0 0;padding-left:1.1em}
.lv .vod-ck li{margin:2px 0}
.lv .vod-ck-warn{color:var(--lv-warn)}
.lv .vod-ck-bad{color:var(--lv-danger)}

/* ★v0.9.1（製作指示書 9）取り込んだ今の Gostream の視聴URLの数（登録・発行・残り）。残りは大きく。下回ったら黄土の地と印（色だけにしない＝文字と印も） */
.lv .lv-num.lv-big{font-size:30px;line-height:1.15}
.lv .lv-pool .lv-pool-left{min-width:180px}
.lv .lv-poolrow{display:flex;flex-wrap:wrap;gap:2px 14px;margin-top:4px;font-size:13px;color:var(--lv-sub)}
.lv .lv-poolrow b{color:var(--lv-ink);font-variant-numeric:tabular-nums}
.lv .lv-poolrow .left b{font-size:18px;color:var(--lv-head)}
.lv .lv-poolrow.low .left{background:var(--lv-warn-soft);color:var(--lv-warn);border-radius:4px;padding:0 6px;font-weight:700}
.lv .lv-poolrow.low .left b{color:var(--lv-warn)}
.lv .lv-poolrow svg{width:14px;height:14px;vertical-align:-2px}
/* 申込のURL・文面：確かめの一覧・文面の見本・記録 */
.lv .lv-check-list{margin:6px 0 0;padding-left:1.2em;max-height:320px;overflow:auto}
.lv .lv-check-list li{margin:2px 0}
.lv .lv-urlsample{border:1px solid var(--lv-line);border-left:3px solid var(--lv-gold);border-radius:var(--lv-radius-sm);padding:10px 14px;background:var(--lv-card);font-size:14px;line-height:1.8;overflow-wrap:anywhere}
.lv .lv-urlsample a{font-weight:700}
.lv textarea.lv-text-lg{min-height:220px;font-family:inherit}
.lv .lv-hero-prev{max-width:100%;max-height:200px;border:1px solid var(--lv-line);border-radius:var(--lv-radius-sm);display:block}
.lv .lv-calc{font-size:17px;font-weight:700;color:var(--lv-head)}

/* 直伝の取り出し：その場かぎりのファイル用パスワードを見せる欄 */
.lv .lv-pwshow{font-family:var(--lv-mono);font-size:20px;letter-spacing:.06em;padding:10px 12px;width:100%;max-width:420px}
