*{box-sizing:border-box;margin:0;padding:0}
body{background:#f3f3f3;color:#0b0b0b;font:13px/1.55 'Malgun Gothic','Segoe UI',sans-serif}
a{color:inherit;text-decoration:none}

/* 최상단 띠 */
.bar{background:#fff;height:52px;display:flex;align-items:center;padding:0 16px;border-bottom:1px solid #e3e3e2}
.bar .bi{color:#0b0b0b;font-size:16px;font-weight:700;letter-spacing:.5px}
.bar .sp{flex:1}
.bar .meta{color:#73726c;font-size:11.5px;margin-right:10px}
.bar button{background:#e8342a;color:#fff;border:0;border-radius:3px;padding:5px 12px;font-size:11.5px;cursor:pointer;font-family:inherit}   /* ★[REFBTN] 종료=빨강 */
.bar button:hover{background:#c72a21}

/* 상단 대분류 */
.top{display:flex;align-items:stretch;height:50px;background:#fff;border-bottom:3px solid #0b0b0b}
.top .ham{flex:0 0 205px;width:205px;background:#0b0b0b;color:#fff;display:flex;align-items:center;
  gap:8px;padding:0 16px;font-size:14px;font-weight:700;white-space:nowrap}
.top b{display:flex;align-items:center;padding:0 15px;font-size:13.5px;font-weight:500;color:#52514e;
  cursor:pointer;white-space:nowrap}
.top b:hover{background:#f3f3f3}
.top b.on{color:#dc2626;font-weight:700}

/* 본체 */
/* ★[NAV2ROW] 260922 2차 메뉴를 1차처럼 가로 한 줄로 내린다.
   [왜] PC 에서 2차만 왼쪽에 세로로 쌓여 1차와 모양이 달랐다(실측 260922). */
.wrap{display:block;min-height:calc(100vh - 52px - 50px - 62px)}
.side{width:100%;background:#fcfcfb;border-bottom:1px solid #e3e3e2}
/* ★[NAV2ROW] 260922 칸은 sidenav 안에 있다 - 여기에 걸어야 가로가 된다 */
#sidenav{display:flex;flex-wrap:nowrap;max-width:100%;
         overflow-x:auto;-webkit-overflow-scrolling:touch}
#sidenav::-webkit-scrollbar{height:0}
.side h4{display:none}   /* ★[NAV2ROW] 260922 1차에 이미 이름이 떠 있다 */
/* ★[NAV2ROW2] 260922 2차 띠를 1차(.top 50px)와 같은 높이로.
   칸 49px + 띠 밑줄 1px = 50px. 1차는 칸 47px + 밑줄 3px = 50px (실측 260922). */
.side a{flex:0 0 auto;white-space:nowrap;display:flex;align-items:center;height:49px;padding:0 14px;
        border-bottom:0;color:#52514e;font-size:12.5px;cursor:pointer}
.side a:hover{background:#fcfcfb}
.side a.on{color:#dc2626;font-weight:700}
.side a.on:before{content:'· '}
.side a.off{color:#898781;cursor:default}
.side a.off:hover{background:#fff}
.main{padding:20px 18px;min-width:0;border-left:0}   /* ★[NAV2ROW] 260922 */
h2{font-size:18px;font-weight:700;margin-bottom:13px}
.note{background:#fff6e6;border:1px solid #f0d9a8;color:#7a5a13;padding:9px 13px;border-radius:3px;font-size:12px;margin-bottom:12px}

/* 탭 */
.tabs{display:flex;gap:0;margin:0}
.tabs button{background:#73726c;border:1px solid #73726c;border-right:0;border-bottom:0;border-radius:0;
  padding:8px 15px;font-size:12.5px;cursor:pointer;color:#fff;position:relative;font-family:inherit}
.tabs button:first-child{border-radius:3px 0 0 0}
.tabs button:last-child{border-right:1px solid #73726c;border-radius:0 3px 0 0}
.tabs button.on{background:#fff;color:#0b0b0b;font-weight:700;border-color:#e3e3e2}
.tabs button:not(.on):hover{background:#73726c}
.tabs button .dot{position:absolute;top:5px;right:5px;width:5px;height:5px;border-radius:50%;background:#dc2626}

/* 폼 */
.card{background:#fff;border:1px solid #e3e3e2;border-radius:0 3px 3px 3px;margin-bottom:14px;max-width:980px}
.tabs{max-width:980px}
.card h3{font-size:13px;font-weight:700;color:#0b0b0b;padding:11px 14px;border-bottom:1px solid #e3e3e2}
table.form{width:100%;border-collapse:collapse}
table.form th{width:205px;background:#fcfcfb;border-bottom:1px solid #f3f3f3;border-right:1px solid #f3f3f3;
  text-align:left;padding:10px 14px;font-weight:700;font-size:12.5px;color:#52514e;vertical-align:top}
table.form td{border-bottom:1px solid #f3f3f3;padding:8px 14px}
table.form tr:last-child th,table.form tr:last-child td{border-bottom:0}
input[type=text],select{border:1px solid #e3e3e2;border-radius:3px;padding:6px 10px;font-size:12.5px;
  width:320px;max-width:100%;font-family:inherit}
input.w-s{width:120px}
input.w-l{width:100%}
select{width:auto;min-width:200px}
input[type=text]:focus,select:focus{outline:2px solid #b9d0ee;border-color:#7aa7dd}
input::placeholder{color:#b4bcc8;opacity:1}   /* ★[PLACEHOLDER] 260923 예시 글자는 연하게 - 값과 구분 */
/* ★[THUMBALIGN] 260923 배지 방식 줄 오와열 · ★[LCROW] 260923 줄별 색은 한 줄 배치 (대표 시안 08:41)
   한 줄 = N줄 일반 [칸] 강조 [칸] · 줄 묶음 320px(다른 칸과 같음) · 일반 칸 = 강조 칸 = 반반 · 좁으면 같이 줄어 잘림 없음 */
.lcgrid{display:flex;flex-direction:column;align-items:stretch;gap:10px;padding:6px 0 4px;width:320px;max-width:100%}
.lcrow{display:flex;align-items:center;gap:8px;min-width:0}
.lcrow>b{flex:0 0 30px}
.lcl,.lcB{flex:1 1 0px;min-width:0;display:flex;align-items:center;gap:6px;white-space:nowrap}
.lcgrid input{flex:1 1 0px;min-width:0;width:auto}
.bdrow{display:flex;gap:30px;align-items:center;flex-wrap:wrap}
.bdsel{width:320px;max-width:100%}
input.bdtxt{width:232px;margin-left:0}
@media (max-width:700px){ .lcgrid{width:100%} .bdrow{gap:8px} .bdsel{width:100%} input.bdtxt{width:100%} }
input.bad{border-color:#dc2626;background:#fef2f2}
input[type=file]{font-size:12px}
.hint{color:#73726c;font-size:11.5px;margin-top:4px}
.req{color:#dc2626;margin-left:3px}
.calc{display:inline-block;background:#f3f3f3;border:1px solid #cfe0f5;color:#0b0b0b;border-radius:3px;
  padding:6px 12px;font-weight:700;font-family:Consolas,monospace}
.warn{color:#dc2626;font-size:12px;margin-top:5px}
.bad-t{color:#dc2626;font-size:12px;margin-top:5px}

/* 버튼 */
.btns{display:flex;gap:6px;align-items:center;margin:12px 0 22px}
.card>.btns{padding:0 14px}   /* ★[CARDPAD] 260929 카드 바로 아래 단추줄 — h3 와 같은 14px 들여쓰기 (표 칸 글자와 줄 맞춤) */
.card>.hint{display:block;padding:0 14px 10px}   /* ★[CARDPAD] 설명줄도 같이 */
button.b{border:0;border-radius:3px;padding:8px 18px;font-size:12.5px;cursor:pointer;font-family:inherit;color:#fff}
button:focus{outline:none}button:focus-visible{outline:2px solid #7aa7dd;outline-offset:1px}
button.red{background:#e8342a}button.red:hover{background:#c72a21}
button.cyan{background:#0b0b0b}button.cyan:hover{background:#2b2b2a}
button.gray{background:#73726c}button.gray:hover{background:#73726c}
button.line{background:#fff;border:1px solid #e3e3e2;color:#52514e}button.line:hover{background:#f3f3f3}
button.b[disabled]{opacity:.4;cursor:not-allowed}
/* ★[DASHPOP] 포맷 팝업 메뉴 — absolute 라 표를 밀지 않는다 */
.popwrap{position:relative;display:inline-block}
.popbtn{cursor:pointer;user-select:none}
.popbtn:hover{color:#0b0b0b}
.pop{position:absolute;top:100%;left:0;z-index:50;background:#fff;border:1px solid #e3e3e2;
  border-radius:3px;box-shadow:0 4px 14px rgba(0,0,0,.16);min-width:96px;padding:3px 0;margin-top:3px}
.pop b{display:block;padding:6px 12px;font-size:12px;font-weight:400;color:#52514e;
  cursor:pointer;white-space:nowrap;text-align:left}
.pop b:hover{background:#f3f3f3}
.pop b.on{font-weight:700;color:#0b0b0b;background:#f2f6fc}
button.b[disabled]:hover{background:#e8342a}
pre.out{background:#12151b;color:#d7dbe2;padding:14px;border-radius:3px;font:12px/1.5 Consolas,monospace;
  white-space:pre-wrap;max-height:520px;overflow:auto}
#schout{box-sizing:border-box;max-width:980px}   /* ★[SCHOUTW] 260927 작업 예약 등록 명령 창 = 위 카드와 같은 폭 (대표 23:00) */

/* 표 */
table.list{width:100%;border-collapse:collapse;background:#fff;border:1px solid #e3e3e2;border-radius:3px;overflow:hidden;font-size:12.5px}
table.list th{background:#fcfcfb;text-align:left;padding:9px 12px;border-bottom:1px solid #e3e3e2;font-weight:700;color:#52514e;white-space:nowrap}
table.list td{padding:9px 12px;border-bottom:1px solid #f3f3f3}
table.list.deep th,table.list.deep td{padding:9px 7px}   /* ★[DEEPCOLS] 260923 편별 표 15칸 - 여백 줄임 */
#dsbox .card,.card.dashwide{max-width:none;margin-right:24px}   /* ★[DASHWIDE] 260923 채널현황 카드만 화면 끝까지 · ★[SNSADMIN5] 위 채널 카드도 */
/* ★[PRESET] 채널 수정 › 패키지 줄 */
.ps-line{display:flex;flex-wrap:wrap;align-items:center;gap:8px}
.ps-line select{width:320px;max-width:100%;box-sizing:border-box}
.ps-line button.sr-fold{padding:3px 11px;font-size:11.5px;border-radius:3px;cursor:pointer;font-family:inherit;
  background:#f3f3f3;color:#0b0b0b;border:1px solid #e3e3e2;white-space:nowrap}
.ps-line button.sr-fold:hover{background:#e3e3e2}
.ps-sep{width:10px}
/* ★[PRESET8I] 예약관리 한 줄 묶음 — PC 는 한 줄, 휴대폰은 드롭 / 시각+버튼 두 줄 */
.sch-ctl{display:flex;flex-wrap:wrap;align-items:center;gap:6px}
.sch-ctl button.b{margin:0}
.sch-ctl > select,.sch-ctl > input,.sch-ctl button.b{height:33px;box-sizing:border-box;padding-top:0;padding-bottom:0;vertical-align:middle}   /* ★[PUBWAIT1] 드롭·시각·[적용] 높이 통일 (작업 예약·공개 시각만) */
/* ★[SCHBTNCLR] 260927 (대표 22:34) ①높이 = 다른 메뉴 버튼과 같게 (PC 33 · 휴대폰 38) ②[적용]·[켜기]/[끄기] 폭 같게 ③[켜기]만 회색 계열 — 하늘색은 다른 메뉴 큰 버튼 색 */
.sch-ctl button.b{min-width:62px !important}
.sch-ctl button.b.cyan{background:#73726c}.sch-ctl button.b.cyan:hover{background:#52514e}
.sch-ctl input:disabled{background:#f3f3f3;color:#898781;border-color:#e3e3e2}   /* ★[SCHOFFGRAY] 꺼진 줄 시각 회색 */
@media (max-width:700px){
  .sch-ctl{gap:8px}
  .sch-ctl > select{flex:1 1 100%}
  .sch-ctl input.sch-t{flex:1 1 0;width:auto !important;min-width:0}
  .sch-ctl button.b{padding:0 14px;font-size:14px;min-width:68px !important}   /* ★[SCHBTNCLR] 켜기(56)·적용(68) 폭 차이 → 둘 다 68 */
  .sch-ctl > select,.sch-ctl > input,.sch-ctl button.b{height:38px}   /* ★[PUBWAIT1] 휴대폰 높이 통일 · ★[SCHBTNCLR] 40→38 (다른 메뉴 버튼 38) */
}
/* ★[SCRIPTRULE] 대본 규칙 — 모든 칸 같은 폭·높이 (다른 메뉴 버튼 높이 33 · 휴대폰 38) */
.sl-ctl{width:280px;height:33px;box-sizing:border-box;padding-top:0;padding-bottom:0;margin:0}
@media (max-width:700px){ .sl-ctl{width:100%;height:38px} }
/* ★[PACKAGE8] 생성 화면 패키지 설명 칸 */
.pk-info{margin-top:6px;padding:6px 9px;border:1px solid #e3e3e2;border-radius:3px;background:#fcfcfb;font-size:12.5px;line-height:1.6;max-width:640px}
.pk-info button.sr-fold{padding:3px 11px;font-size:11.5px;border-radius:3px;cursor:pointer;font-family:inherit;
  background:#f3f3f3;color:#0b0b0b;border:1px solid #e3e3e2;white-space:nowrap}
/* ★[PRESET2] 패키지 값 표 · ★[PACKAGE2] 칸 → 항목 */
@media (max-width:700px){   /* ★[PACKAGE5] 휴대폰에서도 표 모양 유지 */
  #psbox table.ps-tbl{display:table !important;white-space:normal !important;width:100% !important;table-layout:fixed}
  #psbox table.ps-tbl>tbody{display:table-row-group !important}
  #psbox table.ps-tbl tr{display:table-row !important}
  #psbox table.ps-tbl th,#psbox table.ps-tbl td{display:table-cell !important;font-size:11.5px !important;padding:5px 4px !important;word-break:break-all;vertical-align:top}
  #psbox .ps-line{gap:6px}
}
.ps-src{font-size:11.5px;color:#111;font-weight:700;margin-left:4px}
.ps-panel{margin-top:10px;padding:12px 14px;border:1px solid #e3e3e2;border-radius:3px;background:#fcfcfb}
.ps-h{font-weight:700;color:#0b0b0b;margin-bottom:6px}
.ps-sum{font-size:12px;color:#73726c;margin-bottom:6px}
.ps-sum label{margin-left:10px;cursor:pointer}
table.ps-tbl{width:100%}
table.ps-tbl td,table.ps-tbl th{padding:5px 8px !important;font-size:12.5px}
table.ps-tbl tr.ps-diff td{background:#f3f3f3}
.ps-diffkey{background:#f3f3f3;padding:0 4px}
.ps-in{width:260px;max-width:100%;box-sizing:border-box;padding:5px 8px;border:1px solid #e3e3e2;border-radius:3px;font-family:inherit}
/* ★[BENCHADMIN] 260927 소스채널 › 벤치마크 */
#bnbox .card{max-width:none;margin-right:24px}
/* ★[BENCHADMIN3] 삭제 단추·입력칸 — SNS 계정 화면(#srbox)과 같은 모양(접기 단추 스타일) */
#bnbox button.sr-fold{padding:3px 11px;font-size:11.5px;border-radius:3px;cursor:pointer;font-family:inherit;
  background:#f3f3f3;color:#0b0b0b;border:1px solid #e3e3e2;white-space:nowrap}
#bnbox button.sr-fold:hover{background:#e3e3e2}
#bnbox input.sr-in,#bnbox select{width:320px;max-width:100%;box-sizing:border-box}
#bnbox .btns{margin:12px 14px 14px}
.bn-seg{display:inline-flex;border:1px solid #e3e3e2;border-radius:3px;overflow:hidden}
.bn-seg button{border:0;border-right:1px solid #e3e3e2;background:#fff;color:#0b0b0b;padding:6px 18px;font-size:13px;cursor:pointer;margin:0}
.bn-seg button:last-child{border-right:0}
.bn-seg button.on{background:#0b0b0b;color:#fff;font-weight:700}
table.bn-list tr.bn-sec td{background:#fcfcfb;font-weight:700;color:#0b0b0b}
@media (max-width:700px){ #bnbox .card{margin-right:0} }
#srbox .card{max-width:none;margin-right:24px}   /* ★[SNSADMIN3] 소스채널 화면은 카드 전부 화면 끝까지(표 페이지 규칙) */
table.list tr:last-child td{border-bottom:0}
.ok{color:#16a34a;font-weight:700}.no{color:#898781}
.soon{color:#73726c;padding:38px 0;text-align:center;background:#fff;border:1px dashed #e3e3e2;border-radius:3px}

/* 푸터 */
.foot{background:#fff;border-top:1px solid #e3e3e2;color:#52514e;font-size:11.5px;padding:12px 14px;line-height:1.9}
.foot b{color:#0b0b0b;font-weight:500}
.foot .st{color:#dc2626}

/* ★[MOBILE4] 260920 반응형 - 폭과 '터치 기기인지'를 같이 본다.

   ~700px                  폰 규칙      메뉴 스크롤 · 입력칸 세로 1단
   701~1100px              태블릿 규칙  메뉴 스크롤 · 입력칸 2단 · 좌측 메뉴 위로
   1101px 이상 + 터치      태블릿 규칙  ← 폴드 펼침이 여기다
   1101px 이상 + 마우스    PC 규칙      지금 그대로

   ★[왜 터치까지 보나] 실측 260920 —
     폴드를 펴면 폭이 1100 을 넘어 PC 규칙으로 돌아갔다.
     폭만 보면 '넓은 화면 = PC' 인데, 폴드는 넓어도 손가락으로 쓰는 기기다.
     ★pointer:coarse 는 '손가락처럼 큰 것으로 가리키는 기기' 라는 뜻이다.
       마우스는 fine 이라 PC 는 여기에 안 걸린다.

   ★[왜 글자가 작게 보였나] <nav id="topnav" style="display:flex"> 에 flex 가 박혀 있다.
     메뉴가 줄바꿈이 안 돼 문서 폭이 화면보다 넓어지고, 브라우저가 화면을 통째로 줄였다.
     ★메뉴 칸만 옆으로 밀리게 하면(overflow-x) 문서가 안 넓어진다. */

/* ── 태블릿 규칙 : 1100px 이하 ──────────────────────────── */
@media (max-width:1100px){
  html,body{max-width:100%;overflow-x:hidden}
  .bar{flex-wrap:wrap;height:auto}
  #dsbox .card,.card.dashwide{margin-right:0}   /* ★[DASHMOB] 좁은 화면은 위 카드와 같은 폭 (PC 의 24px 우측 여백은 그대로) */

  /* 상단 메뉴 - 그 칸만 손가락으로 민다. 화면 전체는 안 밀린다 */
  .top{height:auto;display:block}
  .top .ham{width:100%;height:46px;font-size:15px}
  #topnav{overflow-x:auto;-webkit-overflow-scrolling:touch;max-width:100%}
  #topnav::-webkit-scrollbar{height:0}
  .top b{flex:0 0 auto;white-space:nowrap;padding:0 14px;height:44px;font-size:14.5px}

  /* 좌측 메뉴 - 위로 올려 가로로 */
  .wrap{display:block;min-height:0}
  /* ★[NAV2ROW] 260922 가로로 놓는 일은 #sidenav 가 한다 */
  .side{width:100%;flex:none;
        border-bottom:1px solid #e3e3e2}
  .side h4{display:none}
  .side a{border-bottom:0;height:44px;padding:0 13px;font-size:14px}   /* ★[NAV2ROW2] 1차 휴대폰 44px 과 같게 */
  .main{width:auto;padding:10px}

  .card{max-width:100%;margin-bottom:10px}
  .tabs{max-width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}
  .tabs button{flex:0 0 auto;white-space:nowrap}

  /* 긴 표는 그 표만 옆으로 민다 */
  table.list{display:block;overflow-x:auto;white-space:nowrap}
  table.list>tbody{display:table;width:100%;min-width:100%}   /* ★[DASHLIST] 260923 머리띠·줄이 끝까지 */
  .btns{flex-wrap:wrap}
  .note{word-break:break-all}
}

/* ── 태블릿 규칙 : 넓어도 터치 기기면 (폴드 펼침) ────────── */
@media (min-width:1101px) and (pointer:coarse){
  #topnav{padding-left:4px !important}   /* ★[NAVALIGN] 261001 1차 메뉴 첫 글자를 [전체 메뉴]·2차 메뉴 글자 시작(18px)에 맞춤 — 4px 왼쪽으로 붙어 있었다 (대표 11:40) */
  html,body{max-width:100%;overflow-x:hidden}
  .bar{flex-wrap:wrap;height:auto}

  /* 상단 메뉴 - 그 칸만 손가락으로 민다. 화면 전체는 안 밀린다 */
  .top{height:auto;display:block}
  .top .ham{width:100%;height:46px;font-size:15px}
  #topnav{overflow-x:auto;-webkit-overflow-scrolling:touch;max-width:100%}
  #topnav::-webkit-scrollbar{height:0}
  .top b{flex:0 0 auto;white-space:nowrap;padding:0 14px;height:44px;font-size:14.5px}

  /* 좌측 메뉴 - 위로 올려 가로로 */
  .wrap{display:block;min-height:0}
  /* ★[NAV2ROW] 260922 가로로 놓는 일은 #sidenav 가 한다 */
  .side{width:100%;flex:none;
        border-bottom:1px solid #e3e3e2}
  .side h4{display:none}
  .side a{border-bottom:0;height:44px;padding:0 13px;font-size:14px}   /* ★[NAV2ROW2] 1차 휴대폰 44px 과 같게 */
  .main{width:auto;padding:10px}

  .card{max-width:100%;margin-bottom:10px}
  .tabs{max-width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}
  .tabs button{flex:0 0 auto;white-space:nowrap}

  /* 긴 표는 그 표만 옆으로 민다 */
  table.list{display:block;overflow-x:auto;white-space:nowrap}
  table.list>tbody{display:table;width:100%;min-width:100%}   /* ★[DASHLIST] 260923 머리띠·줄이 끝까지 */
  .btns{flex-wrap:wrap}
  .note{word-break:break-all}
}

/* ── 폰 규칙 : 700px 이하 ───────────────────────────────── */
@media (max-width:700px){
  body{font-size:15px}
  .card h3{font-size:14.5px}
  .tabs button{font-size:14px}

  /* 입력 표 - 제목 위, 입력칸 아래. 좁아서 2단이면 칸이 눌린다 */
  table.form th,table.form td{display:block;width:auto;border-right:0}
  table.form th{border-bottom:0;padding:10px 12px 4px;font-size:14px}
  table.form td{padding:0 12px 12px}
  input[type=text],input[type=password],select,textarea,.w-s,.w-l{
    width:100% !important;max-width:100%;box-sizing:border-box;
    font-size:16px;padding:9px 10px}
  .hint,.note{font-size:13px}
  table.list{font-size:13.5px}
  .btns button{font-size:14px;padding:10px 16px}
}

/* ★[THUMBFIT] 260926 줄 글자수 칸 + 가로 꽉 차게 체크 */
.fitrow{display:inline-flex;align-items:center;justify-content:space-between;width:320px;max-width:100%;gap:8px}   /* ★[THUMBFIT2] 오른쪽 끝을 다른 칸(320px)과 맞춤 */
.fitrow input[type=text],input.w-fit{width:200px !important;max-width:100%;box-sizing:border-box}
.fitrow input[type=text].dimv{color:#898781}   /* ★[THUMBFIT2] 체크되면 글자수는 상한일 뿐 — 회색 */
.fitw{font-size:12.5px;color:#0b0b0b;white-space:nowrap;display:inline-flex;align-items:center;gap:5px;cursor:pointer}
.fitw input[type=checkbox]{width:16px;height:16px;margin:0}
@media (max-width:700px){ .fitrow{width:100%;flex-wrap:wrap} .fitrow input[type=text],input.w-fit{width:100% !important} }
/* ★[CATMENU] 260926 큰 갈래 — 제목 자리 드롭다운 · 전체 메뉴 지도 */
.bar{position:relative}
.bar .bi.cat{cursor:pointer;user-select:none;padding:6px 10px 6px 4px;border-radius:3px}
.bar .bi.cat:hover{background:#f3f3f3}
.catmenu{display:none;position:absolute;top:44px;left:14px;background:#fff;border:1px solid #d5dbe3;border-radius:3px;
  box-shadow:0 8px 20px rgba(0,0,0,.14);z-index:60;min-width:170px;padding:4px 0}
.catmenu.open{display:block}
.catmenu a{display:block;padding:9px 16px;font-size:13.5px;color:#0b0b0b;cursor:pointer;white-space:nowrap}
.catmenu a:hover{background:#f3f3f3}
.catmenu a.on{color:#dc2626;font-weight:700}
.catmenu a .pend{font-size:11.5px;color:#dc2626;margin-left:6px}
.top{position:relative}
.top .ham{cursor:pointer}
.top .ham.open{background:#2b2b2a}
.mega{display:none;position:absolute;top:100%;left:0;right:0;background:#fff;border-bottom:2px solid #0b0b0b;
  box-shadow:0 10px 24px rgba(0,0,0,.12);z-index:55;padding:16px 24px 20px;
  grid-template-columns:repeat(5,1fr);gap:0 18px}
.mega.open{display:grid}
body.megaopen{overflow:hidden}   /* ★[CATMENU-S] 전체 메뉴 떠 있는 동안 뒤 페이지 안 움직임 */
.mega h4{margin:0 0 8px;font-size:13.5px;color:#0b0b0b;border-bottom:1px solid #e3e7ec;padding-bottom:6px}
.mega h4.on{color:#dc2626;border-color:#dc2626}
.mega a{display:block;font-size:12.5px;color:#333;padding:4px 0;cursor:pointer}
.mega a:hover{color:#0b0b0b}
.mega a.on{color:#dc2626;font-weight:700}
.mega a.pend{color:#898781;cursor:default}
.mega a.pend::after{content:" 예정";font-size:11.5px;color:#dc2626;margin-left:3px}
#topnav b.pend{color:#898781;cursor:default}
#topnav b.pend:hover{background:none}
#topnav b.pend::after{content:" 예정";font-size:11.5px;color:#dc2626;margin-left:3px}
@media (max-width:700px){
  /* 휴대폰은 body 가 짧아 absolute 가 잘린다(실측 260926) → 화면 고정 + 세로 스크롤 */
  .mega{grid-template-columns:1fr;padding:6px 14px 12px;position:fixed;left:0;right:0;max-height:calc(100vh - 150px);overflow-y:auto}
  .mega .col{border-bottom:1px solid #f3f3f3;padding:10px 0}
  /* ★[CATMENU-M] 260926 휴대폰 글자 — 다른 상단 메뉴(14.5~15px)와 같게 */
  .mega h4{border:0;padding:6px 0 4px;font-size:15.5px}
  .mega .items{display:flex;flex-wrap:wrap;gap:4px 18px}
  .mega a{font-size:15px;padding:6px 0}
  .mega a.pend::after,#topnav b.pend::after,.catmenu a .pend{font-size:11.5px}
  .catmenu{left:8px;top:48px;min-width:200px}
  .catmenu a{font-size:16px;padding:12px 18px}
  .bar .bi.cat{font-size:18px}
}
@media (min-width:701px) and (max-width:1100px){
  .mega{grid-template-columns:repeat(3,1fr)}
}

/* ★[REFBTN] 휴대폰에서 '새로 조회' 는 선택칸 아래 한 줄(100% · 42px). PC 는 옆에 그대로 */
@media (max-width:700px){
  button.refbtn{display:block;width:100%;margin:8px 0 0 !important;min-height:42px;font-size:14px}
}
/* ★[SNSADMIN4] 소스채널 › SNS 계정 — 입력폭·버튼·모바일 넘침 */
#srbox table.form{table-layout:fixed}
#srbox table.form td,#srbox .hint{word-break:break-all;overflow-wrap:anywhere}
#srbox input.sr-in,#srbox select{width:320px;max-width:100%;box-sizing:border-box}
#srbox button.sr-fold{padding:3px 11px;font-size:11.5px;border-radius:3px;cursor:pointer;font-family:inherit;
  background:#f3f3f3;color:#0b0b0b;border:1px solid #e3e3e2;white-space:nowrap}
#srbox .btns{margin:12px 14px 14px}
@media (max-width:700px){
  #srbox .card{margin-right:0}
  #srbox input.sr-in,#srbox select{width:100%}
}
@media (min-width:701px) and (max-width:1100px){
  #srbox .card{margin-right:0}
  #srbox input.sr-in,#srbox select{width:100%}
}

/* ── 701~1100px : 폴드 펼침·태블릿 ──────────────────────── */
@media (min-width:701px) and (max-width:1100px){
  body{font-size:14px}
  /* 입력칸은 2단 그대로. 제목 칸만 좁혀 입력칸을 넓게 쓴다 */
  table.form th{width:150px}
  input[type=text],select{max-width:100%;box-sizing:border-box;font-size:15px}
  .w-l{width:100% !important}
}

/* ── 넓은 터치 기기(폴드 펼침) 도 같은 글자 크기로 ───────── */
@media (min-width:1101px) and (pointer:coarse){
  body{font-size:14px}
  /* 입력칸은 2단 그대로. 제목 칸만 좁혀 입력칸을 넓게 쓴다 */
  table.form th{width:150px}
  input[type=text],select{max-width:100%;box-sizing:border-box;font-size:15px}
  .w-l{width:100% !important}
}
/* ★[MENUSEARCH] 260927 메뉴·설정 찾기
   ★[MENUSEARCH4] 평소엔 [검색] 단추만 — 누르면 검색창이 펼쳐진다(PC·휴대폰 같음). 첫 줄 = 「제작 ▾」 ……… [검색][서버 종료]
     두 단추 높이 30px 로 같게 · 줄 높이는 그대로(PC 52px · 휴대폰은 「제작」 높이) · 주소·판 글자는 맨 아래(foot)로 */
.bar{position:relative}
.bar .meta{display:none}
.bar .sp{order:1}
.bar #catbtn{flex:0 0 auto;white-space:nowrap}
.msico{order:2;flex:0 0 auto;display:inline-flex;align-items:center;gap:5px;height:30px;padding:0 12px;margin-right:8px;box-sizing:border-box;
  border:1px solid #e3e3e2;border-radius:3px;background:#fff;color:#0b0b0b;font-size:12.5px;font-weight:600;cursor:pointer;user-select:none;white-space:nowrap}
.msico:hover{background:#f3f3f3;border-color:#0b0b0b}
/* ★[MAILBELL] 안 읽은 메일 단추 — 없으면 숨김 · 있으면 파랑 테두리 · 급한 것 있으면 붉게 */
.mbell{order:2;flex:0 0 auto;display:inline-flex;align-items:center;gap:5px;height:30px;padding:0 10px;margin-right:8px;box-sizing:border-box;
  border:1px solid #e3e3e2;border-radius:3px;background:#fff;color:#73726c;font-size:12.5px;font-weight:600;cursor:pointer;user-select:none;white-space:nowrap}   /* ★[MAILBELL2] 평소 회색 */
.mbell.on{border-color:#0b0b0b;background:#f3f3f3;color:#2b2b2a;font-weight:700}
.mbell.stale{border-color:#d97706;background:#fffbeb;color:#b45309}   /* ★[MAILBELL2] 감시 멈춤 */
.mbell.urg{border-color:#dc2626;background:#fff1f0;color:#dc2626}
.mbell.urg svg{animation:mbellshake 1.2s ease-in-out infinite}

/* ★[NOTEBELL] ★노트 창 — 첫 줄 단추 아래에 뜨는 목록 */
.npanel{position:fixed;top:56px;right:16px;width:min(720px,94vw);max-height:78vh;overflow:auto;background:#fff;border:1px solid var(--c-bd2);border-radius:var(--r);box-shadow:0 8px 28px rgba(0,0,0,.14);z-index:60;padding:10px 12px;display:none}
.npanel.show{display:block}
.npanel h4{margin:2px 0 8px;font-size:13px;display:flex;justify-content:space-between;align-items:center}
.npanel .nrow{padding:7px 6px;border-top:1px solid var(--c-bd);cursor:pointer;font-size:12.5px;display:flex;gap:10px;align-items:center}
.npanel .nrow.new{font-weight:700}
.npanel .nrow .hint{margin-left:auto;white-space:nowrap}
.npanel pre{white-space:pre-wrap;word-break:break-all;font-size:12px;background:#fcfcfb;border:1px solid var(--c-bd);border-radius:var(--r);padding:10px;margin:4px 0 8px;max-height:44vh;overflow:auto}
@keyframes mbellshake{0%,60%,100%{transform:rotate(0)}70%{transform:rotate(-14deg)}80%{transform:rotate(12deg)}90%{transform:rotate(-8deg)}}
.msico svg{width:15px;height:15px}
.bar button{order:3;flex:0 0 auto;height:30px;padding:0 14px;box-sizing:border-box;font-size:12.5px;white-space:nowrap}
/* [검색] 을 누르면 첫 줄 전체가 검색창 — [검색]·[서버 종료] 는 그 아래로 가려진다(PC·휴대폰 같음) */
.msbox{display:none;position:absolute;left:0;right:0;top:0;bottom:0;padding:0 16px;background:#fff;box-sizing:border-box;z-index:80;align-items:center}
.bar.msopen .msbox{display:flex}
#msq{width:100%;height:34px;border:1px solid #e3e3e2;border-radius:3px;padding:0 15px;font-size:13px;font-family:inherit;box-sizing:border-box;background:#fff}
#msq:focus{outline:none;border-color:#0b0b0b;box-shadow:0 0 0 2px rgba(34,192,212,.18)}
.msres{display:none;position:absolute;top:100%;left:16px;right:16px;max-height:460px;overflow:auto;background:#fff;
  border:1px solid #e3e3e2;border-radius:3px;box-shadow:0 8px 22px rgba(0,0,0,.14);z-index:60}
.msit{padding:8px 12px;border-bottom:1px solid #f3f3f3;cursor:pointer}
.msit:last-child{border-bottom:0}
.msit.on,.msit:hover{background:#f3f3f3}
.msit b{font-size:13px;color:#0b0b0b;font-weight:700}
.msk{font-size:11.5px;color:#73726c;margin-left:6px}
.msp{font-size:11.5px;color:#73726c;margin-top:2px}
.msno{padding:8px 12px;color:#73726c;font-size:12px}
tr.msflash > th, tr.msflash > td, .card.msflash > h3{background:#f3f3f3 !important}
/* ★[MSRECENT] 최근 검색어 */
.msrh{display:flex;justify-content:space-between;padding:7px 12px;font-size:11.5px;color:#73726c;border-bottom:1px solid #f3f3f3}
.msrh span{cursor:pointer;color:#73726c}
.msrh span:hover{color:#dc2626}
.msit.msrc{display:flex;align-items:center;gap:8px;font-size:13px;color:#0b0b0b}
.msclk{color:#898781;font-size:13px}
.msx{margin-left:auto;color:#898781;font-size:16px;line-height:1;padding:0 4px;cursor:pointer}
.msx:hover{color:#dc2626}
@media (max-width:700px){
  .bar{flex-wrap:nowrap !important}
  .msbox{padding:0 12px}
  #msq{height:32px}
  .msres{left:12px;right:12px}
  .msico{padding:0 10px}
}
/* ★[TODOMOBILE] 260927 [할일개선] 휴대폰 — 칸 폭(88·100·172 인라인)을 줄이고 단추를 세로로 쌓는다. PC 는 그대로 */
@media (max-width:700px){
  /* 휴대폰 공통 규칙(table.list = 블록+가로스크롤)이 이 표에선 overflow:visible 에 막혀 스크롤도 안 되고 칸 폭도 안 먹었다 → 이 표만 진짜 표로 되돌린다 */
  #tdbox table.list{display:table !important;white-space:normal !important;width:100% !important}
  #tdbox table.list>tbody{display:table-row-group !important}
  #tdbox table.list col:nth-child(1){width:46px !important}
  #tdbox table.list col:nth-child(2){width:66px !important}
  #tdbox table.list col:nth-child(4){width:58px !important}
  #tdbox table.list th, #tdbox table.list td{padding:8px 5px !important;font-size:12.5px}
  #tdbox table.list td{word-break:break-all;vertical-align:top !important}
  #tdbox table.list td:last-child{white-space:normal !important;text-align:center !important}
  #tdbox table.list td:last-child button{display:block;width:100%;margin:0 0 5px 0 !important;padding:5px 0 !important;font-size:12px !important}
}

/* ★[MOBILE3] 261003 채널현황(편별 · 제작 현황) 휴대폰 — 가로로 밀던 긴 표를 영상마다 한 묶음으로 (대표 19:09) */
@media (max-width:700px){
  #pghelp{display:none !important}   /* ★[HELPHIDE] 휴대폰에서는 2차 메뉴 줄의 [설명] 단추를 숨긴다 — 메뉴 이름을 가렸다 (대표 19:12) */
  .side #sidenav{padding-right:0 !important;margin-right:0 !important}
  #main table.mcd, #main table.mcd>tbody, #main table.mcp, #main table.mcp>tbody{display:block !important;width:100% !important;white-space:normal !important;overflow:visible !important}
  #main table.mcd>tbody>tr, #main table.mcp>tbody>tr{display:grid !important;grid-template-columns:repeat(3,minmax(0,1fr));gap:9px 10px;padding:13px 16px;border-bottom:1px solid #e3e3e2}
  #main table.mcd>tbody>tr>td, #main table.mcp>tbody>tr>td{display:block !important;padding:0 !important;border:0 !important;white-space:normal !important;font-size:13.5px;min-width:0;word-break:break-all}
  #main table.mcd>tbody>tr>td::before, #main table.mcp>tbody>tr>td::before{display:block;color:#73726c;font-size:11px;line-height:1.5;font-weight:400}
  #main table.mcd>tbody>tr:first-child{display:flex !important;gap:18px;padding:9px 16px;background:#fcfcfb}
  #main table.mcd>tbody>tr:first-child>th{display:none !important}
  #main table.mcd>tbody>tr:first-child>th:nth-child(2), #main table.mcd>tbody>tr:first-child>th:nth-child(13){display:block !important;padding:0 !important;border:0 !important;background:none !important}
  #main table.mcp>tbody>tr:first-child{display:none !important}
  #main table.mcd>tbody>tr>td:nth-child(18), #main table.mcp>tbody>tr>td:nth-child(1){grid-column:1/-1;order:-1 !important;font-weight:700;font-size:14.5px;line-height:1.5;word-break:keep-all}
  #main table.mcd>tbody>tr>td:nth-child(10){display:none !important}
  #main table.mcd>tbody>tr>td:nth-child(11){display:none !important}
  #main table.mcd>tbody>tr>td:nth-child(12){display:none !important}
  #main table.mcd>tbody>tr>td:nth-child(14){display:none !important}
  #main table.mcd>tbody>tr>td:nth-child(15){display:none !important}
  #main table.mcd>tbody>tr>td:nth-child(1){order:1}
  #main table.mcd>tbody>tr>td:nth-child(2){order:2}
  #main table.mcd>tbody>tr>td:nth-child(3){order:3}
  #main table.mcd>tbody>tr>td:nth-child(17){order:4}
  #main table.mcd>tbody>tr>td:nth-child(6){order:5}
  #main table.mcd>tbody>tr>td:nth-child(4){order:6}
  #main table.mcd>tbody>tr>td:nth-child(5){order:7}
  #main table.mcd>tbody>tr>td:nth-child(13){order:8}
  #main table.mcd>tbody>tr>td:nth-child(7){order:9}
  #main table.mcd>tbody>tr>td:nth-child(8){order:10}
  #main table.mcd>tbody>tr>td:nth-child(9){order:11}
  #main table.mcd>tbody>tr>td:nth-child(16){order:12}
  #main table.mcd>tbody>tr{grid-template-columns:repeat(4,minmax(0,1fr)) !important}
  #main table.mcd>tbody>tr>td:nth-child(1)::before{content:"공개일"}
  #main table.mcd>tbody>tr>td:nth-child(2)::before{content:"포맷"}
  #main table.mcd>tbody>tr>td:nth-child(3)::before{content:"길이"}
  #main table.mcd>tbody>tr>td:nth-child(4)::before{content:"노출"}
  #main table.mcd>tbody>tr>td:nth-child(5)::before{content:"CTR"}
  #main table.mcd>tbody>tr>td:nth-child(6)::before{content:"조회"}
  #main table.mcd>tbody>tr>td:nth-child(7)::before{content:"유지"}
  #main table.mcd>tbody>tr>td:nth-child(8)::before{content:"평균시청"}
  #main table.mcd>tbody>tr>td:nth-child(9)::before{content:"30초"}
  #main table.mcd>tbody>tr>td:nth-child(10)::before{content:"탐색%"}
  #main table.mcd>tbody>tr>td:nth-child(11)::before{content:"1일차"}
  #main table.mcd>tbody>tr>td:nth-child(12)::before{content:"2일차"}
  #main table.mcd>tbody>tr>td:nth-child(13)::before{content:"구독"}
  #main table.mcd>tbody>tr>td:nth-child(14)::before{content:"좋아요"}
  #main table.mcd>tbody>tr>td:nth-child(15)::before{content:"댓글"}
  #main table.mcd>tbody>tr>td:nth-child(16)::before{content:"주제"}
  #main table.mcd>tbody>tr>td:nth-child(17)::before{content:"판정"}
  #main table.mcp>tbody>tr>td:nth-child(2)::before{content:"상태"}
  #main table.mcp>tbody>tr>td:nth-child(3)::before{content:"컷"}
  #main table.mcp>tbody>tr>td:nth-child(4)::before{content:"제작시간"}
  #main table.mcp>tbody>tr>td:nth-child(5)::before{content:"부족"}
  #main table.mcp>tbody>tr>td:nth-child(6)::before{content:"재사용"}
  #main table.mcp>tbody>tr>td:nth-child(7)::before{content:"점수"}
  #main table.mcp>tbody>tr>td:nth-child(8)::before{content:"30초"}
  #main table.mcp>tbody>tr>td:nth-child(9)::before{content:"소스"}
  #main table.mcp>tbody>tr>td:nth-child(10)::before{content:"업로드"}
}
/* ★[CVMOBILE] 261003 오늘 만든 화면의 휴대폰 모양 + 재제작 영상 크기 (대표 18:42 · 18:43) */
#tdbox table.list.t5 col:nth-child(4){width:auto !important}
.cvgrid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:12px}
@media (min-width:701px) and (max-width:1100px){ .cvgrid{grid-template-columns:repeat(3,minmax(0,1fr))} }
@media (max-width:700px){ .cvgrid{grid-template-columns:1fr} }
.cvcard{width:auto;cursor:pointer;border-radius:4px;overflow:hidden;background:#fff}
.cvcard img{display:block;width:100%;aspect-ratio:16/9;object-fit:cover;background:#f3f3f3}
.cvcard .cvct{padding:8px 10px;font-size:13px;line-height:1.5}
.cvcard .cvct>div:first-child{height:39px;overflow:hidden;word-break:break-all}
.scbig{font-size:30px !important;color:#0b0b0b;font-weight:800;line-height:1.2}
@media (max-width:700px){
  #main #tdbox b.scbig{display:block;font-size:44px !important;margin-bottom:2px}   /* 휴대폰 공통 규칙(#main * 14px)보다 세게 */
  #tdbox table.sct, #tdbox table.sct>tbody, #tdbox table.sct>tbody>tr{display:block !important;width:100% !important}
  #tdbox table.sct colgroup, #tdbox table.sct>tbody>tr:first-child{display:none !important}
  #tdbox table.sct>tbody>tr{padding:12px 16px;border-bottom:1px solid #e3e3e2}
  #tdbox table.sct>tbody>tr>td{display:inline-block !important;padding:0 12px 0 0 !important;border:0 !important;font-size:15px !important;width:auto !important}
  #tdbox table.sct>tbody>tr>td:nth-child(4){display:block !important;padding:8px 0 0 !important;font-size:14px !important;line-height:1.75 !important;word-break:keep-all}
  #tdbox .card>div{font-size:14px}
}
.btns.chips button .chn{color:#0b0b0b;font-weight:700;margin-left:5px}
.btns.chips button.cyan .chn{color:inherit}
.cvpan{padding:10px 14px 14px;background:#fff;border-top:1px solid #e3e3e2}
.cvgrid{grid-auto-flow:row dense}
.cvset{grid-column:1/-1;border:2px solid #0b0b0b;border-radius:4px;padding:12px;background:#f7faff}
.cvplay{display:flex;gap:16px;flex-wrap:wrap;align-items:flex-start}
.cvctl{flex:1;min-width:260px;line-height:1.9}
.cvrow{margin-top:6px;display:flex;gap:8px;align-items:center;flex-wrap:wrap}
.cvrow input{width:190px;min-width:0}
.cvsegs{margin-top:8px;display:flex;flex-wrap:wrap;gap:6px 8px;align-items:center;line-height:1.6}
.cvseg{display:inline-flex;align-items:center;gap:6px;padding:4px 10px;border:1px solid #bfd3f7;border-radius:14px;background:#fff;white-space:nowrap}
.cvseg b{color:#0b0b0b}
.cvseg{cursor:pointer}
.cvseg:hover{background:#f3f3f3}
.cvseg em{font-style:normal;color:#16a34a;font-weight:700}
.cvseg.bad{border-color:#dc2626;background:#fef2f2}
.cvseg.v{border-color:#86efac;background:#f0fdf4}
.cvseg.v b{color:#15803d}
.cvseg b{white-space:nowrap}
.cvmvs{display:inline-flex;gap:4px;margin-left:8px}
.cvgsw{flex:0 0 100%;display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-top:2px}
@media(max-width:700px){.cvgsw .b{width:100%;height:40px}}
.cvmv{text-decoration:none;display:inline-flex;align-items:center;justify-content:center;width:26px;height:24px;border:1px solid #e3e3e2;border-radius:4px;color:#52514e;font-size:11px;background:#fff;cursor:pointer}
.cvmv.off{color:#e3e3e2;border-color:#f3f3f3;cursor:default}
@media(max-width:1200px){.cvsegs .cvseg .cvmvs{margin-left:auto}.cvsegs .cvseg .cvmvs+i{margin-left:6px}.cvmv{width:34px;height:30px;font-size:13px}}
@media(max-width:480px){.cvsegs .cvseg{padding:4px 8px !important;gap:4px !important}.cvmvs{gap:3px;margin-left:auto}.cvmv{width:27px;height:28px}.cvsegs .cvseg i{padding:0 2px !important}.cvseg .cvsm{letter-spacing:-.3px}}
.cvseg u{text-decoration:none;color:#dc2626;font-weight:700}
.cvseg i{font-style:normal;color:#dc2626;cursor:pointer;padding:0 2px}
.addbar{display:flex;align-items:center;gap:10px;margin:0 0 12px}
.cvscr{margin:0;padding:14px 18px;background:#0b0b0b;color:#e3e3e2;font-family:inherit;font-size:13px;line-height:1.75;white-space:pre-wrap;word-break:keep-all}
#main #cvbox pre.cvscr b{color:#93c5fd !important}
/* ★[NOZOOM] 261003 휴대폰 · 태블릿에서 두 손가락 확대 · 두 번 두드려 확대를 막는다 (대표 22:01) */
html,body{touch-action:pan-x pan-y}
/* ★[NAVLOCK] 261003 옆으로 미는 메뉴 줄(1차 · 2차 · 탭 · 윗줄)이 위아래로 살짝 끌려 움직이던 것 — 옆으로만 움직이게 (대표 21:51 녹화) */
.top,#topnav,#sidenav,.tabs{overflow-y:hidden !important;touch-action:pan-x;overscroll-behavior:contain}
/* ★[TABSBAR] 261006 탭 줄을 좌우로 밀 때 스크롤 막대를 안 보이게 — 밀기는 그대로 된다 (대표 07:02) */
.tabs{scrollbar-width:none;-ms-overflow-style:none}
.tabs::-webkit-scrollbar{display:none;height:0}
.bar{touch-action:pan-x;overscroll-behavior:contain}
/* ★[BARFIT] 261003 휴대폰 윗줄 — 알림 숫자가 붙으면 단추 줄이 화면보다 넓어져 화면 전체가 좌우로 밀리던 것 (대표 21:43 녹화) */
@media(max-width:480px){
  .bar{padding:0 8px !important;overflow-x:clip}
  .bar .bi.cat{padding:6px 6px 6px 2px !important}
  .bar .mbell,.bar .msico{padding:0 7px !important;margin-right:4px !important;gap:4px !important;min-width:0}
  .bar button{padding:0 8px !important;margin:0 !important}
}
/* ★[CVTABLET] 261003 태블릿 폭(701 ~ 1200) — 컷 줄을 휴대폰처럼 두 줄로(제목 칸이 눌려 세로로 서던 것 · 대표 21:09) */
@media(min-width:701px) and (max-width:1200px){
  #cvbox table.cvc, #cvbox table.cvc>tbody, #cvbox table.cvc>tbody>tr{display:block !important;width:100% !important;box-sizing:border-box}
  #cvbox table.cvc colgroup{display:none !important}
  #cvbox table.cvc>tbody>tr.cvr2{padding:10px 14px;border-bottom:1px solid #f3f3f3}
  #cvbox table.cvc>tbody>tr.cvr2>td{display:inline-block !important;padding:0 14px 0 0 !important;border:0 !important;width:auto !important;text-align:left !important;vertical-align:middle !important}
  #cvbox table.cvc>tbody>tr.cvr2>td.cvtt{display:block !important;padding:4px 0 2px !important;line-height:1.5;word-break:keep-all !important}
  #cvbox table.cvc>tbody>tr.cvp>td{display:block !important;width:auto !important;padding:0 !important}
  #cvbox table.cvc>tbody>tr.cvr2{display:flex !important;flex-wrap:wrap;align-items:center}
  #cvbox table.cvc>tbody>tr.cvr2>td.cvtt{flex:0 0 100%;box-sizing:border-box}
  #cvbox table.cvc>tbody>tr.cvr2>td.cvbt{margin-left:auto;padding-right:0 !important}
}
.cvpk{color:#0b0b0b;font-weight:700;font-size:12px}
.cvstop{margin-left:8px;color:#dc2626 !important;border-color:#fca5a5 !important;padding:3px 12px !important}
.cvcp{margin-left:8px;padding:3px 12px !important}
.tdfw{position:relative;display:inline-flex;flex:0 0 auto}
.tdfw>button.b{min-width:96px;margin:0 !important}
.mnlog{margin:0 14px 12px;padding:10px 12px;background:#fcfcfb;border:1px solid #e3e3e2;border-radius:3px;font-size:12px;line-height:1.6;white-space:pre-wrap;word-break:break-all;max-height:320px;overflow:auto}
/* ★[AITALK] AI대화 표 */
#tdbox table.list.att th{padding:9px 14px;border-bottom:1px solid #e3e3e2;text-align:left;font-size:12px;color:#73726c;font-weight:600;background:#fcfcfb}
#tdbox table.list.att td{vertical-align:top}
#tdbox table.list.att td.atw{color:#73726c;white-space:nowrap}
#tdbox table.list.att td.atp{white-space:nowrap;color:#52514e}
#tdbox table.list.att td.atp b{color:#0b0b0b}
#tdbox table.list.att td.ats{white-space:nowrap;font-weight:600}
#tdbox table.list.att .atb{color:#73726c;font-size:12px;margin-top:6px;line-height:1.7;white-space:normal;word-break:break-all}
@media (max-width:700px){
  #tdbox table.list.att, #tdbox table.list.att>tbody{display:block !important;width:100% !important}
  #tdbox table.list.att colgroup{display:none !important}
  #tdbox table.list.att>tbody>tr{display:grid !important;grid-template-columns:auto auto minmax(0,1fr);align-items:center;border-bottom:1px solid #e3e3e2}
  #tdbox table.list.att>tbody>tr>th:nth-child(4){display:none !important}
  #tdbox table.list.att>tbody>tr>th:nth-child(3){text-align:right !important}
  #tdbox table.list.att>tbody>tr>td{border-bottom:0 !important;white-space:nowrap !important}
  #tdbox table.list.att>tbody>tr>td.atw,#tdbox table.list.att>tbody>tr>td.atp{padding:9px 6px 2px 14px !important}
  #tdbox table.list.att>tbody>tr>td.atp{padding-left:4px !important}
  #tdbox table.list.att>tbody>tr>td.ats{text-align:right !important;padding:9px 14px 2px 6px !important}
  #tdbox table.list.att>tbody>tr>td.att1{grid-column:1 / -1;white-space:normal !important;padding:3px 14px 11px 14px !important;text-align:left !important}
}
.tdone{position:relative}
.tdmenu{position:absolute;left:0;top:100%;margin-top:4px;z-index:70;min-width:200px;background:#fff;border:1px solid #e3e3e2;border-radius:4px;box-shadow:0 2px 6px rgba(0,0,0,.10),0 10px 28px rgba(0,0,0,.20);padding:4px 0;text-align:left}
.tdmenu a{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:9px 14px;font-size:14px;color:#0b0b0b;cursor:pointer;white-space:nowrap}
.tdmenu a:hover{background:#f3f3f3}
.tdmenu a b{color:#0b0b0b;font-weight:700;margin-left:4px}
.tdmenu a i{flex:0 0 auto;width:14px;height:14px;border:1.5px solid #898781;border-radius:50%;box-sizing:border-box;background:#fff}
.tdmenu a.on{font-weight:700}
.tdmenu a.on i{border:4px solid #0b0b0b}
@media (max-width:700px){ .tdone>.tdfw{position:static !important} .tdmenu{left:14px;right:14px;top:46px;margin-top:0;min-width:0} #tdbox .btns.chips.tdone .tdmenu a,#tdbox .btns.chips.tdone .tdmenu a span,#tdbox .btns.chips.tdone .tdmenu a b{font-size:17px !important} .tdmenu{padding:0} .tdmenu a{padding:0 16px;height:57px;box-sizing:border-box} .tdmenu a+a{border-top:1px solid #e9ecf0}   /* ★[TDMENU] 휴대폰이 띄우던 창과 같은 글자 크기(17) · 줄 높이(57) (대표 13:03) */ .tdmenu a i{width:20px;height:20px} .tdmenu a.on i{border-width:5px} }
.tdfa{font-size:15px;line-height:1;opacity:.75;margin-left:3px;vertical-align:-1px}
.tdfs{position:absolute;left:0;top:0;width:100% !important;min-width:0 !important;max-width:none !important;height:100% !important;opacity:0;cursor:pointer;padding:0 !important;margin:0 !important;font-size:16px !important}
@media (max-width:700px){.tdone{gap:6px}.tdone>button.b,.tdone>.tdfw{flex:1 1 0 !important;min-width:0 !important}.tdone>.tdfw>button.b{width:100%;min-width:0 !important;padding-left:4px;padding-right:4px}.tdone>button.b{padding-left:4px;padding-right:4px}}
.tdwho{width:100% !important;min-width:0 !important;max-width:100% !important;height:26px !important;box-sizing:border-box;font:inherit;font-size:12px !important;padding:0 2px !important;border:1px solid #e3e3e2;border-radius:2px;background:#fff;color:#898781;cursor:pointer;-webkit-appearance:none;appearance:none;text-align:center;text-align-last:center}
#tdbox table.list td.tdwc{padding-left:6px !important;padding-right:6px !important}
.tdwho.on{color:#0b0b0b;border-color:#93c5fd;background:#f3f3f3;font-weight:600}
@media(max-width:700px){.cvstop,.cvcp{display:block;width:100%;margin:8px 0 0;height:40px}}
.cvdot{display:inline-block;width:9px;height:9px;border-radius:50%;background:#16a34a;margin-right:7px;vertical-align:middle;position:relative;top:-1px}
.cvpk:empty{display:none}
.cvall{display:flex;align-items:center;gap:10px;margin:4px 14px 10px;color:#52514e;font-size:12.5px}
@media(max-width:700px){.cvall{flex-direction:column;align-items:stretch;margin:4px 12px 10px}.cvall .cvab{width:100%}.cvall .cvab .b{flex:1 1 0;height:44px;font-size:15px}}
.cvab{display:flex;gap:8px;flex:0 0 auto;flex-wrap:wrap}
@media(max-width:700px){.cvall .cvab .b{flex:1 1 40% !important}}
.cvab .b:disabled{color:#c5cad3;border-color:#f3f3f3;background:#fff;cursor:default}
.cvpv{margin:0 14px 12px}
.cvpv video{display:block;width:100%;max-width:640px;max-height:70vh;background:#000;border-radius:6px}
.cvpvh{color:#73726c;font-size:12.5px;line-height:1.6;margin-top:6px}
@media(max-width:700px){.addbar{flex-direction:column;align-items:stretch}.addbar .b{width:100%;box-sizing:border-box}}
@media(max-width:1200px){.cvsegs .cvseg{display:flex;width:100%;box-sizing:border-box;justify-content:flex-start;white-space:normal;min-height:40px}.cvsegs .cvseg i{margin-left:auto;padding:0 6px}.cvsegs>span:not(.cvseg){flex:0 0 100%}}
.cvurl{margin-top:12px;display:flex;gap:8px;align-items:center;flex-wrap:wrap}
.cvurl input{width:360px}
.cvpan>.cvset{margin-top:12px}
@media (max-width:700px){
  /* ★[RMFULL] 휴대폰 재제작 = 화면 폭 전부 (대표 19:52) — 겹겹이 들어가 있던 옆 여백을 없앤다 */
  #cvbox table.cvc>tbody>tr.cvp>td{padding:0 !important}
  .cvpan{padding:10px 8px 14px;margin:0 calc(50% - 50vw)}   /* 화면 끝에서 끝까지 */
  #cvbox, #cvbox table.cvt, #cvbox table.cvc{overflow:visible !important}
  .cvset{padding:8px 0 10px;border-left:0;border-right:0;border-radius:0;margin:0 -8px}
  .cvset .cvctl{padding:0 18px;min-width:0;flex:1 1 100%}   /* ★[RMEDGE] 대상채널 드롭다운 줄과 같은 왼쪽 · 오른쪽 끝(18 ~ 372) — 단추 · 입력 칸 폭 통일 (대표 19:56) */
  .cvrow input{flex:1 1 0;width:auto;height:44px}
  .cvrow button,.cvurl button{height:44px;padding:0 16px}
  .cvurl{margin-left:10px;margin-right:10px}
  .cvurl input{flex:1 1 100%;width:100% !important;height:44px}
  .cvurl button{flex:1 1 100%;width:100%}
  .cvset .cvgo{width:100%;height:48px;font-size:16px !important}
}
@media (min-width:701px){ table.list.ypt .ypb{display:none} }
@media (min-width:701px) and (max-width:1100px){ #tdbox table.list.t5{display:table !important;white-space:normal !important;width:100% !important} #tdbox table.list.t5>tbody{display:table-row-group !important} #tdbox table.list.t5 td:nth-child(4){white-space:normal !important} }   /* ★[TDBTN2] 태블릿 — 긴 제목이 단추를 화면 밖으로 밀던 것 */
/* ★[TDBTN2] 261004 할일 줄 단추 — 일반 단추 · 휴대폰은 제목 아래 가로 한 줄 */
#tdbox button.b.tdab{background:#fff;border:1px solid #e3e3e2;color:#52514e;height:33px;min-width:62px;padding:0 12px;margin:0 0 0 6px !important;font-size:12.5px;box-sizing:border-box}
#tdbox button.b.tdab:hover{background:#f3f3f3}
#tdbox button.b.tdab[data-k="drop"]{color:#dc2626}
#tdbox button.b.tdab[disabled]{opacity:.4;background:#fff}
#tdbox button.b.tdab.cyan{background:#0b0b0b !important;border-color:#0b0b0b !important;color:#fff !important}
@media (max-width:700px){   /* ★[TDBTN2] 휴대폰 B안 — 첫 줄: 담당 · 종류 · 번호 + 단추(오른쪽) / 둘째 줄: 제목(화면 폭 전부) (대표 12:34) */
  #tdbox table.list.t5, #tdbox table.list.t5>tbody{display:block !important;width:100% !important}
  #tdbox table.list.t5 colgroup{display:none !important}
  #tdbox table.list.t5>tbody>tr{display:grid !important;grid-template-columns:58px 42px 58px minmax(0,1fr);align-items:center}
  #tdbox table.list.t5>tbody>tr>th:nth-child(n+4){display:none !important}
  #tdbox table.list.t5>tbody>tr>th{border-bottom:1px solid #e3e3e2 !important}
  #tdbox table.list.t5>tbody>tr>th:nth-child(3){grid-column:3 / -1}
  #tdbox table.list.t5.adt>tbody>tr{grid-template-columns:100px 44px 48px minmax(0,1fr)}
  #tdbox table.list.t5.adt>tbody>tr>td:first-child{white-space:nowrap !important;word-break:keep-all !important}   /* 성과조언 — 첫 칸이 채널 이름 */
  #tdbox table.list.t5>tbody>tr>td[colspan]{grid-column:1 / -1}
  #tdbox table.list.t5>tbody>tr>td{border-bottom:0 !important}
  #tdbox table.list.t5>tbody>tr:not(:first-child){border-bottom:1px solid #e3e3e2}
  #tdbox table.list.t5>tbody>tr>td:nth-child(-n+3){padding-top:9px !important;padding-bottom:3px !important;vertical-align:middle !important}
  #tdbox table.list.t5>tbody>tr>td.tdac{grid-column:4;grid-row:1;text-align:right !important;padding:8px 8px 2px 0 !important;white-space:nowrap !important}
  #tdbox table.list.t5>tbody>tr>td:nth-child(4):not(.tdac){grid-column:1 / -1;grid-row:2;padding:3px 10px 11px 18px !important}
  #tdbox table.list td.tdac button.b.tdab{display:inline-block !important;width:auto !important;min-width:62px;height:32px !important;margin:0 0 0 6px !important;padding:0 10px !important;font-size:13px !important}
}

#cv_ifr{flex:1 1 640px;width:100%;max-width:960px;aspect-ratio:16/9;height:auto;border:0;background:#000}
@media (max-width:700px){
  #tdbox table.list.t5 col:nth-child(1){width:58px !important}
  #tdbox table.list.t5 col:nth-child(2){width:42px !important}
  #tdbox table.list.t5 col:nth-child(3){width:58px !important}
  #tdbox table.list.t5 td:nth-child(3){word-break:keep-all !important;white-space:nowrap !important}
  #tdbox table.list.t5 col:nth-child(4){width:auto !important}
  #tdbox table.list.t5 col:nth-child(5){width:56px !important}
  #tdbox table.list.t5 td{white-space:normal !important}
  /* 채널영상 — 표를 줄 묶음으로: 한 영상 = 첫 줄(폴더 · 포맷 · 길이 · 점수 · 시각 · 업로드) + 제목 줄 */
  #cvbox table.cvt, #cvbox table.cvt>tbody, #cvbox table.cvt>tbody>tr{display:block !important;width:100% !important}
  #cvbox table.cvt colgroup, #cvbox table.cvt tr.cvh{display:none !important}
  #cvbox table.cvt>tbody>tr.cvr{padding:9px 12px;border-bottom:1px solid #e3e3e2}
  #cvbox table.cvt>tbody>tr.cvr>td{display:inline-block !important;padding:0 10px 0 0 !important;border:0 !important;width:auto !important}
  #cvbox table.cvt>tbody>tr.cvr>td.cvtt{display:block !important;padding:5px 0 0 !important;line-height:1.55;word-break:keep-all !important}
  #cvbox table.cvt>tbody>tr.cvd>td{display:block !important;width:auto !important}
  #cvbox table.cvc, #cvbox table.cvc>tbody, #cvbox table.cvc>tbody>tr{display:block !important;width:100% !important}
  #cvbox table.cvc colgroup{display:none !important}
  #cvbox table.cvc>tbody>tr.cvr2{padding:8px 12px;border-bottom:1px solid #f3f3f3}
  #cvbox table.cvc>tbody>tr.cvr2>td{display:inline-block !important;padding:0 10px 0 0 !important;border:0 !important;width:auto !important;text-align:left !important}
  #cvbox table.cvc>tbody>tr.cvr2>td.cvtt{display:block !important;padding:4px 0 0 !important;line-height:1.5}
  #cvbox table.cvc>tbody>tr.cvp>td{display:block !important;width:auto !important}
  #cvbox table.cvc>tbody>tr.cvr2>td button{padding:6px 14px !important;font-size:13px !important;margin:4px 0 0 6px !important}
  #cvbox table.cvc>tbody>tr.cvr2{display:flex !important;flex-wrap:wrap;align-items:center}
  #cvbox table.cvc>tbody>tr.cvr2>td.cvtt{flex:0 0 100%;box-sizing:border-box}
  #cvbox table.cvc>tbody>tr.cvr2>td.cvbt{margin-left:auto;padding-right:0 !important}
  .cvcard{width:auto}   /* ★[MOBILE2] 후보 영상은 한 줄에 하나 — 화면 폭 전부 (대표 18:56) */
  .cvcard .cvct{padding:8px 10px;font-size:14px}
  .cvcard .cvct>div:first-child{height:auto}
  /* ★[MOBILE2] 대상채널 카드의 단추([새로 조회] 등)는 드롭다운과 같은 폭 — 채널 현황 · 제작 현황 (대표 18:58) */
  .main .card table.form.tgt td>button{width:calc(100% + 88px) !important;box-sizing:border-box}
  /* ★[MOBILE2] 채널성과 — 가로로 밀어야 보이던 표를 채널마다 한 묶음으로 */
  #main table.list.ypt, #main table.list.ypt>tbody{display:block !important;width:100% !important;white-space:normal !important;overflow:visible !important}
  #main table.list.ypt tr{display:block !important;padding:10px 14px;border-bottom:1px solid #e3e3e2}
  #main table.list.ypt tr.yph{display:none !important}
  #main table.list.ypt td{display:flex !important;justify-content:space-between;align-items:center;gap:10px;padding:4px 0 !important;border:0 !important;white-space:normal !important}
  #main table.list.ypt td::before{content:attr(data-l);color:#73726c;flex:0 0 auto}
  #main table.list.ypt td:first-child{font-size:15px;padding-bottom:6px !important;justify-content:flex-start}
  #main table.list.ypt td>div{white-space:normal !important;flex-wrap:wrap;justify-content:flex-end;row-gap:2px}
  #main table.list.ypt td:first-child::before{content:""}
  #main table.list.ypt td.ypx{display:none !important}
  #cv_rmurl{width:100% !important}
  #cv_ifr{flex:1 1 100%}
}

/* ═════ ★[UIUNIFY] 260927 디자인 규칙 — 이 블록이 맨 끝이라 위 규칙을 덮는다. 값은 :root 한 곳 ═════ */
:root{--w-card:980px;--w-ctl:320px;--w-ctl-s:120px;--h:33px;--h-m:38px;--h-s:24px;--r:8px;--r-card:12px;
  --fs:12.5px;--fs-s:11.5px;
  --c-bg:#fcfcfb;--c-card:#fff;--c-bd:#e3e3e2;--c-bd2:#e3e3e2;--c-head:#fcfcfb;
  --c-tx:#0b0b0b;--c-lb:#52514e;--c-sub:#73726c;--c-dim:#898781;
  --c-acc:#0b0b0b;--c-acc-h:#2b2b2a;--c-acc-bg:#f3f3f3;--c-err:#dc2626;--c-err-bg:#fef2f2;--c-ok:#16a34a}
body{background:var(--c-bg);color:var(--c-tx)}
/* 상단 — 흰 띠 · 얇은 선 · 청록 없음 */
.bar{border-bottom:1px solid var(--c-bd)}
.bar .bi{color:var(--c-tx)}
.bar button{height:30px;padding:0 12px;background:#fff !important;color:var(--c-err) !important;border:1px solid var(--c-bd2) !important;border-radius:var(--r)}
.bar button:hover{background:var(--c-err-bg) !important}
.top{border-bottom:1px solid var(--c-bd)}
.top .ham{background:#fff;color:var(--c-tx);border-right:1px solid var(--c-bd)}
.top b{color:var(--c-lb)}
.top b.on,.side a.on{color:var(--c-acc) !important;box-shadow:inset 0 -2px 0 var(--c-acc)}
.side{background:#fff;border-bottom:1px solid var(--c-bd)}
.side a{color:var(--c-sub)}
.side a.on:before{content:''}
.side a:hover,.top b:hover{background:var(--c-bg)}
.msico{height:30px;border-radius:var(--r);border-color:var(--c-bd2) !important;background:#fff !important}
.mbell{height:30px;border-radius:var(--r);border-color:var(--c-bd2);color:var(--c-sub)}   /* ★[MAILBELL3] 평소 = [검색] 과 같은 모양 */
.mbell.on{border-color:#0b0b0b;color:#2b2b2a}
.mbell.urg{border-color:var(--c-err);color:var(--c-err)}
.mbell.stale{border-color:#d97706;color:#b45309}
.mbell.mail{background:#dc2626;border-color:#dc2626;color:#fff;font-weight:700}   /* ★[ALERTHUB] 260929 메일이 오면 배경 빨강 — 완전 눈에 띄게 (대표 07:02) */
.mbell.mail svg{animation:mbellshake 1.2s ease-in-out infinite}
#albox .btns .b{white-space:nowrap;min-width:0;padding:5px 12px}   /* ★[ALERTHUB] 분류 단추 — 글자 안 꺾이게 */
#msq{height:30px;font-size:var(--fs);border-radius:var(--r);border-color:var(--c-bd2)}
#msq:focus{border-color:var(--c-acc);box-shadow:0 0 0 3px rgba(37,99,235,.15)}
/* 카드 — 흰 바탕 · 회색 테두리 · 둥근 12 · 제목은 작은 회색 글씨 */
.card{background:var(--c-card);border:1px solid var(--c-bd);border-radius:var(--r-card);overflow:hidden}
.card h3{color:var(--c-sub);font-size:var(--fs);font-weight:600;border-bottom:1px solid var(--c-bd)}
table.form th{background:var(--c-head);color:var(--c-lb);font-weight:600;border-color:var(--c-bd)}
table.form td{border-color:var(--c-bd)}
table.list{border:1px solid var(--c-bd);border-radius:var(--r-card)}
table.list th{background:var(--c-head);color:var(--c-sub);font-weight:600;border-color:var(--c-bd)}
/* 안내 상자 — 노랑 없이 연회색 · 오류만 연빨강 */
.note{background:#fff;border:1px solid var(--c-bd);color:var(--c-sub);border-radius:var(--r)}
.note b{color:var(--c-tx)}
.bad-t,.bad-t b{color:var(--c-err)}
.soon{border-radius:var(--r-card);border-color:var(--c-bd2)}
.ok{color:var(--c-ok)} .no{color:var(--c-dim)} .hint{color:var(--c-sub)}
/* 폭 — 카드·안내·버튼줄·명령창 끝선 980 */
.note,.btns,pre.out{max-width:var(--w-card)}
.dashwide .note,#bnbox .note,#srbox .note,#dsbox .note,#dsbox .btns{max-width:none}   /* ★[DASHNOTEW] 260928 채널현황(제작 현황) 요약 상자도 카드처럼 화면 끝까지 — 표는 끝까지인데 상자만 980px 에서 끊겼다 */
pre.out{border-radius:var(--r)}
/* 칸 — 긴 칸 320 · 짧은 칸 120 · 높이 33 · 둥근 8 */
input[type=text],select,textarea{border:1px solid var(--c-bd2);border-radius:var(--r);font-size:var(--fs);background:#fff;color:var(--c-tx)}
input[type=text],select{height:var(--h);padding-top:0;padding-bottom:0}
input[type=text]:focus,select:focus,textarea:focus{outline:none;border-color:var(--c-acc);box-shadow:0 0 0 3px rgba(37,99,235,.15)}
select:disabled,input:disabled{background:#f3f3f3 !important;color:var(--c-dim) !important;border-color:var(--c-bd) !important}
/* ★[UNI6] 261002 입력칸 폭 = 드롭메뉴 폭 하나 — 짧은 칸(w-s 120) · 긴 칸(w-l 줄 끝까지)도 표 안에서는 320 (대표 18:00 "동일하게") · 예약 줄의 시각 칸(.sch-ctl)은 그대로 */
table.form td > select,table.form td > input[type=text]:not(.w-fit),table.form td > div > select,
.sch-ctl > select,.sl-ctl{width:var(--w-ctl) !important;max-width:100%;min-width:0}
input.w-s,input.w-fit,.sch-ctl > input.sch-t{width:var(--w-ctl-s) !important}
/* 글자 — 칸·표 12.5 · 안내·경고·설명 11.5 */
table.form td,.main td span:not(.hint):not(.req),.main span.no,.main span.ok,.main span.calc,.soon{font-size:var(--fs)}
.note,.bad-t,.note b,.bad-t b{font-size:var(--fs-s)}
.calc{color:var(--c-acc)} .req{color:var(--c-err)}
/* 버튼 — 주(파랑 채움) · 보조(흰 바탕 + 회색 테두리) 두 가지뿐 */
button.b{height:var(--h);padding:0 16px;font-size:var(--fs);border-radius:var(--r) !important;line-height:1;vertical-align:middle;
  background:#fff !important;color:var(--c-lb) !important;border:1px solid var(--c-bd2) !important;font-weight:500}
button.b:hover{background:var(--c-bg) !important}
button.b.red,.sch-ctl button.b.red{background:var(--c-acc) !important;color:#fff !important;border-color:var(--c-acc) !important}
button.b.red:hover{background:var(--c-acc-h) !important}
button.b[disabled]{opacity:.45}
.sch-ctl button.b{min-width:62px !important}
button.sr-fold{height:var(--h-s);padding:0 10px !important;font-size:var(--fs-s) !important;border-radius:var(--r) !important;
  background:#fff !important;color:var(--c-lb) !important;border:1px solid var(--c-bd2) !important}
button.sr-fold:hover{background:var(--c-bg) !important}
.bn-seg{border-color:var(--c-bd2) !important;border-radius:var(--r) !important}
.bn-seg button{height:var(--h);font-size:var(--fs);background:#fff !important;color:var(--c-lb) !important}
.bn-seg button.on{background:var(--c-acc-bg) !important;color:var(--c-acc) !important;font-weight:600}
/* 탭(채널 생성·수정 안쪽) — 위 2차 메뉴와 같은 글자 탭 */
.tabs{border-bottom:1px solid var(--c-bd)}
.tabs button{background:transparent;color:var(--c-sub);border:0 !important;border-radius:0 !important;font-size:var(--fs);height:var(--h);padding:0 14px;font-weight:400}
.tabs button:not(.on):hover{background:transparent;color:var(--c-tx)}
.tabs button.on{background:transparent;color:var(--c-acc);font-weight:600;box-shadow:inset 0 -2px 0 var(--c-acc)}
.tabs button .dot{background:var(--c-err)}
@media (max-width:700px){
  input[type=text],select,button.b,.tabs button{height:var(--h-m)}
  .sch-ctl > select,.sl-ctl,table.form td > select,table.form td > input[type=text]:not(.w-s):not(.w-fit){width:100% !important}
  .sch-ctl button.b{min-width:68px !important}
  #msq{height:32px;font-size:16px}
}

/* ═════ ★[UIUNIFY3] 260928 2차 정리 (대표 07:51) — 1차 세로선 없앰 · 사각 탭 · 휴대폰 글자 14 · 라벨 아래 여백 · 메뉴·표·2차 메뉴는 손 안 댐 ═════ */
.top .ham{border-right:0}
/* ★[HAMTIGHT] 260928 [전체 메뉴] 칸이 옛 파란 사이드바 폭(205px)을 그대로 차지해 1차 메뉴가 멀리 밀려 보였다(대표 19:43) → 글자 폭만큼만 */
.top .ham{flex:0 0 auto;width:auto;padding:0 22px 0 18px}
/* ★[TABNAV2] 260928 태블릿(701~1100px)도 휴대폰처럼 [전체 메뉴]+1차 메뉴 한 줄 · 1차는 옆으로 민다 — 전엔 이 구간만 두 줄로 갈렸다(대표 19:51) */
@media (min-width:701px) and (max-width:1100px){
  .top{display:flex !important;align-items:stretch;overflow-x:auto;-webkit-overflow-scrolling:touch;height:48px;border-bottom:1px solid var(--c-bd2) !important}
  .top::-webkit-scrollbar{height:0}
  .top .ham{width:auto !important;flex:0 0 auto;height:48px !important;padding:0 18px;font-size:14px;border-right:0}
  #topnav{flex:0 0 auto;display:flex;overflow:visible !important;min-width:0}
  .top b{flex:0 0 auto;white-space:nowrap;height:48px}
}
  .top .ham{width:auto !important;flex:0 0 auto;height:48px !important;padding:0 18px;font-size:14px;border-right:0}
  #topnav{flex:1 1 auto;min-width:0;display:flex;overflow-x:auto;-webkit-overflow-scrolling:touch}
  #topnav::-webkit-scrollbar{height:0}
  .top b{flex:0 0 auto;white-space:nowrap;height:48px}
}
/* 안쪽 탭(썸네일·대본 구성…) — 예전 사각 탭 · 색은 지금 규칙(연회색 → 켜지면 흰색 + 파란 윗줄) */
.tabs{border-bottom:1px solid var(--c-bd2);gap:0;padding:0}
.tabs button{background:#f3f3f3 !important;color:var(--c-sub);border:1px solid var(--c-bd2) !important;border-right:0 !important;border-bottom:0 !important;
  border-radius:0 !important;box-shadow:none;margin:0 0 -1px 0;font-weight:500}
.tabs button:last-child{border-right:1px solid var(--c-bd2) !important}
.tabs button:not(.on):hover{background:#e3e3e2 !important;color:var(--c-tx)}
.tabs button.on{background:#fff !important;color:var(--c-acc);font-weight:600;box-shadow:inset 0 2px 0 var(--c-acc)}
@media (max-width:700px){
  /* 라벨(판뉴스 …) 과 그 아래 칸 사이 여백 — 관리자 전체 */
  table.form th{padding:12px 12px 2px}
  table.form td{padding:6px 12px 12px}   /* 라벨 위 · 라벨↔칸 · 칸 아래 = 실측 12~13 으로 같게 (대표 07:57) */
  /* 칸은 전부 화면 폭 — 혼자 짧게 서는 칸 없음 */
  table.form td > input[type=text],table.form td > input[type=text]:not(.w-fit),table.form td > select,table.form td > div > select,table.form td > div > input[type=text]{width:100% !important;max-width:100%}   /* ★[UNI6] 일반 입력칸이 320 에 묶여 드롭메뉴보다 짧았다 — 320 규칙과 같은 무게로 적는다 */
  .sch-ctl > input.sch-t,.fitrow input[type=text],.lcgrid input{width:auto !important}
  /* 글자 = 14 하나 (화면 제목 18 · 상단 이름 16 예외) · 맨 아래 정보 줄도 14 */
  #main *:not(h2),.foot,.foot *,.bar .meta{font-size:14px !important}
  #main h2{font-size:18px !important}
  .bar .bi{font-size:16px !important}
  button.sr-fold{height:30px}
  .foot{padding:10px 12px;line-height:1.7;overflow-wrap:anywhere;word-break:break-all}
}

/* ═════ ★[UIUNIFY4] 260928 (대표 08:06 · 08:13 통합) — 꺼진 칸 흰 바탕 · 패키지 표 옆으로 · 휴대폰 메뉴 3단 · 2차 메뉴 = 파랑 채움 · 본문 굵은 글자 없앰 · 라벨 세로 가운데 ═════ */
/* ② 2차 메뉴 — 켜진 항목 연회색 알약 + 검정 글자 (1차는 파란 글자 + 밑줄) */
#sidenav{min-height:49px;align-items:center;padding:0 6px;gap:2px}
#sidenav a{height:33px;padding:0 12px;border-radius:var(--r);box-shadow:none !important;align-self:center;color:var(--c-sub)}
#sidenav a:hover{background:var(--c-bg)}
#sidenav a.on,#sidenav a.on:hover{background:#f3f3f3;color:var(--c-tx) !important;font-weight:600;box-shadow:none !important}   /* 파랑 채움은 튄다 (대표 08:20) → 연회색 알약 + 검정 글자 */
/* ③ 본문·설명글의 굵은 글자 없앰 — 회색(설명)과 검정(강조)으로만 구분 */
#main .note b,#main .hint b,#main td b,#main .bad-t b,#main .note strong,#main .hint strong{font-weight:400;color:var(--c-tx)}
#main .bad-t b{color:var(--c-err)}

select:disabled,input:disabled,textarea:disabled{background:#fff !important;color:#898781 !important;border-color:var(--c-bd) !important;opacity:1}
select:disabled{-webkit-text-fill-color:#898781}
input:disabled{-webkit-text-fill-color:#898781}
@media (max-width:700px){
  /* ① 휴대폰 메뉴 3단 (PC 와 같게) — [전체 메뉴] 와 1차 메뉴가 한 줄 · 1차는 옆으로 민다 */
  .top{display:flex !important;align-items:stretch;height:44px}
  .top .ham{width:auto !important;flex:0 0 auto;height:44px !important;padding:0 12px;font-size:14px !important;border-right:0}
  #topnav{flex:1 1 auto;min-width:0;display:flex;overflow-x:auto;-webkit-overflow-scrolling:touch}
  .top b{height:44px}
  #sidenav{min-height:44px;padding:0 4px}
  #sidenav a{height:34px}
  /* ④ 휴대폰 라벨 띠 안에서 글자가 아래로 쏠려 보였다(위 12 · 아래 2) → 위아래 같게 · 라벨↔칸 간격은 그대로 12 */
  table.form th{padding:7px 12px 7px}
  table.form td{padding:1px 12px 12px}
  table.form,table.form>tbody,table.form tr{display:block;width:100%;max-width:100%}   /* 안쪽 내용이 넓어도 표가 화면 밖으로 안 자란다 */
  #psbox,#psbox .ps-panel{max-width:100%;min-width:0}
  #psbox .ps-panel{overflow-x:auto;-webkit-overflow-scrolling:touch}
  #psbox table.ps-tbl{display:table !important;white-space:nowrap !important;width:auto !important;min-width:100%;table-layout:auto}
  #psbox table.ps-tbl>tbody{display:table-row-group !important}
  #psbox table.ps-tbl th,#psbox table.ps-tbl td{font-size:14px !important;padding:8px 10px !important;word-break:keep-all;white-space:nowrap}
  #psbox .ps-src{font-size:14px !important}
}

/* ═════ ★[UIUNIFY5] 260928 (대표 08:28) — 라벨 띠 회색 바탕 없앰(흰색) · 휴대폰 [전체 메뉴]+1차 한 줄이 통째로 옆으로 밀림 · 그 줄 밑선 ═════ */
table.form th{background:#fff}                                  /* 라벨(연령대·성별 …) 회색 바탕 → 흰색 · 관리자 전체 · 소제목(시청자·화자)만 구분 */
.top{border-bottom:1px solid var(--c-bd2)}
@media (max-width:700px){
  .top{display:flex !important;overflow-x:auto;-webkit-overflow-scrolling:touch;height:44px;border-bottom:1px solid var(--c-bd2) !important}
  .top::-webkit-scrollbar{height:0}
  .top .ham{flex:0 0 auto;width:auto !important}
  #topnav{flex:0 0 auto;display:flex;overflow:visible !important;min-width:0}
  table.form th{background:#fff}
}

/* ═════ ★[UIUNIFY6] 260928 (대표 08:37) — 본문 큰 제목 없앰 · 2차 켜진 글자 파랑 · 켜진 드롭·칸 테두리 검정 ═════ */
#main > h2{display:none}                                        /* 메뉴에 이미 있는 이름 — 본문에 또 안 쓴다 · 관리자 전체 */
#main > .note:first-child,#main > .card:first-child{margin-top:2px}
/* ★[FMTSUB] 261003 포맷 고르기 = 카드 제목 옆 작은 드롭메뉴(대상채널 카드와 다른 모양 — 채널에 딸린 것) */
.card h3.fmth{display:flex;align-items:center;gap:12px;flex-wrap:wrap}
.card h3.fmth .fmtnone{display:inline-block;height:28px;line-height:28px;min-width:130px;padding:0 12px;margin-left:10px;font-size:12.5px;font-weight:400;border-radius:14px;background:#f3f3f3;color:#898781;box-sizing:border-box}
.card h3.fmth select.fmts{height:28px !important;width:auto !important;min-width:130px;max-width:100%;padding:0 8px;font-size:12.5px;font-weight:400;border-radius:14px;background:#f3f3f3;color:var(--c-tx)}
/* ★[NEWBAND] 261003 채널생성도 다른 메뉴처럼 2차 메뉴 밑에 여백 띠가 보이게(대표 12:04) — 탭 줄을 카드처럼 흰 바탕 · 위 선 · 화면 끝까지 */
#main > .tabs.nwt{background:#fff;max-width:none !important;margin-left:-18px;margin-right:-18px;padding-left:18px;border-top:1px solid var(--c-bd)}
@media (max-width:1100px){ #main > .tabs.nwt{margin-left:-10px;margin-right:-10px;padding-left:10px} }
@media (min-width:1101px) and (pointer:coarse){ #main > .tabs.nwt{margin-left:-10px;margin-right:-10px;padding-left:10px} }
#sidenav a.on,#sidenav a.on:hover{background:#f3f3f3;color:var(--c-acc) !important;font-weight:600}
input[type=text]:not(:disabled),select:not(:disabled),textarea:not(:disabled){border-color:#52514e !important}   /* 켜진 칸 = 검정 테두리 · 꺼진 칸 = 옅은 회색 (글자·선 둘 다) */
input[type=text]:not(:disabled):focus,select:not(:disabled):focus,textarea:not(:disabled):focus{border-color:var(--c-acc) !important}

/* ═════ ★[UIUNIFY7] 260928 (대표 08:45) — 드롭·칸·버튼 한 줄에서 같은 높이·같은 기준선 · 검정 테두리는 켜짐/꺼짐이 섞인 줄(예약관리)만 ═════ */
input[type=text],select,button.b{vertical-align:middle;height:var(--h);box-sizing:border-box}
.refbtn{height:var(--h) !important;margin:0}
input[type=text]:not(:disabled),select:not(:disabled),textarea:not(:disabled){border-color:var(--c-bd2) !important}   /* 다른 곳은 원래 회색 테두리 */
.sch-ctl select:not(:disabled),.sch-ctl input:not(:disabled){border-color:#52514e !important}                       /* 켜짐·꺼짐이 같이 있는 줄만 검정 */
input[type=text]:not(:disabled):focus,select:not(:disabled):focus,textarea:not(:disabled):focus,.sch-ctl select:not(:disabled):focus,.sch-ctl input:not(:disabled):focus{border-color:var(--c-acc) !important}
@media (max-width:700px){ input[type=text],select,button.b{height:var(--h-m)} .refbtn{height:var(--h-m) !important} }

/* ═════ ★[UIUNIFY7B] 260928 (대표 08:45 · 08:53 — 08:46 첫 판이 먼저 들어가 있어 그 위에 완성본을 덧붙인다) — 드롭·칸·버튼 한 줄에서 같은 높이·같은 기준선 · 검정 테두리는 켜짐/꺼짐이 섞인 줄(예약관리)만 ═════ */
input[type=text],select,button.b{vertical-align:middle;height:var(--h);box-sizing:border-box}
.refbtn{height:var(--h) !important;margin:0}
input[type=text]:not(:disabled),input[type=text]:disabled,select:not(:disabled),select:disabled,textarea:not(:disabled),textarea:disabled,button.b,button.b.line,button.sr-fold,.bn-seg,.bn-seg button{border-color:var(--c-bd2) !important}   /* 드롭·칸·버튼 테두리 = 회색 하나 (켜짐·꺼짐 상관없이) · 관리자 전체 */
.sch-ctl select:not(:disabled),.sch-ctl input:not(:disabled){border-color:var(--c-bd2) !important}   /* 08:46 첫 판의 '.sch-ctl 전부 검정' 을 되돌린다 (공개 시각 줄도 회색) */
.sch-ctl:has(button.b + button.b) select:not(:disabled),.sch-ctl:has(button.b + button.b) input[type=text]:not(:disabled){border-color:#52514e !important}   /* [적용][켜기/끄기] 두 버튼이 있는 줄(켜짐·꺼짐 섞임)에서만 켜진 칸 검정 · 예약추가 줄은 아님 */
input[type=text]:not(:disabled):focus,select:not(:disabled):focus,textarea:not(:disabled):focus,.sch-ctl select:not(:disabled):focus,.sch-ctl input:not(:disabled):focus{border-color:var(--c-acc) !important}
/* 작은 줄 버튼(삭제·이 값으로 저장)·벤치 나눔 버튼도 같은 높이 — 세로 크기는 관리자 전체 하나 */
button.sr-fold,.bn-seg button{height:var(--h) !important}
@media (max-width:700px){
  input[type=text],select,button.b,button.sr-fold,.bn-seg button{height:var(--h-m) !important}
  button.refbtn{min-height:0;height:var(--h-m) !important}
  .top{height:44px} #sidenav{min-height:43px}   /* 1차 줄 44 = 2차 줄 44 (선 포함) */
}

/* ═════ ★[UIUNIFY7C] 260928 (대표 09:13) — 폴드·태블릿(701~1100) 예약관리 줄 한 줄 유지 ═════ */
/* 폴드·태블릿(701~1100) — 드롭 + 시각 + [적용] + [켜기] 가 한 줄에 못 들어가면 드롭이 줄어든다 (버튼이 아래로 안 떨어진다) (대표 09:13) */
@media (min-width:701px) and (max-width:1100px){
  .sch-ctl{flex-wrap:nowrap}
  .sch-ctl > select{flex:1 1 140px;width:auto !important;min-width:120px}
  .sch-ctl > input.sch-t{flex:0 0 90px;width:90px !important}
  .sch-ctl button.b{flex:0 0 auto;min-width:56px !important;padding:0 12px}
}

/* ═════ ★[UIUNIFY8] 260928 (대표 09:24) — 탭 밑선은 아래 카드 폭과 같게 (채널현황처럼 카드가 화면 끝까지면 탭 선도 끝까지) ═════ */
#dsbox .tabs,#bnbox .tabs,#srbox .tabs{max-width:none;margin-right:24px}
@media (max-width:1100px){ #dsbox .tabs,#bnbox .tabs,#srbox .tabs{margin-right:0} }

/* ═════ ★[HOTVID] 260930 [소재발굴] › 떡상영상 — 조건 4칸 × 2줄 · 표 · 미리보기 ═════ */
/* ★[HOTMOB] 260930 휴대폰 — 조건은 라벨 위·칸 화면 폭(다른 화면과 같게) · 표 가로 스크롤은 table.list 규칙 하나(겹 스크롤 없앰) · 탭 회색띠(세로 스크롤막대) 없앰 · 미리보기는 띄운 창 */
.hv-tabs{max-width:none;margin-right:0;overflow:hidden !important}
.hv-tabs::-webkit-scrollbar{display:none}
#hvbox .card,#pkbox .card{max-width:none;margin-right:0}   /* ★[HOTFULL] 261001 PC·태블릿도 화면 폭 끝까지(대표 00:45) */
.hv-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:8px 16px;padding:12px 14px}   /* ★[UNI] 261002 영상 9칸 = 5 + 4 · 채널 6칸 = 한 줄 */
@media (min-width:1401px){ .hv-grid.c6{grid-template-columns:repeat(6,minmax(0,1fr))} }
.hv-f{display:flex;align-items:center;gap:0}
.hv-f>span{width:72px;flex:0 0 72px;color:var(--c-lb);font-size:var(--fs)}
.hv-f select{flex:1;min-width:0;height:var(--h)}
/* ★[UNI2] 261002 드롭메뉴 제목과 칸을 한 상자로 — [국가 | 전체 ▾] (제목이 어느 칸 것인지 애매했다, 대표 11:40) · 휴대폰은 그대로(제목 위 · 칸 아래) */
@media (min-width:701px){
  .hv-f{height:var(--h);box-sizing:border-box;border:1px solid var(--c-bd2);border-radius:var(--r);background:var(--c-card);overflow:hidden}
  .hv-f:focus-within{border-color:var(--c-acc);box-shadow:0 0 0 3px rgba(37,99,235,.15)}
  .hv-f>span{align-self:stretch;display:flex;align-items:center;width:78px;flex:0 0 78px;box-sizing:border-box;padding:0 10px;background:var(--c-bg);border-right:1px solid var(--c-bd);color:var(--c-lb);white-space:nowrap}
  .hv-f select,.hv-f select:focus{border:0 !important;border-radius:0;height:100% !important;box-shadow:none !important;outline:none;background-color:transparent}
  .hv-bar .hv-f{flex:0 0 auto}
}
.hv-hot{position:absolute;left:6px;top:42px;background:#dc2626;color:#fff;font-size:11px;font-weight:700;padding:1px 6px;border-radius:4px}
.sj-panel .hv-cards{padding:0 0 12px}
.sj-panel .hv-gh{padding:0 0 8px}
.hv-card .hv-ov,.hv-card .hv-ov b{color:#fff !important}
.hv-card .hv-ov .r1 b{font-weight:600 !important}
.hv-bar{display:flex;align-items:center;gap:12px;padding:10px 14px;border-top:1px solid var(--c-bd)}
.hv-bar .hv-f select{width:140px;flex:0 0 140px}
.hv-bar .hv-st{flex:1;min-width:0}
.hv-bar button.b,.hv-foot button.b{width:100px;margin:0}
table.hv-t{width:100%}
table.hv-t th.r,table.hv-t td.r{text-align:right;white-space:nowrap;font-variant-numeric:tabular-nums}
table.hv-t th.c,table.hv-t td.c{text-align:center;width:56px;white-space:nowrap}
table.hv-t td{vertical-align:middle}
.hv-row{cursor:pointer}
.hv-row:hover td{background:var(--c-bg)}
.hv-th{width:128px;height:72px;background:#e3e3e2 center/cover no-repeat;border-radius:4px;position:relative}
.hv-th span{position:absolute;right:3px;bottom:3px;background:rgba(0,0,0,.75);color:#fff;font-size:11px;padding:0 4px;border-radius:3px}
.hv-hr{border:0;background:none;cursor:pointer;padding:4px;display:inline-flex}
.hv-foot{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:10px 14px}
.hv-pg{display:flex;align-items:center;gap:8px;white-space:nowrap}
.hv-pg .hint{min-width:44px;text-align:center}
/* ★[HOTPV] 260930 미리보기 = 줄 아래 펼침 · 영상 폭(--vw) = 볼륨·버튼 줄 폭 · 가로 스크롤 표에서도 왼쪽에 붙음 */
.hv-pv td{background:var(--c-bg);padding:12px !important}
.hv-pvin{--vw:360px;position:sticky;left:12px;width:var(--vw);display:flex;flex-direction:column;gap:10px;white-space:normal}
.hv-vid{width:var(--vw);background:#000;border-radius:var(--r);overflow:hidden}
.hv-pvin.v .hv-vid{aspect-ratio:9/16}
.hv-pvin.h .hv-vid{aspect-ratio:16/9}
.hv-vid iframe{width:100%;height:100%;border:0;display:block}
.hv-mbtn{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.hv-mbtn button.b{width:100%;margin:0}
.hv-vol{display:flex;align-items:center;gap:8px;height:var(--h);font-size:var(--fs);color:var(--c-lb)}   /* ★[HOTVOL] */
.hv-sl{position:relative;flex:1;min-width:0;height:28px;touch-action:pan-y}   /* ★[HOTSLIDER] 손잡이만 끌림 · 막대는 스크롤 그대로 */
.hv-sl:before{content:"";position:absolute;left:0;right:0;top:12px;height:4px;border-radius:2px;background:var(--c-bd2)}
.hv-sl-f{position:absolute;left:0;top:12px;height:4px;border-radius:2px;background:var(--c-acc)}
.hv-sl-k{position:absolute;top:0;width:28px;height:28px;margin-left:-14px;touch-action:none;cursor:grab}
.hv-sl-k:after{content:"";position:absolute;left:6px;top:6px;width:16px;height:16px;border-radius:50%;background:var(--c-acc);box-shadow:0 0 0 2px #fff}
.hv-mbtn button.b{white-space:nowrap;padding:0 8px}   /* 담기·빼기 한 줄 */
.hv-vol b{font-weight:normal;width:28px;text-align:right;font-variant-numeric:tabular-nums}
.hv-hr svg{display:block}
.hv-tc{min-width:240px;max-width:520px;white-space:normal !important}   /* ★[HOTFIX3] 제목 칸 폭 제한 (대표 00:16) */
a.hv-tl{color:var(--c-tx);text-decoration:none}
.hv-tl{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}   /* ★[HOTPV] 제목 두 줄까지 — 해시태그 긴 제목에 줄이 길어지지 않게 */
/* ═ ★[HOTCARD] 261001 카드형 — 쇼츠 세로(휴대폰 2·태블릿 4·PC 6) · 롱폼 가로(1·2·4) · 숫자는 카드 안 · 펼침은 그 줄 아래 ═ */
.card h3 .hv-vw{float:right;display:inline-flex;margin:-4px 0}   /* ★[HOTVIEW] 카드형·목록형 */
.hv-vw button{height:26px;padding:0 12px;border:1px solid var(--c-bd2);background:#fff;color:var(--c-sub);font-size:var(--fs);font-weight:400;cursor:pointer;font-family:inherit}
.hv-vw button:first-child{border-radius:var(--r) 0 0 var(--r)}
.hv-vw button:last-child{border-radius:0 var(--r) var(--r) 0;border-left:0}
.hv-vw button.on{background:var(--c-bg);color:var(--c-tx)}
.hv-gh{padding:12px 14px 0;color:var(--c-sub);font-size:var(--fs)}
.hv-cards{display:grid;gap:10px;padding:12px 14px}
.hv-cards.v{grid-template-columns:repeat(6,minmax(0,1fr))}
.hv-cards.h{grid-template-columns:repeat(4,minmax(0,1fr))}
.hv-card{position:relative;border-radius:10px;overflow:hidden;background-color:#e3e3e2;background-position:center;background-size:cover;background-repeat:no-repeat;cursor:pointer}
.hv-cards.v .hv-card{aspect-ratio:9/16}
.hv-cards.h .hv-card{aspect-ratio:16/9}
.hv-card.open{box-shadow:0 0 0 3px var(--c-tx)}
.hv-card .hv-hr{position:absolute;left:6px;top:6px;width:30px;height:30px;border-radius:50%;background:rgba(255,255,255,.92);align-items:center;justify-content:center;padding:0}
.hv-len{position:absolute;right:6px;top:6px;background:rgba(0,0,0,.65);color:#fff;font-size:11px;padding:1px 5px;border-radius:3px}
.hv-ov{position:absolute;left:0;right:0;bottom:0;padding:28px 8px 7px;background:linear-gradient(transparent,rgba(0,0,0,.78));color:#fff}
.hv-ov .r1{display:flex;justify-content:space-between;font-size:13px;line-height:1.3}
.hv-ov .r1 b{font-weight:600}
.hv-ov .r2{display:flex;justify-content:space-between;gap:4px;font-size:11px;opacity:.88;margin-top:2px;white-space:nowrap}
.hv-pvc{grid-column:1/-1;background:var(--c-bg);border-radius:10px;padding:12px}
.hv-pvc .hv-pvin{position:static}
.hv-pvt .hv-pvtt{font-size:var(--fs);color:var(--c-tx);line-height:1.5}
.hv-pvt .hint{margin-top:2px}
@media (min-width:701px) and (max-width:1100px){
  .hv-cards.v{grid-template-columns:repeat(4,minmax(0,1fr))}
  .hv-cards.h{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media (max-width:700px){
  .hv-cards{gap:8px;padding:12px}
  .hv-cards.v{grid-template-columns:repeat(2,minmax(0,1fr))}
  .hv-cards.h{grid-template-columns:1fr}
  .hv-gh,.hv-pvt .hv-pvtt{font-size:14px}
  .hv-ov .r1{font-size:14px}
  .hv-ov .r2{font-size:12px}
}
/* ★[HOTFIX3] 태블릿(701~1100) — 조건 둘씩 · 표는 옆으로 밀기 (드롭·표가 잘렸음) */
@media (min-width:701px) and (max-width:1100px){
  .hv-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  table.hv-t{display:block;overflow-x:auto;-webkit-overflow-scrolling:touch}
  .hv-bar{flex-wrap:wrap}
  .hv-bar .hv-st{flex:1 1 200px}
}
@media (max-width:700px){
  .hv-tabs,#hvbox .card,#pkbox .card{margin-right:0}
  .hv-grid{grid-template-columns:1fr 1fr;gap:12px 8px;padding:12px}   /* ★[HOTMOB2] 짧은 칸은 둘씩 · 긴 칸(정렬·길이)만 한 줄 (대표 23:37) */
  .hv-grid .k-type{order:1}.hv-grid .k-region{order:2}.hv-grid .k-sort{order:3;grid-column:1/-1}
  .hv-grid .k-cat{order:4}.hv-grid .k-period_h{order:5}.hv-grid .k-min_views{order:6}.hv-grid .k-max_subs{order:7}
  .hv-grid .k-max_len{order:8;grid-column:1/-1}.hv-grid .k-ch{order:9;grid-column:1/-1}
  .hv-f{flex-direction:column;align-items:stretch;min-width:0}
  .hv-f>span{width:auto;flex:none;font-size:14px;padding-bottom:8px}
  .hv-f select{width:100%;flex:none;height:var(--h-m);font-size:14px}
  .hv-tc{min-width:190px;max-width:220px}
  table.hv-t th,table.hv-t td{padding:8px 6px !important}   /* ★[HOTPV] 목록 여백 줄이고 화면(썸네일) 키움 (대표 23:48) */
  table.hv-t td:first-child,table.hv-t th:first-child{padding-left:10px !important}
  .hv-th{width:144px;height:81px}
  .hv-vol{font-size:14px}
  .hv-mbtn button.b{height:var(--h-m);font-size:14px}
  .hv-bar{flex-wrap:wrap;gap:8px;padding:12px}
  .hv-bar .hv-f{width:100%}
  .hv-bar .hv-f select{width:100%;flex:none}
  .hv-bar .hv-st{flex:0 0 100%;font-size:14px}
  .hv-bar button.b{flex:1 1 0;width:auto;height:var(--h-m);font-size:14px}
  .hv-foot{flex-wrap:wrap;padding:12px}
  .hv-foot>.hint{flex:0 0 100%;font-size:14px}
  .hv-pg{margin-left:auto}
  .hv-pg button.b{width:80px;height:var(--h-m);font-size:14px}
  .hv-mbtn button.b{height:var(--h-m);font-size:14px}
}

/* ═════ ★[PKGMENU] 260928 [제작설정] 메뉴 — 목록 표 · 줄 고르기 · 줄 버튼 · 편집 판 ═════ */
.tblx{overflow-x:auto}
.card table.list.prs{border:0;border-radius:0}
table.list.prs tr[onclick]{cursor:pointer}
table.list.prs tr.on td{background:var(--c-acc-bg)}
table.list.prs td{white-space:nowrap}
table.list.prs td.acts{text-align:right}
table.list.prs td.acts button{margin-left:4px}
.cfoot{padding:8px 14px;color:var(--c-sub);font-size:var(--fs-s);border-top:1px solid var(--c-bd)}
.card .pad{padding:10px 14px;overflow-x:auto}
.card h3 .hint{font-weight:400;margin:0 0 0 8px;font-size:var(--fs-s)}
/* ★[CARDGAP2] 260928 카드 제목(h3) 바로 아래 오는 안내(note)·단추줄(btns)에만 위 여백. 표(table.form·list)는 제목 띠에 붙는 게 의도된 모양이라 안 건드린다 (관리자 전체 조사: note 15곳 · form 35곳 · list 6곳) */
.card h3 + .note, .card h3 + .btns{margin-top:12px}
.card .note + .btns{margin-top:12px}
.prs-edit{border-top:1px solid var(--c-bd)}
.prs-edit .btns{margin:12px 14px 14px}
/* ═════ ★[CUTVID] 260928 제작 현황 — 소스 칸 작은 창(컷별 영상 링크·점수) ═════ */
.vidcell{position:relative}
.vidpop{display:none;min-width:280px;padding:0;overflow:hidden;border-radius:var(--r);border-color:var(--c-bd2);z-index:120}
.vidpop table.list{border:0;border-radius:0;font-size:var(--fs-s)}
.vidpop table.list th,.vidpop table.list td{padding:6px 10px;white-space:nowrap}
.vidpop a{color:var(--c-acc)}
/* ★[PROFILE] 261001 프로필 동그라미 · 펼침 판 */
/* ★[BARBTN] 261001 윗줄 단추 = 아이콘 + 두 글자 (알림 · 검색 · 화면 · 회원 · 종료) — 모양·높이·글자 하나로 (대표 07:44) */
.pfav{width:18px;height:18px;border-radius:50%;background:center/cover no-repeat;display:inline-flex;align-items:center;justify-content:center;flex:0 0 auto}
.bar > button{display:inline-flex;align-items:center;gap:5px}
.bar > button svg{flex:0 0 auto}
.mbell,.msico,.bar > button{font-weight:600}
.pfpanel{display:none;position:fixed;right:16px;top:56px;width:300px;max-width:calc(100vw - 32px);background:#fff;border:1px solid var(--c-bd);
  border-radius:var(--r-card);box-shadow:0 8px 24px rgba(0,0,0,.12);z-index:3000;padding:14px;box-sizing:border-box}
.pfpanel.on{display:block}
.pfpanel .pf-me{display:flex;align-items:center;gap:12px;margin-bottom:12px}
.pfpanel .pf-img{width:56px;height:56px;border-radius:50%;background:#e3e3e2 center/cover no-repeat;display:flex;align-items:center;justify-content:center;font-size:20px;color:var(--c-lb);flex:0 0 auto}
.pfpanel label{display:block;color:var(--c-lb);font-size:var(--fs);margin:10px 0 6px}
.pfpanel input[type=text],.pfpanel input[type=password]{width:100%;height:var(--h);box-sizing:border-box}
.pfpanel .pf-b{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:12px}
.pfpanel .pf-b button.b{width:100%;margin:0}
.pfpanel .hint{margin-top:6px}
.pfpanel input[type=text],.pfpanel input[type=password]{border:1px solid var(--c-bd2);border-radius:var(--r);padding:0 10px;font-family:inherit;font-size:var(--fs);background:#fff;color:var(--c-tx)}
@media (max-width:700px){
  .pfpanel{top:50px;right:10px;max-width:calc(100vw - 20px)}
  .pfpanel input[type=text],.pfpanel input[type=password]{height:var(--h-m);font-size:14px}
  /* ★[BARBTN] 휴대폰 윗줄 — 다섯 단추가 한 줄에 들어가게 여백만 줄임 · 그래도 넘치면 옆으로 밀림 */
  .bar{padding:0 10px !important;overflow-x:auto;-webkit-overflow-scrolling:touch}
  .bar::-webkit-scrollbar{height:0}
  .bar .mbell,.bar .msico,.bar > button{padding:0 6px !important;margin-right:4px !important;gap:3px !important;font-size:13px !important}
  .pfav{width:15px;height:15px}
  .bar > button{margin-right:0 !important}
}
html.night .pfav,html.night .pf-img{filter:invert(1) hue-rotate(180deg)}
/* ★[BARH] 261001 맨 윗줄·1차·2차 높이 하나로 — PC 50 · 휴대폰 44 (실측 52/50/50 · 38/44/44, 대표 07:41) */
.bar{height:50px !important;box-sizing:border-box}
@media (max-width:700px){ .bar{height:44px !important;min-height:44px !important} }
/* ★[MSCLOSE] 261001 닫기 X — 검색 입력칸 안 오른쪽 끝 · [회원] 판 맨 위 오른쪽 (같은 그림) */
.xbtn{display:inline-flex;align-items:center;justify-content:center;width:32px;height:32px;border-radius:50%;color:var(--c-sub);cursor:pointer;flex:0 0 auto;user-select:none}
.xbtn:hover{background:var(--c-bg);color:var(--c-tx)}
.msbox{position:absolute}
.msbox .msx{position:absolute;right:20px;top:50%;margin-top:-16px;z-index:2}
#msq{padding-right:44px !important}
@media (max-width:700px){ .msbox .msx{right:14px} }
/* ★[MSXIN] 261026 검색 X = 칸 안쪽 (동그라미가 테두리 밖으로 안 나가게 · 대표 10:46) */
.msbox .msx{width:26px;height:26px;right:22px;margin-top:-13px}
@media (max-width:700px){ .msbox .msx{right:17px} }
.pfpanel{position:fixed}
.pfpanel .pfx{position:absolute;top:14px;right:14px}   /* 판 오른쪽 위 — 사진 윗선·판 여백(14)과 같은 줄 */
.pfpanel .pf-me{padding-right:30px}
/* ★[BARFIX] 261001 휴대폰 윗줄 옆으로 밀기(overflow)를 없앰 — [제작 ▾] 갈래 목록이 잘려 안 보였다(대표 08:16 "상단메뉴 안돼") */
@media (max-width:700px){ .bar{overflow:visible !important} }
@media (max-width:380px){ .bar .mbell,.bar .msico,.bar > button{padding:0 4px !important;margin-right:3px !important;gap:2px !important;font-size:12px !important} .bar{padding:0 8px !important} }
/* ★[BODYFULL] 261001 본문 상자도 메뉴·하단처럼 가로 100% — 둥근 모서리·양옆 테두리 없앰 (대표 12:16)
   · 본문(.main) 좌우 안쪽 여백만큼 상자를 바깥으로 넓힌다 → 화면 끝에서 끝까지
   · 상자 밖 글(요약·안내·단추줄)은 원래 여백 그대로 — 글자 시작점은 안 바뀐다 */
.main .card{max-width:none !important;margin-left:-18px !important;margin-right:-18px !important;border-radius:0 !important;border-left:0 !important;border-right:0 !important}
.main .note,.main .btns,.main .tabs,.main pre.out{max-width:none !important}
.main .card table.list{border-left:0 !important;border-right:0 !important;border-radius:0 !important}
/* 상자 안 글자 시작점 = 메뉴 글자 시작점(18px) */
.main .card h3{padding-left:18px !important;padding-right:18px !important}
.main .card>.note{margin-left:18px !important;margin-right:18px !important}
.main .card>.btns{padding-left:18px !important;padding-right:18px !important}
.main .card table tr>*:first-child{padding-left:18px !important}
.main .card table tr>*:last-child{padding-right:18px !important}
.main .card .hv-grid,.main .card .hv-bar,.main .card .hv-foot,.main .card .cfoot{padding-left:18px !important;padding-right:18px !important}
@media (max-width:1100px){ .main .card{margin-left:-10px !important;margin-right:-10px !important} }
@media (min-width:1101px) and (pointer:coarse){ .main .card{margin-left:-10px !important;margin-right:-10px !important} }
/* ★[CHIPS] 261001 단추줄 — 단추가 늘어나 줄 끝까지 채움 (오른쪽 빈 여백 없앰 · 대표 12:30) */
.btns.chips{gap:6px}
.btns.chips>button.b{flex:0 0 auto;min-width:96px;margin:0 !important}   /* ★[CHIPW] 261003 단추가 화면 폭만큼 늘어나지 않게 — 글자에 맞는 크기(대표 16:44) · 할일개선 · 건의사항 · 알림현황 공통 */
.btns.chips>.hint{flex:1 1 100%}
.btns.chips>label.tdstar{flex:1 1 100%;text-align:right;color:#52514e;cursor:pointer}
.card>.btns.chips:first-child{margin-top:14px}
.card>.note:first-child{margin-top:14px}
/* ★[PGHELP] 261001 [ⓘ 설명] — 2차 메뉴 줄 오른쪽 끝 (모든 메뉴 같은 자리) */
.side{position:relative}
#sidenav{padding-right:96px !important}
.pghelp{position:absolute;right:14px;top:50%;transform:translateY(-50%);display:inline-flex;align-items:center;gap:5px;height:32px;padding:0 12px;border:1px solid var(--c-bd);border-radius:8px;background:#fff;color:var(--c-sub);font-size:13px;cursor:pointer;user-select:none;z-index:5}
.pghelp:hover{color:var(--c-tx);background:var(--c-bg)}
.pghelpbox{display:none;position:absolute;right:14px;top:calc(100% + 6px);width:min(560px,calc(100vw - 28px));background:#fff;border:1px solid var(--c-bd);border-radius:12px;box-shadow:0 8px 24px rgba(0,0,0,.12);padding:16px 48px 6px 18px;z-index:80;font-size:13.5px;line-height:1.7;color:var(--c-tx)}
.pghelpbox.on{display:block}
.pghelpbox p{margin:0 0 10px}
.pghelpbox .pghx{position:absolute;top:10px;right:10px}
@media (max-width:700px){ .pghelp{right:8px;height:30px;padding:0 9px;font-size:13px} #sidenav{padding-right:84px !important} .pghelpbox{right:8px;font-size:14px} }
/* ★[PADFIX] 261001 할일·개선 표 — 휴대폰 규칙(#tdbox … padding:8px 5px)이 왼쪽 여백을 5px 로 눌렀다 → 첫 칸·끝 칸 18px (메뉴 글자와 같은 줄, 대표 12:52) */
#tdbox .card table.list tr>*:first-child,#albox .card table.list tr>*:first-child{padding-left:18px !important}
#tdbox .card table.list tr>*:last-child,#albox .card table.list tr>*:last-child{padding-right:18px !important}
/* ★[SOJAE3] 261001 채널 프로필 · 줄 펼침 · 채널선택 */
.sj-chn{display:flex;align-items:center;gap:10px}
.sj-av{flex:0 0 36px;width:36px;height:36px;border-radius:50%;background:#e3e3e2 center/cover no-repeat}
table.sj-cht tr.hv-row{cursor:pointer}
table.sj-cht tr.hv-row.on>td{background:var(--c-acc-bg)}
tr.sj-open>td,.main .card table.list tr.sj-open>td:first-child,#main .card table.list tr.sj-open>td:first-child{padding:0 !important;background:var(--c-bg)}
.sj-panel{padding:12px 14px 14px}
.sj-vids{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:12px}
.sj-vc{cursor:pointer;min-width:0}
.sj-vc.on .sj-vt{outline:3px solid var(--c-acc)}
.sj-vt{position:relative;aspect-ratio:16/9;border-radius:8px;background:#e3e3e2 center/cover no-repeat}
.sj-vt .hv-hr,.sj-vt .hv-tg{position:absolute;top:5px;width:28px;height:28px;border-radius:50%;background:rgba(255,255,255,.92);display:inline-flex;align-items:center;justify-content:center;padding:0;border:0}
.sj-vt .hv-hr{left:5px}.sj-vt .hv-tg{left:38px}
.sj-vt .hv-len{position:absolute;right:5px;top:5px;bottom:auto;left:auto;height:auto;background:rgba(0,0,0,.75);color:#fff;font-size:11px;padding:1px 5px;border-radius:4px}
.sj-hot{position:absolute;left:5px;bottom:5px;background:#dc2626;color:#fff;font-size:11px;font-weight:700;padding:1px 6px;border-radius:4px}
.sj-vtt{font-size:12.5px;margin-top:6px;line-height:1.35;max-height:2.7em;overflow:hidden;color:var(--c-tx)}
.sj-play{display:flex;gap:14px;align-items:flex-start;margin-bottom:14px;flex-wrap:wrap}
.sj-play iframe{border:0;border-radius:10px;background:#000;width:min(560px,100%);aspect-ratio:16/9}
.sj-play.v iframe{width:min(300px,100%);aspect-ratio:9/16}
.sj-pt{flex:1 1 220px;min-width:0}
table.sj-sel tr.on>td{background:var(--c-acc-bg)}
.sj-now{display:inline-block;margin-left:6px;font-size:11px;font-weight:700;color:#fff;background:var(--c-acc);padding:1px 7px;border-radius:9px}
body.sj-man .hv-tg,body.sj-man #hv_mpick{display:none !important}
.sj-sort.on{color:var(--c-acc)}
/* ★[VIDLIST] 261002 머리글 드롭메뉴 구분선 · 카드형 정렬 줄 */
.pop i.pop-sep{display:block;border-top:1px solid #e3e3e2;margin:4px 0}
/* ★[VIDLIST2] 261002 카드형 [정렬 ▾] [채널 ▾] — 같은 모양 · 카드 왼쪽 줄(14px)에 맞춤 (대표 01:35) */
.vl-bar{display:flex;align-items:center;gap:8px;padding:12px 14px 0;font-size:var(--fs)}
.vl-bar .vl-k{color:var(--c-sub)}
.vl-bar .popwrap+.vl-k{margin-left:14px}
.vl-btn{height:26px;padding:0 10px;border:1px solid var(--c-bd2);border-radius:var(--r);background:var(--c-card);color:var(--c-tx);font-size:var(--fs);font-family:inherit;cursor:pointer;display:inline-flex;align-items:center;gap:6px;white-space:nowrap}
.vl-btn:hover{border-color:var(--c-acc);color:var(--c-acc)}
.vl-bar .pop{max-height:340px;overflow:auto;font-weight:400;margin-top:4px}
.vl-more{padding:4px 14px 0}
table.hv-t th .pop{max-height:340px;overflow:auto;font-weight:400}
@media (max-width:700px){ .sj-vids{grid-template-columns:repeat(2,minmax(0,1fr))} .sj-panel{position:sticky;left:0;width:100vw;box-sizing:border-box;padding:10px 10px 12px} .sj-av{flex-basis:30px;width:30px;height:30px} }
/* ★[SOJAE2] 261001 [소재] 맨 위 작업 채널 띠 */
.sj-bar{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin:0 -18px 12px;padding:10px 18px;background:var(--c-card);border-bottom:1px solid var(--c-bd)}
.sj-bar .sj-l{font-weight:700;color:var(--c-lb)}
/* ★[UNI3] 261002 대상채널 카드 8곳 — 제목과 드롭메뉴를 한 상자로 [채널 | 007.현장뉴스 ▾] (소재 찾기 조건과 같은 모양, 대표 13:08) · 휴대폰은 그대로 */
@media (min-width:701px){
  table.form.tgt,table.form.tgt tbody{display:block}
  table.form.tgt tr{display:block;padding:10px 18px;border-bottom:1px solid var(--c-bd)}
  table.form.tgt tr:last-child{border-bottom:0}
  .main .card table.form.tgt th{display:inline-flex;align-items:center;vertical-align:top;box-sizing:border-box;width:78px !important;height:var(--h);padding:0 10px !important;
    background:var(--c-bg) !important;border:1px solid var(--c-bd2) !important;border-right:0 !important;border-radius:var(--r) 0 0 var(--r);
    color:var(--c-lb);font-weight:400 !important;font-size:var(--fs) !important;white-space:nowrap}
  table.form.tgt td{display:inline-block;vertical-align:top;padding:0 !important;border:0 !important;max-width:calc(100% - 80px)}
  table.form.tgt td>select:first-child{width:262px !important;min-width:0;height:var(--h);box-sizing:border-box;border-radius:0 var(--r) var(--r) 0;margin:0}
  table.form.tgt td>.hint{margin-left:-78px}
}
/* ★[ACCT6] 계정 삭제 단추 — 눈에 덜 띄게: 흰 바탕 · 빨간 글씨 · 빨간 테두리 */
#acbox .btns .b.ac-del{background:var(--c-card) !important;color:var(--c-err) !important;border:1px solid var(--c-err) !important}
/* ★[COLSCHED] 수집 예약 표 — 휴대폰은 예약 하나가 한 묶음(제목 : 값) */
@media (max-width:700px){
  #csbox table.cst{display:block;white-space:normal;overflow:visible;border:0}
  #csbox table.cst>tbody{display:block;width:auto;min-width:0}
  #csbox table.cst tr:first-child{display:none}
  #csbox table.cst tr{display:block;padding:10px 12px;border-bottom:1px solid var(--c-bd)}
  #csbox table.cst td{display:flex;gap:10px;padding:3px 0 !important;border:0;font-size:14px;text-align:left !important;white-space:normal !important}
  #csbox table.cst td:empty{display:none}
  #csbox table.cst td::before{flex:0 0 88px;color:var(--c-lb)}
  #csbox table.cst td:nth-child(1)::before{content:"예약"} #csbox table.cst td:nth-child(2)::before{content:"하는 일"}
  #csbox table.cst td:nth-child(3)::before{content:"상태"} #csbox table.cst td:nth-child(4)::before{content:"마지막 실행"}
  #csbox table.cst td:nth-child(5)::before{content:"다음 실행"} #csbox table.cst td:nth-child(6)::before{display:none}
  #csbox table.cst td:nth-child(6){padding-top:8px !important} #csbox table.cst td:nth-child(6) .bn-seg{display:flex;flex:1}
  #csbox table.cst td:nth-child(6) .bn-seg button{flex:1;height:var(--h-m);font-size:14px}
}
/* ★[COLNAME] 제작조건 표 — 드롭메뉴 4칸 폭을 똑같이 (대표 19:51) */
@media (min-width:701px){ table.abt{table-layout:fixed} table.abt th:nth-child(1){width:auto} table.abt th:nth-child(2){width:120px}
  table.abt th:nth-child(n+3),table.abt td.ab-c{width:210px} }
@media (max-width:700px){ table.abt td.ab-c select:focus{outline:0 !important;box-shadow:none !important}   /* 누른 칸 안쪽에 세로선처럼 보이던 테두리 → 상자 전체 테두리로 */
  table.abt td.ab-c:focus-within{border-color:var(--c-acc) !important} }
/* ★[RANKAXIS] 261004 켬/끔 단추 — 주제 규칙 › 순위 기준 */
.trsw{display:flex;align-items:center;justify-content:space-between;gap:14px;min-height:var(--h)}
.plist{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:10px}
.plc{min-width:0}
.plv{aspect-ratio:16/9;border-radius:8px;background:linear-gradient(160deg,#5b5a55,#2f2e2b);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;overflow:hidden;font-weight:800;line-height:1.1}
.plv .pl1{color:#fff;font-size:12px!important;text-shadow:0 0 2px #000,0 0 2px #000,0 1px 2px #000}
.plv .plg{background:#226E28;color:#fff;font-size:19px!important;padding:3px 10px}
.plv.cmv{gap:0;align-items:center}
.plv .cmb{display:block;font-size:11px!important;font-weight:700;padding:5px 9px;border-radius:6px;box-shadow:0 3px 6px rgba(0,0,0,.45);white-space:nowrap}
.plv .cmb b{font-weight:800;margin-right:4px}
.plv .cm1{background:#fff;color:#111}.plv .cm1 b{color:#1E63D6}
.plv .cm2{background:#fff;color:#111;border-left:4px solid #FFC800}.plv .cm2 b{color:#111}
.plv .cm3{background:linear-gradient(90deg,#6C3CDC,#2882FF);color:#fff}
.plv .cm4{background:#2A2D34;color:#fff;border-left:4px solid #FF5FA2}.plv .cm4 b{color:#FF78AA}
.plv .plga{font-size:26px!important;background:linear-gradient(180deg,#FF4696,#FFAA3C);-webkit-background-clip:text;background-clip:text;color:transparent;filter:drop-shadow(0 2px 3px rgba(0,0,0,.7))}
.plv .plgb{font-size:26px!important;background:linear-gradient(180deg,#46C8FF,#965AFF);-webkit-background-clip:text;background-clip:text;color:transparent;filter:drop-shadow(0 0 1px #fff) drop-shadow(0 0 1px #fff) drop-shadow(0 2px 3px rgba(0,0,0,.7))}
.plv .plw{font-size:26px!important;color:#fff;text-shadow:0 2px 4px rgba(0,0,0,.8)}
.plv .plu{border-bottom:4px solid #FF7A60;line-height:1.15;padding:0 6px}
.plv .plh{background:linear-gradient(90deg,#FF3C8C,#A050FF) no-repeat 0 78%/100% 46%;padding:0 8px}
.plv .ply{color:#FF5FA2;font-size:24px!important;text-shadow:-2px 0 #000,2px 0 #000,0 -2px #000,0 2px #000,-2px -2px #000,2px 2px #000,-2px 2px #000,2px -2px #000}
.plv .plp{color:#965AFF;font-size:28px!important;text-shadow:-2px 0 #fff,2px 0 #fff,0 -2px #fff,0 2px #fff,-2px -2px #fff,2px 2px #fff,-2px 2px #fff,2px -2px #fff}
.plv .plt{color:#fff;font-size:16px!important;text-shadow:-1px 0 #000,1px 0 #000,0 -1px #000,0 1px #000,0 0 3px #000}
.plv .plt i{display:inline-block;width:2px;height:15px;background:#fff;margin-left:2px;vertical-align:-2px}
.pln{font-size:12.5px;margin-top:5px}
.pls{font-size:11.5px;color:#73726c}
.trsw .hint{margin:0}
/* ★[SFXTAB] 261006 효과음 탭 */
.sfxu{padding:12px 14px;border-bottom:1px solid #efefee}
.sfxu:last-child{border-bottom:0}
.sfxh{display:flex;align-items:center;gap:12px;margin-bottom:8px}
.sfxl{flex:1 1 auto;min-width:0}
.sfxl b{font-size:13.5px;color:#0b0b0b}
.sfxl .hint{display:block;margin-top:2px}
.sfxf{margin-right:8px;font-size:12px;color:#0b0b0b;background:#e9e9e7;border-radius:6px;padding:2px 8px;white-space:nowrap;font-family:Consolas,Menlo,monospace;font-weight:600}
.sw.dis{opacity:.4;cursor:not-allowed}
.sfxr{display:flex;align-items:center;gap:8px;padding:5px 8px;border-radius:8px;background:#fff;border:1px solid #d6d6d4;margin-bottom:5px;min-width:0}
.sfxlib .sfxr{background:transparent;border:0;border-bottom:1px solid #e3e3e2;border-radius:0;margin-bottom:0;padding:6px 9px}
.sfxlib .sfxr:last-child{border-bottom:0}
.sfxlib .sfxr.kept .sfxn{color:#73726c}
.sfxlt{font-size:12px;font-weight:700;color:#52514e;margin-bottom:8px}
.sfxr.ban .sfxn{color:#9a9893;text-decoration:line-through}
.sfxp{flex:0 0 auto;width:30px;height:30px;border-radius:50%;border:1px solid #d6d6d4;background:#fff;color:#0b0b0b;font-size:11px;line-height:1;cursor:pointer;padding:0}
.sfxp:hover{background:#efefee}
.sfxp.on{background:#0b0b0b;color:#fff;border-color:#0b0b0b}
.sfxn{flex:1 1 auto;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:13px;color:#0b0b0b}
.sfxk{flex:0 0 auto;font-size:11.5px;color:#73726c;white-space:nowrap}
.sfxt{flex:0 0 auto;font-size:11.5px;color:#9a9893;white-space:nowrap}
button.b.line.sfxb,label.b.line.sfxb{flex:0 0 auto;height:28px !important;min-height:0 !important;padding:0 10px !important;font-size:12px !important;line-height:26px !important;display:inline-flex;align-items:center;cursor:pointer;white-space:nowrap;border:1px solid #d6d6d4;border-radius:8px;background:#fff;color:#0b0b0b;font-weight:400}
label.b.line.sfxb:hover{background:#f3f3f3}
.sfxa{display:flex;flex-wrap:wrap;gap:6px;margin-top:14px}
.sfxlib{margin-top:10px;border-radius:8px;padding:10px 0;background:#f3f3f3}
.sfxlib .sfxlt,.sfxlib .sfxlh{margin-left:9px;margin-right:9px}   /* ★[SFXALIGN] 261006 폴더 안의 소리 = 위의 선택된 소리와 줄 · 칸을 맞춘다 (대표 07:29) */
.sfxlh{display:flex;gap:8px;margin-bottom:8px;align-items:center}
.sfxlh input,.sfxcl{height:36px !important;min-height:0 !important;max-height:36px !important;box-sizing:border-box !important;margin:0 !important;line-height:normal !important}   /* ★[SFXCLOSE2] 261006 어느 브라우저에서든 찾기 칸 = 닫기 높이 36 (대표 07:26 "닫기가 더 크다") */
.sfxcl{flex:0 0 auto;border:1px solid #c9c8c4;border-radius:8px;background:#e3e3e2;color:#0b0b0b;font:inherit;font-size:12.5px;font-weight:600;padding:0 14px;cursor:pointer;white-space:nowrap}   /* ★[SFXCLOSE3] 261006 찾기 칸과 같은 높이 · 같은 굵기의 테두리(위아래 끝이 눈으로도 맞게) · 회색 바탕이라 넣기/삭제(흰 바탕)와 다르다 (대표 07:31) */
.sfxcl:hover{background:#d6d6d4}
.sfxcl{position:relative;top:1px}   /* ★[SFXCLOSE4] 261006 닫기만 1픽셀 아래로 · 크기는 그대로 (대표 07:34) */
.sfxuse{flex:0 0 auto;height:28px;padding:0 10px;font-size:12px;line-height:26px;display:inline-flex;align-items:center;white-space:nowrap;border:1px solid #bcd3f7;border-radius:8px;background:#e8f0fe;color:#1a56c4;font-weight:600;cursor:default}   /* ★[SFXUSE] 삭제 단추와 같은 크기 · 다른 색 */
.sfxlh input{flex:1 1 auto;min-width:0;background:#fff;border:1px solid #c9c8c4 !important;border-radius:8px !important}
.sfxll{max-height:none;overflow:visible}
.sfxlsc{max-height:420px;overflow-y:auto;overscroll-behavior:contain}   /* ★[SFXSCROLL] 261006 제목 · 찾기 칸도 목록과 같이 스크롤 (대표 07:16) */
@media(max-width:560px){ .sfxr{flex-wrap:wrap} .sfxn{flex:1 1 calc(100% - 46px)} .sfxk{margin-left:38px;margin-right:auto} .sfxt{white-space:normal} }   /* ★[SFXRIGHT] 261006 좁은 화면 = 크기 · 단추를 오른쪽으로 (대표 07:18) */
/* ★[SWITCH] 261004 켬/끔 단추 — 파랑 = 켬 · 회색 = 끔 */
.sw{flex:0 0 auto;display:inline-block;width:44px;height:24px;border-radius:999px;background:#c9ced6;position:relative;cursor:pointer;transition:background .15s}
.sw i{position:absolute;top:2px;left:2px;width:20px;height:20px;border-radius:50%;background:#fff;box-shadow:0 1px 3px rgba(0,0,0,.3);transition:left .15s}
.sw.on{background:var(--c-acc)} .sw.on i{left:22px}
.sw:focus-visible{outline:2px solid var(--c-acc);outline-offset:2px}
/* ★[SEG] 261004 알약 단추 묶음 — 회색 통 안에 단추, 고른 것만 흰 바탕 + 옅은 그림자. 앞으로 "여럿 중 하나 고르기" 는 이 모양 (대표 17:14) */
.vxl{display:flex;flex-wrap:wrap;gap:6px 8px}
.vxi{display:inline-flex;align-items:center;gap:8px;height:var(--h);padding:0 6px 0 12px;border:1px solid #d6d6d4;border-radius:8px;background:#fff;font-size:var(--fs);white-space:nowrap}
.vxi label{display:inline-flex;align-items:center;gap:7px;cursor:pointer}
.vxi input{margin:0;width:15px;height:15px;accent-color:#3a3a38}
.vxi .sfxp{width:24px;height:24px;font-size:9px}
.vxl.off .vxi{background:#f3f3f3;color:#a3a29c}
.vxl.off .vxi label{cursor:default}
select + .sfxp{vertical-align:middle;margin-left:6px}
select:has(+ .sfxp){max-width:calc(100% - 40px) !important}   /* ★[VOICEPLAY] 좁은 화면에서도 ▶ 가 같은 줄에 */
select.vxlock:disabled{background:#f3f3f3 !important;color:#a3a29c !important}   /* ★[VOICELOCK] 랜덤일 때 고정 목소리 칸 — 체크 칸이 잠길 때와 같은 회색 */
.seg{flex:0 0 auto;display:inline-flex;gap:2px;padding:3px;border-radius:10px;background:#f3f3f3}
.seg button{border:0;background:transparent;color:var(--c-lb);font:inherit;font-size:var(--fs);height:calc(var(--h) - 6px);min-width:52px;padding:0 14px;border-radius:8px;cursor:pointer;white-space:nowrap}
.seg.off{opacity:.55}
.seg.off button{cursor:not-allowed}
.seg button.on{background:#fff;color:var(--c-tx,#0b0b0b);font-weight:600;box-shadow:0 1px 2px rgba(0,0,0,.14),0 0 0 1px rgba(0,0,0,.04)}
.seg button:focus-visible{outline:2px solid var(--c-acc);outline-offset:1px}
/* ★[PICKCOND] 소재 › 제작조건 — 채널 100개의 자동 제작 조건을 한 목록에서 한눈에 (대표 18:52) */
.abt td.ab-c{padding-top:6px;padding-bottom:6px}
.abt td.ab-c select{width:100%;min-width:92px;height:var(--h);box-sizing:border-box}
.abt td.ab-c select.none{color:var(--c-err);border-color:var(--c-err)}
.abt td.off{color:var(--c-lb)}
.abt .ab-m{display:inline-block;padding:2px 8px;border-radius:999px;font-size:var(--fs-s);background:var(--c-bg);color:var(--c-lb);border:1px solid var(--c-bd)}
.abt .ab-m.auto{background:#f3f3f3;color:var(--c-acc);border-color:#e3e3e2}
.abt td.ab-s{display:none}
@media (max-width:700px){   /* 휴대폰: 채널 하나 = 한 줄(이름 · 방식 · 요약). 누르면 그 아래로 조건 4칸이 펼쳐진다 — 영상 미리보기와 같은 방식 (대표 18:57) */
  table.abt{display:block;white-space:normal;overflow:visible;border:0}
  table.abt>tbody{display:block;width:auto;min-width:0}
  table.abt tr:first-child{display:none}
  table.abt tr{display:flex;flex-wrap:wrap;align-items:center;gap:4px 8px;padding:10px 12px;border-bottom:1px solid var(--c-bd)}
  table.abt tr.auto{cursor:pointer} table.abt tr.open{background:var(--c-bg)}
  table.abt td.ab-s{display:block;flex:0 0 100%;font-size:13px !important;color:var(--c-lb)} table.abt td.ab-s.none{color:var(--c-err)}
  table.abt tr:not(.open) td.ab-c{display:none}
  table.abt tr.open td.ab-c{margin-top:4px}
  table.abt td{display:block;padding:0 !important;border:0 !important;font-size:14px}
  .main .card table.abt td.ab-n{flex:1 1 auto;font-weight:700;padding:0 !important}
  table.abt td.ab-c{flex:0 0 100%;display:flex;height:var(--h-m);box-sizing:border-box;border:1px solid var(--c-bd2) !important;border-radius:var(--r);overflow:hidden;background:var(--c-card)}
  table.abt td.ab-c::before{flex:0 0 88px;display:flex;align-items:center;box-sizing:border-box;padding:0 10px;background:var(--c-bg);border-right:1px solid var(--c-bd);color:var(--c-lb);white-space:nowrap}
  table.abt td.ab-c:nth-child(3)::before{content:"기간"} table.abt td.ab-c:nth-child(4)::before{content:"길이"}
  table.abt td.ab-c:nth-child(5)::before{content:"조회수"} table.abt td.ab-c:nth-child(6)::before{content:"한 번에"}
  table.abt td.ab-c select{flex:1;width:auto;min-width:0;height:100%;border:0 !important;border-radius:0;font-size:14px;background-color:transparent}
  table.abt td.ab-n{order:1} table.abt td:nth-child(2){order:2} table.abt td.ab-s{order:3} table.abt td.ab-c{order:4}
  table.abt td.ab-c.off{display:none}
}
/* ★[ACCTMOB] 261002 개인계정 휴대폰 화면 (대표 15:38 — 칸 폭이 제각각이고 표가 옆으로 밀렸다)
   입력 = [제목 | 칸] 한 상자 · 폭 통일 · 표 = 옆으로 미는 표 대신 계정 하나가 한 묶음(제목 : 값) */
@media (max-width:700px){
  #acbox table.form,#acbox table.form tbody{display:block}
  #acbox table.form tr{display:flex;flex-wrap:wrap;padding:8px 12px;border-bottom:1px solid var(--c-bd)}
  #acbox table.form tr:last-child{border-bottom:0}
  #acbox .card table.form th{display:flex;align-items:center;align-self:flex-start;box-sizing:border-box;flex:0 0 88px;width:88px !important;height:var(--h-m);padding:0 10px !important;
    background:var(--c-bg) !important;border:1px solid var(--c-bd2) !important;border-right:0 !important;border-radius:var(--r) 0 0 var(--r);color:var(--c-lb);font-weight:400 !important;font-size:14px !important;white-space:nowrap}
  #acbox table.form td{display:block;flex:1 1 0;min-width:0;padding:0 !important;border:0 !important;font-size:14px}
  #acbox table.form td>input[type=text]:first-child,#acbox table.form td>select:first-child{width:100% !important;max-width:none;min-width:0;height:var(--h-m);box-sizing:border-box;border-radius:0 var(--r) var(--r) 0;margin:0;font-size:14px}
  #acbox table.form td>select~input[type=text]{display:block;width:calc(100% + 88px) !important;max-width:none;margin:8px 0 0 -88px;height:var(--h-m);box-sizing:border-box;font-size:14px}
  #acbox table.form td>.hint{margin:6px 0 0 -88px;font-size:13px}
  #acbox table.form td>label{padding:9px 0 9px 10px !important;font-size:14px}
  #acbox table.form td>.hv-vw{display:flex;margin-left:8px}
  #acbox table.form td>.hv-vw button{flex:1;height:var(--h-m);font-size:14px}
  #acbox table.list{display:block;white-space:normal;overflow:visible;border:0;border-radius:0}
  #acbox table.list>tbody{display:block;width:auto;min-width:0}
  #acbox table.list tr:first-child{display:none}
  #acbox table.list tr{display:block;padding:10px 12px;border-bottom:1px solid var(--c-bd)}
  #acbox table.list tr:last-child{border-bottom:0}
  #acbox table.list td{display:flex;gap:10px;padding:3px 0 !important;border:0;font-size:14px;text-align:left !important;white-space:normal !important;word-break:break-all}
  #acbox table.list td:empty{display:none}
  #acbox table.list td::before{flex:0 0 88px;color:var(--c-lb)}
  #acbox table.list td[colspan]::before{display:none}
  #acbox table.acl td:nth-child(1)::before{content:"분류"} #acbox table.acl td:nth-child(2)::before{content:"명의"}
  #acbox table.acl td:nth-child(3)::before{content:"전화번호"} #acbox table.acl td:nth-child(4)::before{content:"폰 기종"}
  #acbox table.acl td:nth-child(5)::before{content:"이메일"} #acbox table.acl td:nth-child(6)::before{content:"복구 이메일"}
  #acbox table.acl td:nth-child(7)::before{content:"담당 컴퓨터"} #acbox table.acl td:nth-child(8)::before{content:"브라우저"}
  #acbox table.acl td:nth-child(9)::before{content:"채널"} #acbox table.acl td:nth-child(10)::before{content:"메모"}
  #acbox table.acl td:nth-child(11)::before{display:none}
  #acbox table.acl td:nth-child(11){padding-top:8px} #acbox table.acl td:nth-child(11) button{flex:1;height:var(--h-m);font-size:14px}
  #acbox table.acc td:nth-child(1)::before{content:"채널"} #acbox table.acc td:nth-child(2)::before{content:"개인계정"}
  #acbox table.acc td:nth-child(3)::before{content:"담당 컴퓨터"} #acbox table.acc td:nth-child(4)::before{content:"여기서 제작"}
  #acbox .btns{padding:0 12px;margin:10px 0 14px} #acbox .btns button{flex:1;height:var(--h-m);font-size:14px;margin:0 !important}
}
/* ★[UNI5] 261002 휴대폰도 같은 모양 — 제목과 드롭메뉴 한 상자 (대표 15:35 · 컴퓨터만 바꿔 놨었다) · 한 줄에 한 칸 */
@media (max-width:700px){
  .hv-grid{grid-template-columns:1fr !important;gap:8px !important}
  .hv-grid>*{grid-column:auto !important}
  .hv-f{flex-direction:row;align-items:center;height:var(--h-m);box-sizing:border-box;border:1px solid var(--c-bd2);border-radius:var(--r);background:var(--c-card);overflow:hidden}
  .hv-f:focus-within{border-color:var(--c-acc)}
  .hv-f>span{align-self:stretch;display:flex;align-items:center;width:88px;flex:0 0 88px;box-sizing:border-box;padding:0 10px;background:var(--c-bg);border-right:1px solid var(--c-bd);color:var(--c-lb);font-size:14px;white-space:nowrap}
  .hv-f select,.hv-f select:focus{flex:1;width:auto;min-width:0;border:0 !important;border-radius:0;height:100% !important;box-shadow:none !important;outline:none;background-color:transparent;font-size:14px}
  .hv-bar .hv-f select{flex:1;width:auto}
  table.form.tgt,table.form.tgt tbody{display:block}
  /* ★[UNI6] 261002 휴대폰 좌우 끝 = 카드 안 18 하나 (제목 · 설명글 · 칸 · [제목 | 드롭메뉴] 상자 전부) — 칸은 왼쪽 12 라 설명글보다 6 나와 있었고, 상자는 줄 폭 100% 에 여백이 더해져 오른쪽으로 12 더 나가 있었다 (대표 17:40) */
  .main .card table.form td{padding-left:18px !important}
  table.form.tgt tr{display:flex;flex-wrap:wrap;box-sizing:border-box;padding:10px 18px;border-bottom:1px solid var(--c-bd)}
  table.form.tgt tr:last-child{border-bottom:0}
  .main .card table.form.tgt td{padding:0 !important}
  .main .card table.form.tgt th{display:flex;align-items:center;box-sizing:border-box;flex:0 0 88px;width:88px !important;height:var(--h-m);padding:0 10px !important;
    background:var(--c-bg) !important;border:1px solid var(--c-bd2) !important;border-right:0 !important;border-radius:var(--r) 0 0 var(--r);color:var(--c-lb);font-weight:400 !important;font-size:14px !important;white-space:nowrap}
  table.form.tgt td{display:block;flex:1 1 0;min-width:0;padding:0 !important;border:0 !important}
  table.form.tgt td>select:first-child{width:100% !important;min-width:0;height:var(--h-m);box-sizing:border-box;border-radius:0 var(--r) var(--r) 0;margin:0;font-size:14px}
  table.form.tgt td>.hint{margin-left:-88px;margin-top:6px}
  table.form.tgt td>button{margin:8px 0 0 -88px !important}
}
.sj-bar select{min-width:200px}
@media (max-width:700px){ .sj-bar .hint{display:none} .sj-bar select{flex:1 1 auto;min-width:0} }
/* ★[HOTFAV] 261001 태그 아이콘 = 제작대기 (하트 옆) */
.hv-tg{border:0;background:none;cursor:pointer;padding:4px;display:inline-flex}
.hv-tg svg{display:block}
.hv-card .hv-tg{position:absolute;left:42px;top:6px;width:30px;height:30px;border-radius:50%;background:rgba(255,255,255,.92);align-items:center;justify-content:center;padding:0}
/* ★[NIGHT] 261001 야간 모드 — 화면 전체를 어둡게 뒤집고 사진·영상·썸네일만 되돌림 (대표 01:10 "밤에 눈부시니까") */
html.night{filter:invert(.9) hue-rotate(180deg);background:#fff}
html.night img,html.night iframe,html.night video,html.night .hv-card,html.night .hv-th{filter:invert(1) hue-rotate(180deg)}
.nightbtn svg{width:15px !important;height:15px !important}
/* ★[CLAUDECOLOR] 261004 관리자 전체 색을 클로드 설정 화면과 같은 회색 계열로 (대표 17:18 "색상구성도 클로드 색상과 완전 동일하게 · 관리자 전체")
   바탕 #fff · 옅은 바탕 #fcfcfb · 고른 것/테두리 #e3e3e2 · 구분선 #f3f3f3 · 글자 #0b0b0b · 라벨 #52514e · 보조 #73726c · 흐림 #898781 · 링크 #184f95
   파랑 강조(단추 · 고른 메뉴 · 제목)는 검정/회색으로. 빨강은 위험 · 오류에만, 초록은 완료에만 남긴다. 켬/끔 단추의 켬만 파랑(#2c84db) */
.sw.on{background:#2c84db}
/* 메뉴 — 고른 것은 밑줄 대신 회색 알약(#e3e3e2), 안 고른 글자는 #52514e (클로드 설정 왼쪽 메뉴와 같은 방식) */
.top b,.side a{border-radius:8px;margin-top:8px;margin-bottom:8px;height:auto;color:#52514e}
.top b.on,.side a.on{color:#0b0b0b !important;background:#e3e3e2;box-shadow:none;font-weight:600}
.side a:hover,.top b:hover{background:#f3f3f3}
.top b.on:hover,.side a.on:hover{background:#e3e3e2}
a{color:#184f95}
