
:root{--bg:#f4f7fb;--nav:#102a43;--blue:#1769aa;--line:#d9e2ec;--text:#243b53;--muted:#627d98;--white:#fff;--danger:#b42318}
*{box-sizing:border-box}
/* 글꼴은 앱이 직접 내려 준다 — 바깥 CDN 을 부르지 않으므로 인터넷이 없는 업무용
   PC 에서도, Cloudflare 앞단이 막혀도 화면이 같게 보인다(2026-08-25).
   **가변 폰트 하나**로 굵기 400~800 이 단계별로 살아난다. 시청률 인사이트 앱과
   같은 파일을 쓰므로 두 앱 화면이 정확히 같게 보인다(원본: ktv/assets/).
   font-display:swap — 글꼴을 받는 동안 시스템 글꼴로 먼저 보여 준다(빈 화면 없음). */
@font-face{font-family:"Pretendard";font-style:normal;font-weight:45 920;
  font-display:swap;
  src:url("/static/fonts/PretendardVariable.woff2") format("woff2-variations")}
body{margin:0;font-family:"Pretendard","Malgun Gothic","Apple SD Gothic Neo",sans-serif;background:var(--bg);color:var(--text);font-size:15px}
/* 작품정보 웹 조사 */
.research-search{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:12px;margin:18px 0 12px}.research-search input{min-height:48px}.research-external-links{margin-bottom:18px}.research-results{display:grid;gap:12px;margin-top:16px}.research-result{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:18px;align-items:center;padding:18px;border:1px solid var(--line);border-radius:14px;background:#f8fbfe}.research-result h3{margin:0 0 8px;font-size:18px}.research-result p{margin:0 0 8px;line-height:1.65;color:var(--text)}.research-apply-form label{display:grid;gap:8px;font-weight:700}.research-apply-form textarea{font-size:17px;line-height:1.7}.form-help{color:var(--muted);font-size:13px}@media(max-width:760px){.research-search,.research-result{grid-template-columns:1fr}.research-result .btn{width:100%}}
header{height:74px;background:#fff;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;padding:0 26px;position:sticky;top:0;z-index:3}
.brand{font-size:24px;font-weight:800;color:var(--blue)}
.subtitle{font-size:12px;color:var(--muted);margin-top:3px}
.server-badge{background:#e7f5ff;color:#0b69a3;padding:8px 12px;border-radius:999px;font-size:12px}
.layout{display:grid;grid-template-columns:220px 1fr;min-height:calc(100vh - 74px)}
aside{background:var(--nav);padding:20px 12px}/* 메뉴는 스크롤과 함께 내려가지 않고 머리말(74px) 아래에 붙어 있는다. *//* aside 자체가 아니라 안쪽을 붙여야 남색 배경이 아래까지 이어진다. */.nav-sticky{position:sticky;top:94px;max-height:calc(100vh - 114px);overflow-y:auto;scrollbar-width:thin}
.nav{display:block;color:#cbd5e1;text-decoration:none;padding:12px 14px;border-radius:8px;margin-bottom:5px;font-size:16px}
.nav:hover,.nav.active{background:#1f4e73;color:#fff}
main{padding:28px;overflow:auto}
.page-title{display:flex;align-items:center;justify-content:space-between;margin-bottom:20px;gap:15px}
.page-title h1{margin:0 0 6px;font-size:26px}
.page-title p{margin:0;color:var(--muted)}
.cards{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin-bottom:18px}
.card,.panel{background:#fff;border:1px solid var(--line);border-radius:12px;box-shadow:0 3px 12px rgba(16,42,67,.05)}
.card{padding:18px}.card span{display:block;color:var(--muted);font-size:13px}.card strong{display:block;font-size:30px;margin-top:8px}
.panel{padding:18px;margin-bottom:18px}
.panel-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px}
.panel h2{font-size:18px;margin:0 0 14px}
table{width:100%;border-collapse:collapse;font-size:13px}
th,td{text-align:left;border-bottom:1px solid #edf2f7;padding:11px 8px;vertical-align:top}
th{color:#486581;background:#f8fafc;white-space:nowrap}
a{color:#1769aa}
.title-link{font-weight:700;text-decoration:none}.title-link:hover{text-decoration:underline}
.subline{font-size:11px;color:#829ab1;margin-top:4px}
.btn{display:inline-block;border:0;background:#1769aa;color:#fff;text-decoration:none;padding:9px 13px;border-radius:7px;cursor:pointer;font-size:13px}
.btn.ghost{background:#eef4f8;color:#334e68}
.btn.danger{background:#fff0f0;color:var(--danger);margin-top:16px}
.btn.mini{padding:6px 9px;font-size:12px}
.button-row{display:flex;gap:8px;align-items:center}
.pill{padding:5px 9px;border-radius:999px;font-size:12px;background:#eef4f8;color:#334e68;white-space:nowrap}
.form{display:grid;grid-template-columns:1fr 1fr;gap:16px}
.form label{font-size:14px;color:#486581}
.form input,.form select,.form textarea,.filter-form input,.filter-form select{display:block;width:100%;margin-top:7px;padding:10px;border:1px solid #bcccdc;border-radius:7px;background:#fff}
.wide{grid-column:1/-1}.actions{display:flex;gap:8px}
.filter-form{display:grid;grid-template-columns:minmax(220px,1.8fr) repeat(4,minmax(120px,1fr)) 75px 75px;gap:9px;align-items:end;margin-bottom:18px}
.filter-form input,.filter-form select{margin-top:0}
.table-wrap{overflow-x:auto}
.detail-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:12px}
.detail-item{background:#f8fafc;border:1px solid #e6edf3;border-radius:8px;padding:13px;min-height:72px}
.detail-item span,.text-block span{display:block;color:var(--muted);font-size:12px;margin-bottom:7px}
.detail-item strong{display:block;font-size:14px;word-break:break-word}
.wide-card{grid-column:span 2}
.text-block{margin-top:16px;border-top:1px solid #edf2f7;padding-top:15px}
.text-block p{white-space:pre-wrap;line-height:1.65;margin:0}
.source-note{margin-top:18px;color:#829ab1;font-size:12px}
.notice{margin-top:18px;background:#eef7ff;border-left:4px solid #1769aa;padding:14px;line-height:1.6}
.pager{display:flex;gap:6px;justify-content:center;margin-top:18px}
.page-link{padding:7px 10px;border-radius:6px;background:#eef4f8;text-decoration:none;color:#334e68}
.page-link.active{background:#1769aa;color:#fff}
@media(max-width:1200px){.filter-form{grid-template-columns:1fr 1fr 1fr}.detail-grid{grid-template-columns:1fr 1fr}}
@media(max-width:850px){.layout{grid-template-columns:160px 1fr}.cards{grid-template-columns:1fr 1fr}.form{grid-template-columns:1fr}.wide{grid-column:1}.detail-grid{grid-template-columns:1fr}.page-title{align-items:flex-start;flex-direction:column}}

.upload-form{display:flex;align-items:center;gap:14px;border:2px dashed #bcccdc;background:#f8fafc;border-radius:12px;padding:28px;margin-top:18px}
.upload-form input[type=file]{flex:1;padding:10px;background:#fff;border:1px solid #bcccdc;border-radius:7px}
.help-text{font-size:12px;color:#829ab1;margin:10px 0 0}
/* 메모에 붙인 그림 — 목록에서는 작게, 누르면 새 창에서 크게 */
.note-thumbs{display:flex;flex-wrap:wrap;gap:8px;align-items:center;grid-column:1/-1}
.note-thumbs small{font-size:11px;color:#829ab1}
.note-thumb{position:relative;display:inline-block}
.note-thumb img{display:block;width:84px;height:84px;object-fit:cover;border:1px solid var(--line);border-radius:8px;background:#f8fafc}
.note-thumb button{position:absolute;top:-6px;right:-6px;width:20px;height:20px;border:1px solid var(--line);border-radius:50%;background:#fff;color:#627d98;font-size:13px;line-height:1;cursor:pointer;padding:0}
.note-thumb button:hover{background:#fff0f0;color:var(--danger);border-color:var(--danger)}
.note-shots{display:flex;flex-wrap:wrap;gap:6px;margin-top:8px}
.note-shot img{display:block;width:110px;max-height:110px;object-fit:cover;border:1px solid var(--line);border-radius:7px;background:#f8fafc}
.note-shot:hover img{border-color:#1769aa}
.handover-shots{display:inline-block;margin:6px 0 2px;font-size:12px;font-weight:700;color:#0b5f96;text-decoration:none}
.handover-shots:hover{text-decoration:underline}
.result-actions{display:flex;gap:9px;margin:18px 0}
.result-pill{display:inline-block;padding:5px 9px;border-radius:999px;font-size:12px}
.result-pill.success{background:#dcfce7;color:#166534}
.result-pill.duplicate{background:#fef3c7;color:#92400e}
.result-pill.error{background:#fee2e2;color:#991b1b}
.resolution-form{display:grid;grid-template-columns:minmax(260px,1fr) auto;gap:10px 16px;margin-top:12px;padding:16px;border:1px solid #f3b4b4;border-radius:10px;background:#fff8f8}
.resolution-form .resolution-alert{grid-column:1/-1;display:flex;flex-direction:column;gap:3px;color:#8a2d2d}
.resolution-form select{grid-column:1/-1;padding:10px;border:1px solid #b9cbe0;border-radius:7px;background:#fff}
.resolution-form label{grid-column:1/2;display:flex;align-items:center;gap:8px}
.resolution-form button{grid-column:2/3;grid-row:3/6;align-self:end}
.category-count{font-size:17px!important;line-height:1.25}
@media(max-width:700px){.upload-form{align-items:stretch;flex-direction:column}.upload-form input[type=file]{width:100%}.resolution-form{grid-template-columns:1fr}.resolution-form button{grid-column:1;grid-row:auto}.resolution-form label{grid-column:1}}

.grid2{display:grid;grid-template-columns:1fr 1fr;gap:18px}
.exchange-form{display:flex;align-items:end;gap:10px;margin-top:16px}
.exchange-form label{flex:1;font-size:13px;color:#486581}
.exchange-form input{display:block;width:100%;margin-top:7px;padding:10px;border:1px solid #bcccdc;border-radius:7px}
.message-list{max-height:380px;overflow:auto;background:#f8fafc;border:1px solid #e6edf3;border-radius:8px;padding:15px 15px 15px 34px;line-height:1.65}
@media(max-width:900px){.grid2{grid-template-columns:1fr}}
.video-card{background:#f7fbff;border:1px solid #cfe3f3;border-radius:12px;padding:17px 18px;margin:16px 0;display:flex;justify-content:space-between;align-items:center;gap:16px}.video-label{display:block;color:#627d98;font-size:12px;margin-bottom:7px}.video-card strong{display:block;max-width:850px;word-break:break-all}.video-password{margin-top:8px;color:#486581;font-size:13px}.video-password code{background:#fff;border:1px solid #d9e2ec;border-radius:5px;padding:3px 7px}.review-layout{display:grid;grid-template-columns:1fr 1.35fr;gap:18px}.one-col{grid-template-columns:1fr}.score-form{display:grid;grid-template-columns:1fr 1fr;gap:13px}.score-form label,.field-label{font-size:13px;color:#486581}.score-form input,.score-form textarea{display:block;width:100%;margin-top:7px;padding:9px;border:1px solid #bcccdc;border-radius:7px}.check-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:8px}.check{font-size:12px;color:#334e68;background:#f8fafc;padding:8px;border-radius:6px}.check input{margin-right:6px}.score-summary{color:#627d98}.score-summary strong{color:#1769aa;font-size:20px}.review-search{display:flex;gap:8px;margin-bottom:16px}.review-search input{flex:1;padding:10px;border:1px solid #bcccdc;border-radius:7px}.danger-inline{background:#fff0f0!important;color:#b42318!important}.form.one-col select{display:block;width:100%;margin-top:7px;padding:10px;border:1px solid #bcccdc;border-radius:7px;background:#fff}@media(max-width:1000px){.review-layout{grid-template-columns:1fr}.video-card{align-items:flex-start;flex-direction:column}}

/* KOMS v2.0 workflow navigation */
.workflow-filter{background:#fff;border:1px solid var(--line);border-radius:12px;box-shadow:0 3px 12px rgba(16,42,67,.05);padding:18px;margin-bottom:18px}.filter-step{display:grid;grid-template-columns:34px 1fr;gap:12px;align-items:start;padding:12px 0;border-bottom:1px solid #edf2f7}.filter-step:first-child{padding-top:0}.filter-step>b{width:27px;height:27px;border-radius:50%;display:grid;place-items:center;background:#e7f5ff;color:#0b69a3;font-size:12px}.filter-label{display:block;color:#627d98;font-size:12px;font-weight:700;margin:4px 0 9px}.choice-row,.status-row{display:flex;gap:7px;flex-wrap:wrap}.choice{display:inline-flex;align-items:center;min-height:34px;padding:7px 12px;border:1px solid #bcccdc;border-radius:8px;background:#fff;color:#334e68;text-decoration:none;font-size:13px}.choice:hover,.choice.active{border-color:#1769aa;background:#eaf4fb;color:#0b5f96;font-weight:700}.year-row{margin:-5px 0 18px}.year-row .choice{min-width:66px;justify-content:center}.status-row{padding-top:15px}.status-choice{padding:8px 12px;border-radius:999px;background:#eef4f8;color:#334e68;text-decoration:none;font-size:12px}.status-choice:hover,.status-choice.active{background:#1769aa;color:#fff}.phase-badge{font-size:12px;color:#486581;background:#eef4f8;padding:6px 9px;border-radius:999px}.workflow-cards{grid-template-columns:minmax(220px,320px)}.workflow-filter+.panel .filter-form{grid-template-columns:minmax(260px,1fr) minmax(150px,220px) 75px 75px}@media(max-width:850px){.filter-step{grid-template-columns:28px 1fr}.workflow-filter+.panel .filter-form{grid-template-columns:1fr 1fr}.status-choice{padding:7px 10px}}
.bulk-toolbar{display:flex;align-items:center;justify-content:space-between;gap:14px;background:#f7fbff;border:1px solid #cfe3f3;border-radius:9px;padding:12px 14px;margin-bottom:10px}.bulk-toolbar strong{display:block;font-size:14px}.bulk-toolbar span{display:block;color:#627d98;font-size:11px;margin-top:3px}.bulk-toolbar .btn:disabled{cursor:not-allowed;opacity:.45}.success-notice{margin:0 0 16px;background:#eaf8ef;border-left:4px solid #258750;color:#166534;padding:13px 14px;line-height:1.5}.work-check,#select-all{width:16px;height:16px;accent-color:#1769aa}.work-check:disabled{opacity:.25}@media(max-width:650px){.bulk-toolbar{align-items:stretch;flex-direction:column}.bulk-toolbar .btn{width:100%}}
.reception-sections{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px;margin-bottom:18px}.reception-section-card{display:flex;flex-direction:column;min-height:300px;background:#fff;border:1px solid var(--line);border-radius:14px;padding:22px;box-shadow:0 4px 16px rgba(16,42,67,.06)}.reception-section-card span{color:#627d98;font-size:12px}.reception-section-card h2{font-size:22px;margin:6px 0 22px}.reception-section-card>strong{font-size:38px;color:#1769aa;margin-bottom:20px}.reception-section-card>strong small{font-size:14px;margin-left:4px;color:#627d98}.reception-section-card dl{margin:0 0 22px}.reception-section-card dl div{display:flex;justify-content:space-between;border-top:1px solid #edf2f7;padding:10px 0}.reception-section-card dt{color:#627d98}.reception-section-card dd{font-weight:700;margin:0}.reception-section-card .btn{margin-top:auto;text-align:center}.breadcrumb{display:flex;align-items:center;gap:7px;color:#627d98;font-size:12px;margin-bottom:7px}.breadcrumb a{color:#627d98;text-decoration:none}.breadcrumb a:hover{text-decoration:underline}@media(max-width:1000px){.reception-sections{grid-template-columns:1fr}.reception-section-card{min-height:230px}}
.bulk-actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.bulk-actions select{min-height:36px;padding:7px 9px;border:1px solid #bcccdc;border-radius:7px;background:#fff;color:#334e68}@media(max-width:700px){.bulk-actions{display:grid;grid-template-columns:1fr}.bulk-actions select,.bulk-actions .btn{width:100%}}

/* 업무 상황판 대시보드 */
.as-of{font-size:11px;color:#829ab1;margin-left:6px}.dashboard-summary{padding:22px}.reception-goal{display:flex;align-items:end;justify-content:space-between;gap:18px}.reception-goal span{display:block;color:#627d98;font-size:13px}.reception-goal strong{display:block;font-size:34px;margin-top:6px}.reception-goal strong small,.dashboard-goal strong small{font-size:14px;color:#829ab1}.reception-goal>b{font-size:24px;color:#1769aa}.progress{height:8px;background:#edf2f7;border-radius:99px;overflow:hidden}.progress i{display:block;height:100%;background:#2f80c1;border-radius:99px}.reception-progress{height:10px;margin:13px 0 9px}.category-received{color:#627d98;font-size:13px;margin-bottom:24px}.dashboard-goals{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}.dashboard-goal{border:1px solid #d9e2ec;border-radius:10px;padding:15px;text-decoration:none;color:#243b53}.dashboard-goal:hover{border-color:#1769aa;background:#f7fbff}.dashboard-goal span{display:block;color:#627d98;font-size:12px}.dashboard-goal .goal-head{display:flex;align-items:baseline;justify-content:space-between;gap:8px}.goal-gap{font-style:normal;font-weight:700;font-size:12px;white-space:nowrap}.goal-gap.short{color:#b7791f}.goal-gap.over,.goal-gap.met{color:#258750}.dashboard-goal strong{display:block;font-size:23px;margin:7px 0 12px}.queue-grid{display:grid;grid-auto-flow:column;grid-auto-columns:minmax(0,1fr);gap:10px}.queue-card{display:flex;min-height:110px;flex-direction:column;border:1px solid #d9e2ec;border-radius:10px;padding:14px;text-decoration:none;color:#243b53}.queue-card:hover{border-color:#1769aa;background:#f7fbff}.queue-card span{font-size:12px;color:#627d98}.queue-card strong{font-size:28px;margin:7px 0}.queue-card small{margin-top:auto;color:#829ab1}.panel-note,.annual-panel .panel-head p{font-size:12px;color:#829ab1;margin:0}.annual-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:10px}.month-cell{min-height:210px;border:1px solid #d9e2ec;border-radius:9px;overflow:hidden;background:#fff}.month-cell h3{display:flex;justify-content:space-between;align-items:center;margin:0;padding:10px 12px;background:#e9f0fb;font-size:14px}.month-cell h3 small{font-size:11px;color:#627d98;font-weight:500}.month-categories{display:grid;gap:5px;padding:10px 10px 4px}.month-category{display:flex;align-items:center;justify-content:space-between;padding:7px 9px;border-radius:6px;background:#f5f8fb;color:#486581;text-decoration:none;font-size:11px}.month-category strong{font-size:12px;color:#243b53}.month-category:hover{background:#eaf4fb}.month-category.general{border-left:3px solid #2f80c1}.month-category.independent{border-left:3px solid #7c5ac7}.month-category.public{border-left:3px solid #258750}.month-events{display:flex;flex-direction:column;gap:6px;padding:6px 10px 10px}.annual-event{display:block;padding:8px;border-radius:6px;background:#eaf4fb;text-decoration:none;font-size:12px;color:#0b5f96}.annual-event.done{background:#eaf8ef;color:#166534}.empty-event{font-size:11px;color:#9fb3c8;padding:7px 2px}@media(max-width:1200px){.queue-grid{grid-auto-flow:row;grid-template-columns:repeat(3,1fr)}.annual-grid{grid-template-columns:repeat(3,1fr)}}@media(max-width:850px){.dashboard-goals{grid-template-columns:1fr}.queue-grid{grid-auto-flow:row;grid-template-columns:repeat(2,1fr)}.annual-grid{grid-template-columns:repeat(2,1fr)}}@media(max-width:560px){.queue-grid,.annual-grid{grid-auto-flow:row;grid-template-columns:1fr}}

/* 자체심의 작업대 */
.review-progress{display:grid;grid-template-columns:auto minmax(240px,1fr);align-items:center;gap:16px;background:#fff;border:1px solid #cfe3f3;border-radius:11px;padding:9px 15px;margin-bottom:10px}.review-progress>div:first-child{display:flex;align-items:baseline;gap:10px}.review-progress strong{font-size:23px;color:#1769aa}.review-progress span{font-size:14px;color:#627d98}.review-progress+.page-title{margin-bottom:10px}.review-progress+.page-title h1{font-size:27px}.review-workbench{display:grid;grid-template-columns:minmax(390px,.82fr) minmax(680px,1.18fr);gap:14px;align-items:start}/* 영상칸 크기 단계 — '영상 크게' 버튼이 갈아 끼운다. 선택은 브라우저가 기억한다. */.review-workbench.video-wide{grid-template-columns:minmax(560px,1.22fr) minmax(430px,.78fr)}.review-workbench.video-max{grid-template-columns:1fr}.review-workbench.video-max .review-reference-column{position:static}.review-video-panel .panel-head{align-items:flex-start;gap:12px}.review-reference-column{position:sticky;top:82px;display:grid;gap:14px}.work-reference{position:static}.review-video-panel{padding:15px}.review-video-panel .panel-head{margin-bottom:10px}.review-video-panel .panel-head h2{font-size:21px}.review-video-panel .inline-video-frame{width:100%;aspect-ratio:16/9}.review-video-meta{display:flex;align-items:flex-end;justify-content:space-between;gap:12px;margin-top:11px}.review-video-meta>div{min-width:0}.review-video-meta strong{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:100%;font-size:14px}.review-video-meta .btn{flex:0 0 auto;padding:9px 12px;font-size:13px}.self-review-form{padding:15px}.self-review-form .panel-head{margin-bottom:8px}.self-review-form .panel-head h2,.work-reference h2{font-size:21px}.self-review-form form{gap:11px}.self-review-form textarea{line-height:1.5;resize:vertical;font-size:15px}.review-meta-row{display:grid;grid-template-columns:190px minmax(0,1fr);gap:12px;align-items:end}.review-reasons .field-label,.result-fieldset legend{font-size:14px;font-weight:700}.review-notes-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}.review-notes-grid textarea{min-height:118px}.save-state{font-size:13px;padding:6px 10px;border-radius:999px;background:#eef4f8;color:#486581}/* 편성 알약 링크 — 접수 목록에서 '편성 · 97회'를 누르면 그 회차 상세로 간다(2026-08-31). */a.pill-link{text-decoration:none;cursor:pointer;background:#eaf4fb;color:#0b5f96;border:1px solid #bcd8ee}a.pill-link:hover{background:#d9ebfa;text-decoration:underline}/* 저장 확인 칩 — 심의대에서 저장하면 제목 옆에 뜬다. 블록 배너(success-notice)로 띄우면 영상·의견 칸이 통째로 밀려 산만하다고 해서 칩으로 바꿨다(2026-08-31). 흐름에 끼어드는 요소를 다시 넣지 말 것. */.save-flash{display:inline-block;margin-left:11px;padding:2px 11px 3px;border-radius:999px;background:#eaf8ef;border:1px solid #b7e0c6;color:#166534;font-size:13px;font-weight:600;line-height:1.6;vertical-align:middle;white-space:nowrap;max-width:min(320px,45vw);overflow:hidden;text-overflow:ellipsis;animation:save-flash-in .3s ease-out}.save-flash::before{content:'✓ ';font-weight:800;color:#258750}@keyframes save-flash-in{from{opacity:0;transform:translateY(3px)}to{opacity:1;transform:none}}.review-save-actions{display:flex;gap:8px;flex-wrap:wrap}.review-save-actions .btn{font-size:14px;padding:10px 14px}.review-save-actions .next{margin-left:auto}.review-search input[type=hidden]{display:none}.work-reference .detail-item span,.work-reference .text-block span{font-size:14px}.work-reference .detail-item strong{font-size:16px}.work-reference .text-block p{font-size:15px}.review-workbench+.panel{margin-top:14px}@media(max-width:1250px){.review-workbench{grid-template-columns:minmax(340px,.8fr) minmax(560px,1.2fr)}.review-meta-row{grid-template-columns:1fr}.review-notes-grid{grid-template-columns:1fr}.review-notes-grid textarea{min-height:110px}.review-video-meta{align-items:stretch;flex-direction:column}.review-video-meta .btn{width:100%;text-align:center}}@media(max-width:1050px){.review-workbench{grid-template-columns:1fr}.review-reference-column{position:static}}@media(max-width:650px){.review-progress{grid-template-columns:1fr}.review-save-actions{display:grid}.review-save-actions .next{margin-left:0}.review-meta-row,.review-notes-grid{grid-template-columns:1fr}}
.review-order-switch{display:flex;justify-content:flex-end;align-items:center;margin:-4px 0 10px}.review-order-switch label,.review-sort-control{display:flex;align-items:center;gap:8px;font-size:13px;font-weight:700;color:#627d98}.review-order-switch select,.review-sort-control select{min-width:170px;padding:9px 30px 9px 10px;border:1px solid #bcccdc;border-radius:8px;background:#fff;color:#334e68;font-size:14px;font-weight:700}.review-search-with-sort{align-items:end}.review-search-with-sort>.review-sort-control{flex:0 0 auto}.review-search-with-sort>.review-sort-control span{white-space:nowrap}@media(max-width:750px){.review-search-with-sort{align-items:stretch;flex-direction:column}.review-search-with-sort>.review-sort-control{justify-content:space-between}.review-search-with-sort>.review-sort-control select{flex:1}.review-order-switch{justify-content:stretch}.review-order-switch label{width:100%}.review-order-switch select{flex:1}}
.result-fieldset{margin:0;padding:0;border:0}.result-fieldset legend{color:#486581;margin-bottom:6px}.result-choice-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:7px}.result-choice{position:relative;cursor:pointer}.result-choice input{position:absolute;opacity:0;pointer-events:none}.result-choice span{display:flex;min-height:46px;align-items:center;justify-content:center;padding:8px;border:1px solid #bcccdc;border-radius:9px;background:#fff;color:#334e68;font-size:15px;font-weight:700;text-align:center;transition:.15s ease}.result-choice:hover span{border-color:#1769aa;background:#f5faff}.result-choice input:focus-visible+span{outline:3px solid rgba(23,105,170,.25);outline-offset:2px}.result-ok input:checked+span{border-color:#30a46c;background:#eaf8ef;color:#166534}.result-conditional input:checked+span{border-color:#d69e2e;background:#fff8db;color:#8a5a00}.result-hold input:checked+span{border-color:#7b8794;background:#eef2f6;color:#334e68}.result-reject input:checked+span{border-color:#d64545;background:#fff0f0;color:#b42318}.self-review-form .check-grid{grid-template-columns:repeat(5,minmax(0,1fr));gap:6px;margin-top:6px}.self-review-form .check{display:flex;align-items:center;min-height:42px;padding:7px 9px;font-size:13px;line-height:1.25}.self-review-form .check input{width:17px;height:17px;flex:0 0 auto;accent-color:#1769aa}@media(max-width:1400px){.self-review-form .check-grid{grid-template-columns:repeat(2,1fr)}}@media(max-width:650px){.result-choice-grid{grid-template-columns:1fr 1fr}.self-review-form .check-grid{grid-template-columns:1fr}}
.review-completion{display:flex;align-items:center;justify-content:space-between;gap:20px;background:#f7fbff;border:1px solid #cfe3f3;border-radius:12px;padding:16px 20px;margin-bottom:18px}.review-completion.complete{background:#effaf3;border-color:#b9e4c9}.review-completion>div strong{display:block;font-size:29px;color:#1769aa}.review-completion.complete>div strong{color:#258750}.review-completion>div span{display:block;margin-top:4px;color:#486581;font-weight:700}.review-completion dl{display:grid;grid-template-columns:repeat(4,minmax(110px,1fr));gap:9px;margin:0}.review-completion dl div{background:#fff;border:1px solid #d9e2ec;border-radius:9px;padding:10px 14px}.review-completion dt{font-size:12px;color:#627d98}.review-completion dd{font-size:19px;font-weight:800;margin:4px 0 0}.panel-head .result-actions form{margin:0}@media(max-width:900px){.review-completion{align-items:stretch;flex-direction:column}.review-completion dl{grid-template-columns:1fr 1fr}}

/* 온라인심의 전용 작업대 */
.upload-file-field{display:flex;flex:1;flex-direction:column;gap:5px}.upload-file-field span{font-size:12px;color:#627d98}.upload-file-field input[type=file]{width:100%;margin-top:7px}.page-guidance{display:inline-block;color:#627d98;font-size:13px;background:#eef7ff;border-radius:8px;padding:10px 13px}.online-import-button{font-size:15px;padding:12px 18px}.online-summary{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin-bottom:18px}.online-summary>div{background:#fff;border:1px solid #cfe3f3;border-radius:12px;padding:17px 19px;box-shadow:0 3px 12px rgba(16,42,67,.04)}.online-summary span{display:block;color:#627d98;font-size:13px}.online-summary strong{display:block;color:#1769aa;font-size:29px;margin-top:7px}.online-reviewers{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}.online-reviewer{display:flex;flex-direction:column;border:1px solid #d9e2ec;border-radius:10px;padding:15px;background:#f8fbfd}.online-reviewer strong{font-size:17px}.online-reviewer span{font-size:15px;color:#1769aa;font-weight:700;margin:7px 0}.online-reviewer small{color:#627d98}.online-empty{grid-column:1/-1;padding:24px;border-radius:9px;background:#f8fafc;color:#829ab1;text-align:center}@media(max-width:950px){.online-summary,.online-reviewers{grid-template-columns:1fr 1fr}}@media(max-width:600px){.online-summary,.online-reviewers{grid-template-columns:1fr}}
.score-drop-zone{transition:border-color .15s ease,background .15s ease,box-shadow .15s ease}.score-drop-zone.drag-active{border-color:#1769aa;background:#eaf4fb;box-shadow:0 0 0 4px rgba(23,105,170,.12)}.upload-file-field .selected-file-summary{min-height:18px;color:#1769aa;font-size:13px;font-weight:700;word-break:break-word}
.score-grade{display:inline-flex;min-width:42px;justify-content:center;padding:5px 9px;border-radius:999px;font-weight:800}.grade-S{background:#e8ddff;color:#5b36a7}.grade-A{background:#dcfce7;color:#166534}.grade-B{background:#eaf4fb;color:#0b5f96}.grade-미선정{background:#fee2e2;color:#991b1b}

/* 시스템 - 연도별 목표 설정 */
.target-settings .panel-head{align-items:flex-start}.target-settings .panel-head h2{margin-bottom:5px}.target-year-row{margin:14px 0 18px;padding-bottom:16px;border-bottom:1px solid #edf2f7}.target-form{grid-template-columns:repeat(4,minmax(150px,1fr));align-items:end}.target-form label{font-weight:700}.target-form input{font-size:16px;font-weight:700;color:#243b53}.target-save{grid-column:1/-1;display:flex;justify-content:flex-end}.target-save .btn{min-width:180px;padding:11px 18px;font-size:14px}.notice.success{background:#effaf3;border-left-color:#258750;color:#166534}@media(max-width:1200px){.target-form{grid-template-columns:repeat(2,1fr)}}@media(max-width:700px){.target-settings .panel-head{gap:12px;flex-direction:column}.target-form{grid-template-columns:1fr}.target-save{grid-column:1}.target-save .btn{width:100%}}

/* 방송관리 월간 달력 */
.broadcast-summary .card strong small{font-size:14px;color:#829ab1;margin-left:4px}.broadcast-summary .card:nth-child(3) strong{color:#258750}.broadcast-calendar-panel{padding:0;overflow:hidden}.broadcast-calendar-toolbar{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:20px 22px;border-bottom:1px solid #e6edf3}.broadcast-calendar-toolbar h2{font-size:25px;margin:0 0 5px}.broadcast-calendar-toolbar p{margin:0;color:#829ab1;font-size:12px}.broadcast-calendar-actions,.broadcast-calendar-actions form{display:flex;align-items:center;gap:7px}.broadcast-calendar-actions select{padding:8px 28px 8px 10px;border:1px solid #bcccdc;border-radius:7px;background:#fff;color:#334e68}.calendar-arrow,.calendar-today{display:inline-flex;min-width:36px;height:36px;align-items:center;justify-content:center;border-radius:999px;background:#eef2f6;color:#334e68;text-decoration:none;font-weight:800}.calendar-arrow{font-size:24px}.calendar-today{padding:0 12px;font-size:12px}.calendar-arrow:hover,.calendar-today:hover{background:#dfe9f2}.broadcast-legend{display:flex;justify-content:flex-end;gap:14px;padding:12px 22px;color:#627d98;font-size:12px}.broadcast-legend span:before{content:"";display:inline-block;width:10px;height:10px;border-radius:3px;margin-right:5px}.broadcast-legend .general:before{background:#dceeff;border-left:3px solid #2f80c1}.broadcast-legend .independent:before{background:#eee7ff;border-left:3px solid #7c5ac7}.broadcast-legend .completed:before{background:#e8eef3}.broadcast-calendar-wrap{overflow-x:auto;border-top:1px solid #edf2f7}.broadcast-calendar{display:grid;grid-template-columns:repeat(7,minmax(145px,1fr));min-width:1050px;background:#dfe6ed;gap:1px}.broadcast-weekday{padding:11px;background:#f7f9fb;text-align:center;color:#486581;font-weight:800}.broadcast-weekday.sunday{color:#d64545}.broadcast-weekday.saturday{color:#1769aa}.broadcast-day{min-height:158px;padding:9px;background:#fff}.broadcast-day.other-month{background:#f8fafc}.broadcast-day.other-month .broadcast-date{opacity:.38}.broadcast-day.today{box-shadow:inset 0 0 0 2px #2f80c1}.broadcast-date{display:flex;align-items:center;justify-content:space-between;min-height:27px;margin-bottom:7px;font-size:14px;font-weight:800}.today-label{padding:3px 7px;border-radius:999px;background:#e33f4f;color:#fff;font-size:10px}.broadcast-events{display:flex;flex-direction:column;gap:6px}.broadcast-event{display:block;padding:7px 8px;border-radius:7px;background:#e7f2fd;border-left:4px solid #2f80c1;color:#164d77;text-decoration:none;line-height:1.25}.broadcast-event.independent{background:#eee9fb;border-left-color:#7c5ac7;color:#523c8d}.broadcast-event.completed{filter:saturate(.45);opacity:.72}.broadcast-event.selected{box-shadow:0 0 0 2px #1769aa;opacity:1;filter:none}.broadcast-event:hover{transform:translateY(-1px);box-shadow:0 3px 8px rgba(16,42,67,.15);opacity:1;filter:none}.broadcast-event strong,.broadcast-event small{display:block}.broadcast-event strong{font-size:12px}.broadcast-event small{margin-top:3px;font-size:10px;opacity:.78}.broadcast-detail.empty{padding:30px;text-align:center;color:#627d98}.broadcast-detail .panel-head{align-items:flex-start}.broadcast-detail .panel-head h2{font-size:23px;margin:5px 0 0}.broadcast-detail-kicker{color:#1769aa;font-size:12px;font-weight:800}.broadcast-detail-meta{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin:0 0 17px}.broadcast-detail-meta>div{padding:13px 15px;border:1px solid #e6edf3;border-radius:9px;background:#f8fafc}.broadcast-detail-meta span{display:block;color:#627d98;font-size:11px}.broadcast-detail-meta strong{display:block;margin-top:5px;font-size:16px}@media(max-width:1000px){.broadcast-calendar-toolbar{align-items:flex-start;flex-direction:column}.broadcast-calendar-actions{width:100%;justify-content:space-between}.broadcast-summary{grid-template-columns:1fr 1fr}}@media(max-width:650px){.broadcast-calendar-actions,.broadcast-calendar-actions form{flex-wrap:wrap}.broadcast-detail-meta,.broadcast-summary{grid-template-columns:1fr}.broadcast-calendar-toolbar{padding:16px}.broadcast-legend{justify-content:flex-start;padding:10px 16px}}
.broadcast-status-card{min-height:138px}.broadcast-program-summary{display:grid;gap:9px;margin:13px 0 0}.broadcast-program-summary>div{display:flex;align-items:center;justify-content:space-between;gap:12px;padding-top:8px;border-top:1px solid #e8eef3}.broadcast-program-summary dt{color:#486581;font-size:13px;font-weight:700}.broadcast-program-summary dd{display:flex;align-items:baseline;gap:7px;margin:0;text-align:right}.broadcast-program-summary dd b{color:#102a43;font-size:19px}.broadcast-summary .card:nth-child(3) .broadcast-program-summary dd b{color:#258750}.broadcast-program-summary dd small{color:#829ab1;font-size:11px;white-space:nowrap}
.broadcast-batch-actions{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:14px 22px;background:#f5faff;border-top:1px solid #e1edf7}.broadcast-batch-actions div{display:flex;align-items:baseline;gap:12px}.broadcast-batch-actions strong{font-size:17px;color:#1769aa}.broadcast-batch-actions span{color:#627d98;font-size:12px}.broadcast-batch-actions button:disabled{cursor:not-allowed;opacity:.45}.broadcast-date-actions{display:flex;align-items:center;gap:5px}.broadcast-day-selector{display:inline-flex;align-items:center;gap:3px;padding:3px 6px;border-radius:999px;background:#edf4fa;color:#486581;font-size:9px;cursor:pointer}.broadcast-day-selector input,.broadcast-event-row>input{width:16px;height:16px;margin:0;accent-color:#1769aa;cursor:pointer}.broadcast-event-row{display:grid;grid-template-columns:16px minmax(0,1fr);align-items:center;gap:6px}.broadcast-event-row .broadcast-event{min-width:0}.batch-export-actions{position:sticky;bottom:12px;z-index:5;display:flex;justify-content:flex-end;gap:8px;margin:18px 0;padding:12px;border:1px solid #d7e5f1;border-radius:12px;background:rgba(255,255,255,.94);box-shadow:0 5px 20px rgba(16,42,67,.12);backdrop-filter:blur(8px)}.batch-episode-section{margin-top:18px}.batch-episode-section .panel-head p{margin:5px 0 0;color:#627d98}@media(max-width:650px){.broadcast-batch-actions{align-items:stretch;flex-direction:column}.broadcast-batch-actions div{align-items:flex-start;flex-direction:column;gap:3px}.broadcast-batch-actions .btn{width:100%}.broadcast-day-selector span{display:none}}

/* 심의결과 상황판 */
.result-filter .filter-step:last-child{border-bottom:0;padding-bottom:0}.review-result-totals .card strong small{font-size:15px;color:#627d98;margin-left:4px}.review-result-totals .card:nth-child(3) strong{color:#258750}.card-subline{display:block;margin-top:7px;color:#829ab1;font-size:12px}.session-result-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.session-result-card{background:#fff;border:1px solid var(--line);border-radius:13px;padding:20px;box-shadow:0 3px 12px rgba(16,42,67,.05)}.session-result-head{display:flex;align-items:flex-start;justify-content:space-between;gap:14px;border-bottom:1px solid #edf2f7;padding-bottom:15px}.session-result-head h2{font-size:20px;margin:10px 0 5px}.session-result-head p{margin:0;color:#829ab1;font-size:12px}.session-result-main{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;padding:16px 0}.session-result-main>div{background:#f8fafc;border:1px solid #edf2f7;border-radius:9px;padding:12px}.session-result-main span{display:block;color:#627d98;font-size:12px}.session-result-main strong{display:block;font-size:24px;margin-top:5px}.session-result-main strong.adopted{color:#258750}.session-result-main small{font-size:12px;color:#829ab1;margin-left:3px}.grade-summary{display:flex;align-items:center;gap:9px}.grade-summary>div{display:flex;align-items:center;gap:7px;border:1px solid #edf2f7;border-radius:9px;padding:7px 10px}.grade-summary>div strong{font-size:14px}.grade-summary .btn{margin-left:auto}.empty-review-results{grid-column:1/-1;text-align:center;padding:48px}.empty-review-results p{color:#627d98}@media(max-width:1150px){.session-result-grid{grid-template-columns:1fr}}@media(max-width:650px){.session-result-main{grid-template-columns:1fr 1fr}.grade-summary{align-items:stretch;flex-direction:column}.grade-summary>div,.grade-summary .btn{width:100%;margin-left:0}.grade-summary .btn{text-align:center}}
.session-result-main .result-stat-link{display:block;padding:12px;border:1px solid #edf2f7;border-radius:9px;background:#f8fafc;color:inherit;text-decoration:none;transition:.15s ease}.session-result-main .result-stat-link:hover,.grade-summary>a:not(.btn):hover{border-color:#7fb3dd;background:#f0f8ff;box-shadow:0 3px 9px rgba(23,105,170,.1);transform:translateY(-1px)}.grade-summary>a:not(.btn){display:flex;align-items:center;gap:7px;padding:7px 10px;border:1px solid #edf2f7;border-radius:9px;color:inherit;text-decoration:none;transition:.15s ease}.grade-summary>a:not(.btn) strong{font-size:14px}.result-work-list{margin-top:20px}.result-work-list .panel-head p{margin:5px 0 0;color:#627d98}.result-summary-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.result-summary-work{padding:17px;border:1px solid #dce6ef;border-radius:12px;background:#fbfdff}.result-summary-work-head{display:flex;align-items:flex-start;justify-content:space-between;gap:14px;margin-bottom:12px}.result-summary-work-head span,.result-summary-work-head p{color:#627d98;font-size:12px}.result-summary-work-head h3{margin:5px 0;font-size:19px}.result-summary-work-head p{margin:0}.result-summary-work-head .button-row{align-items:center}.result-summary-work label{display:block;color:#334e68;font-weight:800}.result-summary-work label small{color:#829ab1;font-weight:500;margin-left:5px}.result-summary-work textarea{width:100%;min-height:112px;margin-top:7px;padding:12px;border:1px solid #bcccdc;border-radius:9px;resize:vertical;font:inherit;line-height:1.55}.result-summary-work textarea:focus{outline:2px solid #9dc9eb;border-color:#2f80c1}.result-note{margin:10px 0 0;padding:9px 11px;border-radius:8px;background:#fff8e6;color:#725510;font-size:12px}.result-summary-save{position:sticky;bottom:12px;z-index:4;display:flex;justify-content:flex-end;margin-top:16px;padding:12px;border:1px solid #d7e5f1;border-radius:11px;background:rgba(255,255,255,.95);box-shadow:0 5px 18px rgba(16,42,67,.12)}@media(max-width:900px){.result-summary-grid{grid-template-columns:1fr}}@media(max-width:650px){.grade-summary>a:not(.btn){width:100%}.result-summary-work-head{flex-direction:column}}
.guideline-intro{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:17px 20px;border-left:5px solid #2f80c1;background:#f1f8fe}.guideline-intro span{color:#627d98;font-size:13px}.guideline-tools{max-width:1090px;margin:18px auto 0;padding:16px 20px}.guideline-tools>label{display:block;margin-bottom:8px;color:#243b53;font-size:14px;font-weight:800}.guideline-search-row{display:grid;grid-template-columns:minmax(260px,1fr) auto auto auto;gap:8px}.guideline-search-row input{min-height:42px;padding:10px 13px;border:1px solid #b8cbe0;border-radius:9px;background:#fff;color:#243b53;font:inherit}.guideline-search-row input:focus{outline:3px solid rgba(47,128,193,.16);border-color:#2f80c1}.guideline-tools p{display:flex;align-items:center;justify-content:space-between;gap:18px;margin:9px 0 0;color:#829ab1;font-size:12px}.guideline-tools #guideline-search-status{color:#1769aa;font-weight:800}.guideline-document{width:min(1090px,100%);height:calc(100vh - 330px);min-height:520px;margin:12px auto 18px;padding:42px 54px;overflow-y:auto;overscroll-behavior:contain;scroll-behavior:smooth;line-height:1.8}.guideline-document:focus{outline:3px solid rgba(47,128,193,.16);outline-offset:2px}.guideline-document h1{margin:0 0 28px;text-align:center;font-size:28px}.guideline-document h2{margin:34px 0 18px;padding-bottom:9px;border-bottom:2px solid #334e68;font-size:21px}.guideline-document h3{margin:27px 0 12px;color:#1769aa;font-size:18px}.guideline-document p{margin:7px 0;color:#334e68;font-size:15px}.guideline-document .guideline-revision{margin:2px 0;text-align:right;color:#829ab1;font-size:12px}.guideline-document .guideline-article{margin-top:17px;color:#102a43}/* 자연어 질문(시험 기능) — 본문 검색 아래 창. 답·근거 조문은 pre-wrap 으로 원문 줄을 살린다. */.guideline-ask{max-width:1090px;margin:12px auto 0;padding:16px 20px}.guideline-ask>label{display:block;margin-bottom:8px;color:#243b53;font-size:14px;font-weight:800}.guideline-ask .guideline-search-row{grid-template-columns:minmax(260px,1fr) auto}.guideline-ask .ask-answer{white-space:pre-wrap;margin:12px 0 0;padding:13px 15px;border:1px solid #cfe3f3;border-left:4px solid #1769aa;border-radius:9px;background:#f7fbff;color:#243b53;line-height:1.7}.guideline-ask .ask-source{white-space:pre-wrap;margin:8px 0 0;padding:11px 13px;border:1px solid #e6ecf3;border-left:3px solid #829ab1;border-radius:8px;background:#fbfcfd;color:#334e68;font-size:14px;line-height:1.7}.guideline-ask .ask-meta{margin:8px 0 0;color:#829ab1;font-size:12.5px}.guideline-ask .notice.warn{margin-top:12px}.guideline-ask .notice.warn ul{margin:6px 0;padding-left:20px}/* PDF 원문 보기 — 브라우저 내장 PDF 뷰어를 그대로 쓴다(검색은 ⌘F). */.guideline-pdf-wrap{width:min(1090px,100%);margin:12px auto 18px;padding:8px}.guideline-pdf{display:block;width:100%;height:calc(100vh - 330px);min-height:560px;border:0;border-radius:8px}/* 지침 속 표 — HWPX 표를 표답게. 병합 칸까지는 못 살린다(정식은 원문). */.guideline-document .table-wrap{margin:14px 0}.guideline-table{width:100%;border-collapse:collapse;font-size:13.5px;line-height:1.5}.guideline-table th,.guideline-table td{border:1px solid #d5deea;padding:7px 9px;text-align:left;vertical-align:top;color:#334e68}.guideline-table thead th{background:#f4f8fc;color:#243b53;font-weight:700}.guideline-search-hit{border-radius:5px;background:#fff4b8;box-shadow:0 0 0 3px #fff4b8}.guideline-search-current{background:#ffd86b;box-shadow:0 0 0 4px #ffd86b}@media(max-width:760px){.guideline-search-row{grid-template-columns:1fr 1fr 1fr}.guideline-search-row input{grid-column:1/-1}.guideline-tools p{align-items:flex-start;flex-direction:column;gap:4px}}@media(max-width:650px){.guideline-intro{align-items:flex-start;flex-direction:column}.guideline-document{height:calc(100vh - 350px);min-height:440px;padding:25px 20px}.guideline-document h1{font-size:23px}}

/* 제작내용 HWPX */
.production-content-form{max-width:1400px;margin:0 auto}.production-content-list{display:grid;gap:16px}.production-content-item{padding:20px;border:1px solid var(--line);border-radius:16px;background:#f8fbff}.production-content-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:20px;margin-bottom:14px}.production-content-heading span{color:var(--muted);font-size:14px;font-weight:700}.production-content-heading h3{margin:4px 0 0;font-size:21px;color:var(--navy)}.production-content-heading dl{display:flex;gap:18px;margin:0}.production-content-heading dl div{min-width:110px}.production-content-heading dt{color:var(--muted);font-size:13px}.production-content-heading dd{margin:4px 0 0;font-weight:800;color:var(--navy)}.production-content-item label{display:block;color:var(--navy);font-weight:800}.production-content-item label small{margin-left:8px;color:var(--muted);font-weight:500}.production-content-item textarea{width:100%;margin-top:8px;min-height:92px;padding:14px;border:1px solid #b8cbe0;border-radius:10px;background:white;font:inherit;line-height:1.6;resize:vertical}.notice.warning{border-left-color:#e0a100;background:#fff8df;color:#805c00}@media(max-width:800px){.production-content-heading{display:block}.production-content-heading dl{margin-top:12px;flex-wrap:wrap}}

/* 영상 보면서 바로 편집 */
.production-review-grid{display:grid;grid-template-columns:minmax(360px,.9fr) minmax(420px,1.1fr);gap:20px;align-items:start}.inline-video-frame,.work-inline-player{position:relative;overflow:hidden;border-radius:12px;background:#102a43;aspect-ratio:16/9}.inline-video-frame iframe,.work-inline-player iframe{width:100%;height:100%;border:0}.video-empty{display:flex;width:100%;height:100%;min-height:220px;align-items:center;justify-content:center;padding:24px;color:#cbd8e5;text-align:center}.award-history{margin:12px 0 0;padding:10px 13px}.award-history strong{font-size:13.5px}.award-history-detail{margin-top:3px;font-size:12.5px;line-height:1.6}.video-fallback{margin:8px 0 0;color:#627d98;font-size:12.5px;line-height:1.6}.video-fallback b{color:#334e68}.inline-video-actions{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin-top:10px}.inline-video-actions span{color:var(--muted);font-size:14px}.production-edit-fields{display:grid;grid-template-columns:1fr 1fr;gap:14px}.production-edit-fields label:last-child{grid-column:1/-1}.production-edit-fields input,.quick-edit-form input{width:100%;margin-top:7px;padding:12px 13px;border:1px solid #b8cbe0;border-radius:9px;background:#fff;font:inherit}.work-inline-player{max-width:1180px;margin:22px auto}.quick-edit-form{margin-top:22px;padding:22px;border:1px solid var(--line);border-radius:14px;background:#f8fbff}.quick-edit-form .panel-head{margin-bottom:18px}.quick-edit-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}.quick-edit-grid label{color:var(--navy);font-weight:800}.quick-edit-grid label.wide{grid-column:1/-1}.quick-edit-grid textarea{width:100%;margin-top:7px;padding:13px;border:1px solid #b8cbe0;border-radius:9px;background:#fff;font:inherit;line-height:1.6;resize:vertical}@media(max-width:1000px){.production-review-grid{grid-template-columns:1fr}.quick-edit-grid{grid-template-columns:1fr 1fr}}@media(max-width:650px){.production-edit-fields,.quick-edit-grid{grid-template-columns:1fr}.production-edit-fields label:last-child,.quick-edit-grid label.wide{grid-column:auto}.quick-edit-form .panel-head{align-items:stretch;flex-direction:column}.quick-edit-form .panel-head .btn{width:100%}}

/* 채택료 관리 */
.payment-edit-grid .payment-calculated input{background:#eef7ff;color:#1769aa;font-weight:800;cursor:default}
.payment-rule-notice{border-left:5px solid #2f80c1;background:#f1f8fe}.payment-rule-notice strong{display:block;color:#1769aa;font-size:16px}.payment-rule-notice p{margin:6px 0 0;color:#486581;line-height:1.55}.compact-filter{display:flex;align-items:flex-start;gap:28px;flex-wrap:wrap}.compact-filter>div{display:flex;align-items:center;gap:12px}.filter-label{color:#486581;font-weight:800}.payment-summary-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;margin-bottom:18px}.payment-summary-card{padding:20px;border:1px solid var(--line);border-radius:14px;background:#fff}.payment-summary-card>span{color:#627d98;font-weight:800}.payment-summary-card>strong{display:block;margin:8px 0 15px;color:#1769aa;font-size:30px}.payment-summary-card>strong small{font-size:14px;color:#829ab1}.payment-summary-card dl{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin:0}.payment-summary-card dl div{padding:10px;border-radius:9px;background:#f8fafc}.payment-summary-card dt{color:#829ab1;font-size:11px}.payment-summary-card dd{margin:4px 0 0;font-weight:800}.payment-session-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:15px}.payment-session-card{padding:20px;border:1px solid var(--line);border-radius:14px;background:#fff}.payment-session-head{display:flex;align-items:flex-start;justify-content:space-between;gap:14px;padding-bottom:14px;border-bottom:1px solid #edf2f7}.payment-session-head span:first-child{color:#627d98}.payment-session-head h2{margin:5px 0;font-size:20px}.payment-session-head p{margin:0;color:#829ab1;font-size:12px}.status-badge{display:inline-flex;padding:6px 10px;border-radius:999px;background:#eef2f6;color:#486581;font-size:12px;font-weight:800;white-space:nowrap}.status-badge.done{background:#dcfce7;color:#166534}.payment-session-stats{display:grid;grid-template-columns:1fr 1fr;gap:9px;padding:15px 0}.payment-session-stats>div{padding:11px;border-radius:9px;background:#f8fafc}.payment-session-stats span{display:block;color:#627d98;font-size:11px}.payment-session-stats strong{display:block;margin-top:5px;font-size:18px}.payment-grades{display:flex;align-items:center;gap:5px;flex-wrap:wrap}.grade-chip{display:inline-flex;padding:5px 8px;border-radius:999px;font-size:11px;font-weight:800}.grade-s{background:#e8ddff;color:#5b36a7}.grade-a{background:#dcfce7;color:#166534}.grade-b{background:#eaf4fb;color:#0b5f96}.muted{color:#829ab1}.payment-session-amount{display:flex;align-items:center;justify-content:space-between;gap:7px;flex-wrap:wrap}.payment-session-action{display:flex;justify-content:flex-end}.empty-state{text-align:center;color:#627d98}.batch-status-form{display:flex;align-items:center;gap:8px}.batch-status-form select{padding:10px 12px;border:1px solid #b8cbe0;border-radius:9px;background:#fff}.payment-batch-cards{grid-template-columns:repeat(4,minmax(0,1fr))}.payment-batch-cards .card strong small{font-size:13px;color:#829ab1}.payment-warning{margin:16px 0;padding:15px 18px;border-left:5px solid #e0a100;background:#fff8df;color:#805c00}.payment-warning ul{margin:8px 0 0}.payment-item-list{display:grid;gap:12px}.payment-item{border:1px solid var(--line);border-radius:13px;background:#fff;overflow:hidden}.payment-item>summary{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:13px;padding:16px 18px;cursor:pointer;list-style:none}.payment-item>summary::-webkit-details-marker{display:none}.payment-item[open]>summary{border-bottom:1px solid #e7eef5;background:#f8fbff}.payment-index{display:flex;width:32px;height:32px;align-items:center;justify-content:center;border-radius:999px;background:#eaf4fb;color:#1769aa;font-weight:800}.payment-item summary strong,.payment-item summary small{display:block}.payment-item summary small{margin-top:4px;color:#829ab1}.payment-money{text-align:right}.payment-money strong{color:#1769aa;font-size:19px}.payment-money .pill{margin-top:5px}.payment-item-form{padding:18px}.payment-edit-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}.payment-edit-grid label{color:#334e68;font-weight:800}.payment-edit-grid input,.payment-edit-grid select{width:100%;margin-top:6px;padding:10px 11px;border:1px solid #b8cbe0;border-radius:8px;background:#fff;font:inherit}.payment-edit-grid .wide{grid-column:span 3}.payment-flags{display:flex;gap:9px;flex-wrap:wrap;margin:14px 0}.payment-flags label{display:flex;align-items:center;gap:7px;padding:9px 11px;border:1px solid #dce6ef;border-radius:9px;background:#f8fafc}.payment-flags input{width:17px;height:17px;accent-color:#1769aa}.report-picks{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.report-pick{display:flex;align-items:flex-start;gap:10px;padding:13px 14px;border:1px solid var(--line);border-radius:11px;background:#fff;cursor:pointer}.report-pick:has(input:checked){border-color:#1769aa;background:#f4f9fd}.report-pick input{width:17px;height:17px;margin-top:2px;accent-color:#1769aa;flex:none}.report-pick b{display:block;color:#243b53}.report-pick small{display:block;margin-top:4px;color:#829ab1;font-size:12px;line-height:1.5}@media(max-width:900px){.report-picks{grid-template-columns:1fr}}.fc-grades{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:11px;margin-bottom:14px}.fc-grade{padding:14px;border:1px solid var(--line);border-radius:12px;background:#fff;text-align:center}.fc-grade .score-grade{display:inline-flex}.fc-grade strong{display:block;margin:8px 0 3px;font-size:24px;color:#243b53}.fc-grade small{color:#829ab1;font-size:12px}.fc-lines{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:10px}.fc-lines>div{padding:12px;border-radius:10px;background:#f8fafc}.fc-lines span{display:block;color:#627d98;font-size:11.5px;font-weight:800}.fc-lines strong{display:block;margin:5px 0 2px;font-size:17px;color:#243b53}.fc-lines small{color:#9fb3c8;font-size:11px}.fc-verdict{margin-top:14px;padding:15px 18px;border-left:5px solid #2f80c1;border-radius:0 10px 10px 0;background:#f1f8fe}.fc-verdict b{display:block;font-size:16px;color:#12405f}.fc-verdict span{display:block;margin-top:5px;color:#486581;line-height:1.55}.fc-verdict.short{border-left-color:#c0392b;background:#fdf2f0}.fc-verdict.short b{color:#96271a}.fc-verdict.short span{color:#8c4a41}.fc-verdict.ok{border-left-color:#2c9b7a;background:#f0faf6}.fc-verdict.ok b{color:#1c6b52}.fc-verdict.ok span{color:#3f6d5e}.fc-verdict.none{border-left-color:#e0a100;background:#fff8df}.fc-verdict.none b{color:#805c00}.fc-verdict.none span{color:#8a6d2b}@media(max-width:1050px){.fc-grades,.fc-lines{grid-template-columns:1fr 1fr}}.payment-formula{margin:15px 0 0;padding:13px 15px;border-left:5px solid #1769aa;border-radius:0 9px 9px 0;background:#f4f9fd}.payment-formula b{display:block;margin-bottom:7px;color:#1769aa;font-size:12px;letter-spacing:.02em}.payment-formula code{display:block;color:#243b53;font:700 15.5px/1.65 inherit;font-family:inherit;font-variant-numeric:tabular-nums;word-break:keep-all}.payment-formula small{display:block;margin-top:6px;color:#627d98;font-size:12px;line-height:1.55}.payment-form-footer{display:flex;align-items:center;justify-content:space-between;gap:18px;margin-top:15px;padding-top:14px;border-top:1px solid #edf2f7;color:#627d98}.payment-form-footer strong{color:#1769aa}.btn.small{padding:7px 10px;font-size:12px}@media(max-width:1050px){.payment-session-grid{grid-template-columns:1fr}.payment-edit-grid{grid-template-columns:1fr 1fr}.payment-edit-grid .wide{grid-column:1/-1}.payment-batch-cards{grid-template-columns:1fr 1fr}}@media(max-width:700px){.payment-summary-grid,.payment-summary-card dl{grid-template-columns:1fr}.compact-filter>div,.payment-form-footer,.batch-status-form{align-items:stretch;flex-direction:column}.payment-edit-grid{grid-template-columns:1fr}.payment-edit-grid .wide{grid-column:auto}.payment-item>summary{grid-template-columns:auto 1fr}.payment-money{grid-column:2;text-align:left}.payment-batch-cards{grid-template-columns:1fr}}

/* 독립예술영화 채택료 배급사별 묶음 */
.payment-item-groups{display:grid;gap:22px}.payment-distributor-summary table small{display:block;margin-top:4px;color:#829ab1}.payment-distributor-summary td:last-child,.payment-distributor-summary th:last-child{text-align:right}.payment-personal-row{background:#fff9e8}.payment-payee-group{overflow:hidden;border:1px solid #cbdcec;border-radius:16px;background:#f7fbff}.payment-payee-group.personal{border-color:#e7c96e;background:#fffaf0}.payment-payee-group-head{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:18px 20px;border-bottom:1px solid #dce7f1;background:#eaf4fb}.payment-payee-group.personal .payment-payee-group-head{border-color:#f0d98f;background:#fff3c9}.payment-payee-group-head span{color:#627d98;font-size:12px;font-weight:800}.payment-payee-group-head h2{margin:4px 0 0;font-size:21px}.payment-payee-group-head p{margin:5px 0 0;color:#805c00;font-size:12px}.payment-payee-group-total{display:flex;align-items:center;gap:10px}.payment-payee-group-total strong{min-width:92px;padding:10px 12px;border:1px solid rgba(23,105,170,.16);border-radius:10px;background:#fff;color:#1769aa;text-align:center}.payment-payee-group>.payment-item-list{padding:14px}@media(max-width:700px){.payment-payee-group-head{align-items:stretch;flex-direction:column}.payment-payee-group-total{align-items:stretch;flex-direction:column}.payment-payee-group-total strong{min-width:0}}

/* 편성계획(안) 자동 작성 */
.schedule-draft-form{display:grid;gap:22px}.draft-options-grid{display:grid;grid-template-columns:repeat(5,minmax(145px,1fr));gap:13px}.draft-options-grid label,.draft-checks label{color:var(--navy);font-weight:800}.draft-options-grid input{width:100%;min-height:44px;margin-top:7px;padding:10px 12px;border:1px solid #b8cbe0;border-radius:9px;background:#fff;color:var(--navy);font:inherit}.draft-checks{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.draft-checks label{display:flex;align-items:center;gap:8px;padding:11px 14px;border:1px solid var(--line);border-radius:10px;background:#f8fbff}.draft-checks input{width:18px;height:18px}.draft-help{margin:0;padding:14px 16px;border-left:4px solid #2f80c1;background:#eef7ff;color:#486581;line-height:1.65}.draft-history{margin-top:22px}.draft-status{display:inline-flex;padding:5px 9px;border-radius:999px;background:#eaf3fa;color:#1769aa;font-size:12px;font-weight:800}.draft-status.confirmed{background:#dff7e8;color:#237a48}.draft-episode-list{display:grid;gap:16px}.draft-episode{padding:19px;border:1px solid var(--line);border-radius:14px;background:#fff}.draft-episode-head{display:flex;align-items:flex-start;justify-content:space-between;gap:18px;margin-bottom:13px}.draft-episode-head h3{margin:3px 0;color:var(--navy)}.draft-episode-head p{margin:0;color:var(--muted)}.draft-duration{padding:8px 11px;border-radius:9px;background:#eef7ff;color:#1769aa;font-weight:800}.draft-item-table{width:100%;border-collapse:collapse}.draft-item-table th,.draft-item-table td{padding:10px;border-bottom:1px solid #e7eef5;text-align:left}.draft-item-table th{color:#627d98;font-size:13px}.draft-warning{padding:13px 15px;border-left:4px solid #e0a100;background:#fff8df;color:#805c00;white-space:pre-line}.draft-result-actions{display:flex;align-items:center;justify-content:flex-end;gap:9px;flex-wrap:wrap;margin:16px 0}@media(max-width:1100px){.draft-options-grid{grid-template-columns:repeat(3,minmax(150px,1fr))}}@media(max-width:720px){.draft-options-grid{grid-template-columns:1fr 1fr}.draft-episode-head{flex-direction:column}}@media(max-width:520px){.draft-options-grid{grid-template-columns:1fr}.draft-checks{align-items:stretch;flex-direction:column}.draft-checks label{width:100%}}

.draft-calendar-panel{padding:0;overflow:hidden}.draft-calendar-toolbar{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:19px 22px;border-bottom:1px solid #e3ebf3}.draft-calendar-toolbar h2{margin:0 0 5px;color:var(--navy)}.draft-calendar-toolbar p{margin:0;color:#627d98}.draft-calendar-nav{display:flex;align-items:center;gap:10px;white-space:nowrap}.draft-latest-guide{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:15px 22px;background:#eef7ff;border-bottom:1px solid #d8e8f5}.draft-latest-guide strong,.draft-latest-guide span{display:block}.draft-latest-guide strong{color:#1769aa}.draft-latest-guide span{margin-top:4px;color:#627d98;font-size:12px}.draft-calendar-legend{display:flex;justify-content:flex-end;gap:14px;padding:10px 22px;color:#627d98;font-size:12px}.draft-calendar-legend span:before{content:"";display:inline-block;width:10px;height:10px;margin-right:5px;border-radius:3px}.draft-calendar-legend .general:before{background:#dceeff;border-left:3px solid #2f80c1}.draft-calendar-legend .independent:before{background:#eee7ff;border-left:3px solid #7c5ac7}.draft-calendar-legend .recommend:before{background:#e5f7e9;border:1px solid #36a269}.draft-calendar-wrap{overflow-x:auto;border-top:1px solid #edf2f7}.draft-calendar{display:grid;grid-template-columns:repeat(7,minmax(125px,1fr));min-width:875px;gap:1px;background:#dfe6ed}.draft-calendar-weekday{padding:9px;background:#f7f9fb;text-align:center;color:#486581;font-weight:800}.draft-calendar-weekday.sunday{color:#d64545}.draft-calendar-weekday.saturday{color:#1769aa}.draft-calendar-day{min-height:112px;padding:8px;background:#fff}.draft-calendar-day.other-month{background:#f8fafc;color:#9fb0bf}.draft-calendar-day.recommended{box-shadow:inset 0 0 0 2px #55b77a;background:#fbfffc}.draft-calendar-date{display:flex;align-items:center;justify-content:space-between;gap:5px;min-height:25px;margin-bottom:5px;font-size:13px;font-weight:800}.draft-calendar-recommend{padding:4px 6px;border:0;border-radius:999px;background:#dff7e8;color:#237a48;font-size:10px;font-weight:800;cursor:pointer}.draft-calendar-recommend.friday{background:#fff1ce;color:#8b6400}.draft-calendar-events{display:flex;flex-direction:column;gap:5px}.draft-calendar-event{display:block;padding:6px 7px;border-radius:7px;background:#e7f2fd;border-left:4px solid #2f80c1;color:#164d77;text-decoration:none;line-height:1.25;opacity:.68}.draft-calendar-event.independent{background:#eee9fb;border-left-color:#7c5ac7;color:#523c8d}.draft-calendar-event.current-category{opacity:1;box-shadow:0 2px 5px rgba(16,42,67,.08)}.draft-calendar-event strong,.draft-calendar-event small{display:block}.draft-calendar-event strong{font-size:11px}.draft-calendar-event small{margin-top:2px;font-size:9px;opacity:.8}.draft-start-choice{white-space:nowrap}@media(max-width:850px){.draft-calendar-toolbar,.draft-latest-guide{align-items:flex-start;flex-direction:column}.draft-calendar-nav,.draft-latest-guide .button-row{width:100%;justify-content:space-between}}@media(max-width:560px){.draft-latest-guide .button-row{align-items:stretch;flex-direction:column}.draft-start-choice{width:100%}}

/* 채택료 최신 심의결과 재계산 */
.payment-session-action{align-items:center;gap:8px;flex-wrap:wrap}.payment-session-action form{margin:0}

/* 연간 채택료 예산 전망 */
.payment-budget-overview{margin-bottom:18px}.budget-overview-stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin:18px 0}.budget-overview-stats>div{padding:15px 16px;border:1px solid #dce7f1;border-radius:11px;background:#f8fbff}.budget-overview-stats span,.budget-metrics dt{display:block;color:#627d98;font-size:12px;font-weight:700}.budget-overview-stats strong{display:block;margin-top:7px;color:#1769aa;font-size:21px}.payment-budget-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.payment-budget-card{padding:20px;border:1px solid var(--line);border-radius:15px;background:#fff}.payment-budget-head{display:flex;align-items:flex-end;justify-content:space-between;gap:15px}.payment-budget-head span{color:#627d98;font-weight:800}.payment-budget-head h2{margin:5px 0 0;color:var(--navy);font-size:25px}.payment-budget-head>strong{color:#1769aa;font-size:25px}.budget-progress{height:9px;margin:14px 0 17px;overflow:hidden;border-radius:999px;background:#e6edf4}.budget-progress i{display:block;height:100%;border-radius:999px;background:#2f80c1}.budget-metrics{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin:0}.budget-metrics>div{min-height:76px;padding:11px 12px;border-radius:9px;background:#f8fafc}.budget-metrics dd{margin:5px 0 0;color:#243b53;font-size:17px;font-weight:800}.budget-metrics small{display:block;margin-top:3px;color:#829ab1;font-size:10px}.negative strong,.negative dd{color:#c2413b!important}.budget-forecast-callout,.budget-empty{margin-top:13px;padding:13px 15px;border-radius:10px}.budget-forecast-callout{display:grid;grid-template-columns:1fr auto;align-items:center;gap:4px 12px;background:#effaf3;color:#166534}.budget-forecast-callout.negative{background:#fff0ef;color:#b42318}.budget-forecast-callout strong{font-size:19px}.budget-forecast-callout small{grid-column:1/-1;opacity:.78}.budget-empty{background:#fff8df;color:#805c00}.budget-empty a{color:#1769aa;font-weight:800}.budget-disclaimer{margin:14px 2px 0;color:#627d98;font-size:12px;line-height:1.6}@media(max-width:1050px){.budget-overview-stats{grid-template-columns:repeat(2,1fr)}.payment-budget-grid{grid-template-columns:1fr}}@media(max-width:650px){.budget-overview-stats,.budget-metrics{grid-template-columns:1fr}.payment-budget-head{align-items:flex-start;flex-direction:column}.budget-forecast-callout{grid-template-columns:1fr}}

.festival-category-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px;margin:18px 0}.festival-category-card{display:block;min-height:225px;padding:28px;border:1px solid var(--line);border-radius:18px;background:#fff;color:var(--navy);text-decoration:none;box-shadow:0 7px 20px rgba(38,72,105,.04);transition:.18s ease}.festival-category-card:hover,.festival-category-card.active{border-color:#2f80c1;box-shadow:0 10px 28px rgba(47,128,193,.13);transform:translateY(-2px)}.festival-category-card span{color:#7891aa;font-weight:700}.festival-category-card h2{margin:8px 0 28px;font-size:29px}.festival-category-card strong{display:block;color:#1769aa;font-size:48px;line-height:1}.festival-category-card strong small{margin-left:6px;font-size:17px}.festival-category-card em{display:block;margin-top:29px;color:#1769aa;font-style:normal;font-weight:800}.festival-guide{text-align:center;padding:55px}.festival-guide p,.empty-cell{color:#7891aa}.filter-group{display:flex;align-items:center;gap:18px}.filter-group>span{font-weight:800}.filter-buttons{display:flex;gap:8px;flex-wrap:wrap}.filter-button{padding:10px 16px;border:1px solid #bfd1e3;border-radius:9px;color:#385a78;text-decoration:none;font-weight:800}.filter-button.active{border-color:#1f75b7;background:#eef7ff;color:#1769aa}.btn.small{padding:7px 11px;font-size:13px}.table-title{color:#1769aa;font-weight:800;text-decoration:none}@media(max-width:950px){.festival-category-grid{grid-template-columns:1fr}.festival-category-card{min-height:0}.filter-group{align-items:flex-start;flex-direction:column}}

/* 채택료 산정길이 작업대 */
.filter-panel{padding:8px 22px}.filter-row{display:grid;grid-template-columns:36px 1fr;gap:13px;padding:16px 0;border-bottom:1px solid #edf2f7}.filter-row:last-child{border-bottom:0}.filter-row .step{display:flex;width:30px;height:30px;align-items:center;justify-content:center;border-radius:999px;background:#e7f5ff;color:#1769aa;font-weight:800}.filter-row b{display:block;margin:4px 0 10px;color:#486581}.filter-row .choices{display:flex;gap:8px;flex-wrap:wrap}.duration-summary{grid-template-columns:repeat(3,minmax(0,1fr));margin-bottom:18px}.duration-summary .card strong small{margin-left:4px;color:#829ab1;font-size:13px}.pill-tabs{display:flex;gap:7px;flex-wrap:wrap}.pill-link{padding:8px 12px;border-radius:999px;background:#eef4f8;color:#486581;text-decoration:none;font-size:12px;font-weight:800}.pill-link.active{background:#1769aa;color:#fff}.search-row{display:grid;grid-template-columns:minmax(260px,1fr) auto;gap:9px;margin-bottom:16px}.search-row input{min-height:42px;padding:10px 12px;border:1px solid #bcccdc;border-radius:8px;background:#fff;font:inherit}.table-sub{display:block;margin-top:4px;color:#829ab1}.pill.success{background:#dcfce7;color:#166534}.workbench-progress{display:grid;grid-template-columns:auto auto minmax(180px,1fr);align-items:center;gap:14px;margin-bottom:12px;padding:10px 15px;border:1px solid #cfe3f3;border-radius:11px;background:#fff}.workbench-progress strong{color:#1769aa;font-size:22px}.workbench-progress span{color:#627d98;font-weight:800}.duration-workbench-grid{display:grid;grid-template-columns:minmax(500px,1.25fr) minmax(420px,.75fr);gap:18px;align-items:start}.duration-video-panel,.duration-form-panel{padding:18px}.duration-video-panel{position:sticky;top:82px}.duration-player-wrap{overflow:hidden;width:100%;aspect-ratio:16/9;border-radius:12px;background:#101820}.duration-player{width:100%;height:100%;border:0}.duration-player-fallback{display:flex;height:100%;align-items:center;justify-content:center;flex-direction:column;padding:28px;color:#d9e2ec;text-align:center}.duration-player-fallback p{color:#9fb3c8}.duration-video-actions{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:12px;color:#627d98;font-size:13px}.duration-point-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}.duration-point-grid label>span{display:block;margin-bottom:7px;color:#334e68;font-weight:800}.duration-point-grid input{width:100%;padding:12px;border:1px solid #b8cbe0;border-radius:9px;background:#fff;font:inherit;font-variant-numeric:tabular-nums}.duration-capture{width:100%;margin-top:8px}.duration-result-card{margin:18px 0;padding:18px;border:1px solid #b7d7ee;border-radius:12px;background:#eef7ff}.duration-result-card span{display:block;color:#627d98;font-size:13px}.duration-result-card strong{display:block;margin-top:6px;color:#1769aa;font-size:25px;font-variant-numeric:tabular-nums}.info-box{padding:14px 16px;border-left:4px solid #2f80c1;background:#f5faff;color:#486581;line-height:1.55}.info-box p{margin:5px 0 0;font-size:13px}.form-actions{display:flex;justify-content:flex-end;gap:9px;margin-top:18px}.button-row{display:flex;gap:8px;flex-wrap:wrap}@media(max-width:1150px){.duration-workbench-grid{grid-template-columns:1fr}.duration-video-panel{position:static}}@media(max-width:720px){.duration-summary,.duration-point-grid{grid-template-columns:1fr}.workbench-progress{grid-template-columns:auto 1fr}.workbench-progress .progress{grid-column:1/-1}.duration-video-actions,.form-actions{align-items:stretch;flex-direction:column}.search-row{grid-template-columns:1fr}.filter-panel{padding:7px 15px}}

/* 업데이트 로그 — docs/CHANGELOG.md 를 그대로 옮긴 화면 */
.detail-link{display:inline-block;margin-top:6px;font-size:12px;color:#1769aa;text-decoration:none;font-weight:700}
.detail-link:hover{text-decoration:underline}
.changelog{line-height:1.7;max-width:900px}
.changelog h2{font-size:22px;margin:0 0 14px}
.changelog h3{font-size:19px;margin:30px 0 10px;padding-top:16px;border-top:1px solid var(--line);color:#0b3b66}
.changelog h3:first-of-type{border-top:0;padding-top:0;margin-top:6px}
.changelog h4{font-size:16px;margin:18px 0 8px;color:#334e68}
.changelog p{margin:0 0 11px}
.changelog ul{margin:0 0 13px;padding-left:22px}
.changelog li{margin-bottom:5px}
.changelog code{background:#f0f5fa;border:1px solid #dde7f0;border-radius:5px;padding:1px 5px;font-size:.9em}
.changelog pre.changelog-code{background:#f7fafd;border:1px solid #dde7f0;border-radius:9px;padding:13px 15px;
 overflow-x:auto;font-size:13px;line-height:1.6;margin:0 0 13px}
.changelog pre.changelog-code code{background:0;border:0;padding:0}
.changelog blockquote{margin:0 0 13px;padding:11px 15px;background:#f7fafd;border-left:4px solid #bcd9ef;color:#486581}
.changelog hr{border:0;border-top:1px solid var(--line);margin:24px 0}

/* 산정길이 작업대에서 미리보기 링크를 바로 넣는 칸 */
.link-cell{display:inline-flex;align-items:center;gap:6px;margin-left:7px;vertical-align:middle}
.link-cell .btn.small{padding:3px 8px;font-size:11px}
.link-edit-row{background:#f7fbff}
.link-edit-row>td{padding:14px 16px !important}
.link-edit{display:grid;grid-template-columns:minmax(0,2fr) minmax(0,1fr) auto;gap:12px;align-items:end}
.link-edit label{display:grid;gap:5px;font-weight:700;font-size:13px;color:#334e68}
.link-edit label small{font-weight:600;color:#829ab1;font-size:11px}
.link-edit input{min-height:38px;padding:8px 10px;border:1px solid #bcccdc;border-radius:7px;
 background:#fff;font:inherit;color:#334e68}
.link-edit-actions{display:flex;gap:7px}
.duration-video-panel .link-edit-row{margin-top:11px;border:1px solid #cfe3f3;border-radius:10px;
 padding:13px 14px;background:#f7fbff}
@media(max-width:900px){.link-edit{grid-template-columns:1fr}.link-edit-actions{display:grid}}

/* 심의 단계를 필터 맨 위로 올렸다(2026-08-24). 그 줄에서는 위 여백을 없애고,
   첫 선택이므로 칩을 조금 크게 잡는다. */
.stage-step .status-row{padding-top:0}
.stage-step .status-choice{min-height:34px;display:inline-flex;align-items:center;
 padding:8px 15px;font-size:13px;font-weight:700}

/* 요약 숫자를 눌러 그 결과만 보는 카드(2026-08-24). 고른 것은 진하게. */
.review-completion dl a.result-card{display:block;text-decoration:none;color:inherit;
 border:1px solid transparent;border-radius:10px;padding:9px 13px;transition:.12s}
.review-completion dl a.result-card:hover{border-color:#1769aa;background:#f2f8fd}
.review-completion dl a.result-card.active{border-color:#1769aa;background:#1769aa}
.review-completion dl a.result-card.active dt,
.review-completion dl a.result-card.active dd{color:#fff}
.filter-note{margin:10px 0 0}
.filter-note a{color:#1769aa;font-weight:700}

/* 산정길이 작업대 요약 카드도 눌러 걸러 본다(2026-08-24). */
.duration-summary a.card{text-decoration:none;color:inherit;transition:.12s}
.duration-summary a.card:hover{border-color:#1769aa;background:#f7fbff}
.duration-summary a.card.active{border-color:#1769aa;box-shadow:inset 0 0 0 1px #1769aa}
.duration-summary a.card.active strong{color:#0b5f96}

/* 내부 참석인원 배정 — 네 칸에 직접 적는다(2026-08-24). */
.staff-form{display:grid;grid-template-columns:repeat(4,minmax(0,1fr)) auto;gap:10px;align-items:end}
.staff-form label{display:grid;gap:5px}
.staff-form label>span{color:#627d98;font-size:12px;font-weight:700}
.staff-form input{min-height:40px;padding:9px 11px;border:1px solid #bcccdc;border-radius:8px;
 background:#fff;font:inherit;color:#334e68}
.staff-form .btn{min-height:40px}
@media(max-width:900px){.staff-form{grid-template-columns:1fr 1fr}.staff-form .btn{grid-column:1/-1}}

/* 이름 정리 — 표기가 갈린 회사·감독 이름을 한 번에 합친다 */
.name-notice{display:flex;align-items:baseline;gap:8px;flex-wrap:wrap;margin:0 0 10px}
.name-notice a{font-weight:700;white-space:nowrap}
.name-block .name-apply{display:flex;align-items:flex-end;gap:10px;flex-wrap:wrap;
  padding:12px 14px;border-top:1px solid var(--line)}
.name-block .name-apply label{display:flex;flex-direction:column;gap:4px;font-size:12px;
  color:#486581;font-weight:700}
.name-block .name-apply input{min-width:260px;padding:7px 10px;border:1px solid #cfd9e4;
  border-radius:8px;font-size:14px}
.name-block td label{display:inline-flex;align-items:center;gap:6px;cursor:pointer}
.notice.name-split{line-height:1.7}
.notice.name-split a{font-weight:700}

/* 인수인계 메모 — 받는 사람이 '확인' 할 때까지 모든 화면 맨 위에 뜬다 */
.handover-banner{border:1px solid #f0b429;background:#fffbeb;border-radius:12px;
  padding:12px 14px;margin:0 0 16px}
.handover-head{display:flex;align-items:baseline;gap:10px;margin-bottom:8px}
.handover-head b{color:#8d6708}
.handover-head a{margin-left:auto;font-size:12px;font-weight:700;color:#8d6708}
.handover-banner ul{list-style:none;margin:0;padding:0;display:grid;gap:8px}
.handover-banner li{background:#fff;border:1px solid #fbdf9a;border-radius:9px;padding:10px 12px}
.handover-from{font-size:12px;color:#8d6708;font-weight:700;margin-bottom:4px}
.handover-body{white-space:normal;line-height:1.65;margin-bottom:8px}
.note-form{display:grid;gap:10px;padding:12px 14px;max-width:720px}
.note-form label{display:flex;flex-direction:column;gap:4px;font-size:12px;
  color:#486581;font-weight:700}
.note-form select,.note-form textarea{padding:8px 10px;border:1px solid #cfd9e4;
  border-radius:8px;font-size:14px;font-family:inherit}
.note-form button{justify-self:start}
td.note-body{max-width:440px;line-height:1.6;white-space:normal}
.note-count{display:inline-block;min-width:16px;padding:0 5px;border-radius:999px;
  background:#f0b429;color:#5c4413;font-size:11px;text-align:center}
.quick-edit-grid .field-hint{display:block;font-weight:400;font-size:11.5px;color:#829ab1;
  margin:2px 0 4px}
/* 전문위원 화면의 수상내역 — 접수 때 넣는 값이라 여기서는 참고만 한다 */
.advisor-award{border:1px solid var(--line);border-radius:10px;padding:10px 12px;
  background:#f8fafc;margin:10px 0}
.advisor-award>span{display:block;font-size:12px;font-weight:700;color:#486581;margin-bottom:3px}
.advisor-award>p{margin:0 0 4px;line-height:1.6}
.advisor-award>small{color:#829ab1;font-size:11.5px}

/* 심의위원 ↔ 담당PD 쪽지 */
.handover-banner.panel-ask{border-color:#7cb3e8;background:#eff6ff}
.handover-banner.panel-ask .handover-head b,
.handover-banner.panel-ask .handover-head a{color:#1053a0}
.handover-banner.panel-ask li{border-color:#cfe2f7}
.handover-more{color:#627d98;font-size:12.5px;background:none;border:0;padding:2px 4px}
.msg-list{list-style:none;margin:0;padding:12px 14px;display:grid;gap:10px}
.msg{max-width:82%;padding:9px 12px;border-radius:12px;border:1px solid var(--line);background:#fff}
.msg.mine{justify-self:end;background:#eff6ff;border-color:#cfe2f7}
.msg.staff{justify-self:start;background:#fffbeb;border-color:#fbdf9a}
.msg-who{font-size:11.5px;color:#829ab1;font-weight:700;margin-bottom:3px}
.msg-body{line-height:1.65}
.msg-empty{color:#829ab1;list-style:none}
.msg-counts{display:flex;align-items:center;gap:12px;font-size:13px;color:#486581}
.msg-counts b{color:#0b3b66;font-size:15px}
tr.waiting td{background:#fffbeb}
.panel-field.ask-staff{margin-top:10px}
.panel-field.ask-staff small{display:block;margin-top:5px;color:#829ab1;font-size:11.5px}
.notice.msg-waiting{border-color:#7cb3e8;background:#eff6ff;color:#1053a0}

/* 보고서 — 연도별 추이 그래프 */
.chart-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(330px,1fr));gap:14px;
  padding:12px 14px}
.chart{margin:0;border:1px solid var(--line);border-radius:10px;background:#fff;padding:10px 12px}
.chart figcaption{font-weight:700;font-size:13.5px;color:#243b53;text-align:center;
  margin-bottom:4px}
.chart figcaption small{display:block;font-weight:600;color:#829ab1;font-size:11px}
.chart svg{width:100%;height:auto;display:block}
.chart .grid{stroke:#e2e8f0;stroke-width:1}
.chart .axis{font-size:10.5px;fill:#627d98}
.chart .dot{font-size:10.5px;fill:#334e68;font-weight:700}
.chart-legend{display:flex;justify-content:center;gap:12px;flex-wrap:wrap;font-size:11.5px;
  color:#486581;margin-top:4px}
.chart-legend i{display:inline-block;width:10px;height:10px;border-radius:2px;margin-right:4px;
  vertical-align:middle}
.chart-empty{color:#829ab1;font-size:12.5px;text-align:center;margin:22px 0}
h3.chart-more{margin:6px 14px 0;font-size:14px;color:#486581}
/* 그래프 크기 — 고른 크기에 따라 한 줄에 몇 개를 놓을지 바꾼다 */
.chart-panel.size-normal .chart-grid{grid-template-columns:repeat(auto-fit,minmax(320px,1fr))}
.chart-panel.size-large .chart-grid{grid-template-columns:repeat(auto-fit,minmax(460px,1fr))}
.chart-panel.size-wide .chart-grid{grid-template-columns:1fr}
.chart-picker{display:flex;align-items:flex-end;gap:14px;flex-wrap:wrap;padding:2px 14px 6px}
.chart-field{display:flex;flex-direction:column;gap:4px}
.chart-field>span{font-size:12px;color:#486581;font-weight:700}
.chart-range{display:flex;align-items:center;gap:6px}
.chart-range em{color:#829ab1;font-style:normal;font-weight:700}
/* 연도 칸은 글자 수가 정해져 있다 — 늘리면 '2019년' 하나가 화면을 가로지른다 */
.chart-picker select{width:auto;min-width:106px;padding:6px 10px;border:1px solid #cfd9e4;
  border-radius:8px;font-size:13.5px;background:#fff}
.chart-buttons{display:flex;align-items:center;gap:8px}
/* 자체심의 — 칸 용도를 밝히는 꼬리표 */
.review-notes-grid .field-tag{display:inline-block;margin-left:6px;padding:1px 7px;border-radius:999px;
  background:#eef4f8;color:#486581;font-size:11px;font-weight:700;vertical-align:middle}
.review-notes-grid .field-hint{display:block;margin-top:5px;color:#829ab1;font-size:11.5px;
  font-weight:400;line-height:1.5}

/* 작품 등록·수정 폼 — 칸이 절반 폭씩 차지해 널널했다. 세 열로 좁히고 글자를 키운다
   (2026-08-25 요청: "너무 널널 벙벙", "입력받는 폰트도 더 큼직했으면"). */
.work-form{grid-template-columns:repeat(3,1fr);gap:14px 18px}
.work-form label{font-size:12.5px;font-weight:700;color:#334e68;letter-spacing:-.1px}
.work-form input,.work-form select,.work-form textarea{margin-top:5px;padding:11px 12px;
  font-size:15.5px;border-color:#cfd9e4}
.work-form input:focus,.work-form select:focus,.work-form textarea:focus{outline:none;
  border-color:#1769aa;box-shadow:0 0 0 3px rgba(23,105,170,.12)}
.work-form textarea{line-height:1.65;font-size:15px}
.work-form .span2{grid-column:span 2}
/* 분·초는 숫자 몇 자리뿐이다 — 남은 폭을 다 먹으면 '분' 칸이 화면을 가로지른다 */
.work-form .duration-pair{justify-content:flex-start}
.work-form .duration-pair input{flex:0 0 auto;width:120px}
.work-form .duration-pair input:last-of-type{width:96px;max-width:96px}
.work-form .duration-pair em{font-size:14px;color:#486581;font-weight:700}
.work-form .actions{margin-top:4px}
.work-form .extra-fields .extra-grid{grid-template-columns:repeat(3,1fr)}
@media (max-width:1180px){.work-form{grid-template-columns:1fr 1fr}
  .work-form .extra-fields .extra-grid{grid-template-columns:1fr 1fr}}
@media (max-width:700px){.work-form,.work-form .span2{grid-template-columns:1fr;grid-column:auto}
  .work-form .extra-fields .extra-grid{grid-template-columns:1fr}}
/* 차수 줄맞춤에서 비는 자리. 카드 모양은 그대로 두되 눈에 덜 띄게 — 있는 회차와
   헷갈리면 안 된다. 한 열로 접히는 좁은 화면에서는 아예 숨긴다(줄맞춤이 필요 없다). */
.payment-session-card.is-gap,.session-result-card.is-gap{border-style:dashed;background:#fbfcfd;
  box-shadow:none;align-self:start}   /* 옆 카드 높이만큼 늘어나지 않게 */
.payment-session-card.is-gap h2,.session-result-card.is-gap h2{color:#9fb3c8}
.payment-session-card.is-gap p,.session-result-card.is-gap p{color:#b3c2d1;font-weight:700}
.payment-session-card.is-gap .phase-badge,.session-result-card.is-gap .phase-badge,
.payment-session-card.is-gap>div>div>span:first-child{opacity:.55}
@media(max-width:1050px){.payment-session-card.is-gap{display:none}}
@media(max-width:1150px){.session-result-card.is-gap{display:none}}
/* 연간 일정의 네 단계를 색으로 가른다(2026-08-28 PD: "네 색이 구분되게").
   온라인=분홍·보라 / 대면=하늘·연두. 왼쪽 띠로 한 번 더 갈라 준다.
   ('방송 N편' 줄은 같은 날 걷었다 — 이 달력은 접수·심의 흐름을 보는 자리다.)
   진행은 옅게, 완료는 진하게 — 같은 계열 안에서도 눈에 들어오게. */
.annual-event{border-left:3px solid #9fc7e4}
.annual-event.done{border-left-color:#4aa06a}
.annual-event.online{background:#fdf0f6;color:#9d2c6b;border-left-color:#e08ab6}
.annual-event.online-done{background:#efeafc;color:#5b34b0;border-left-color:#8b5cf6}
.annual-legend{display:flex;gap:7px;flex-wrap:wrap;align-items:center}
.annual-legend .annual-event{padding:4px 9px;font-size:11.5px;font-weight:700;cursor:default}
@media(max-width:820px){.annual-legend{display:none}}
/* 위원 이름 고침 — 한 줄짜리 작은 폼. 단추 줄 안에서 이름칸+단추가 나란히. */
.rename-form{display:inline-flex;align-items:center;gap:5px}
.rename-form input[type=text]{width:110px;padding:5px 8px;border:1px solid #bcccdc;border-radius:6px;font-size:12.5px}
/* 회차 삭제 — 심의일 패널 오른쪽 끝. 눈에 띄되 실수로 누르기 어렵게 작게. */
.session-date-panel{position:relative}
.session-delete-form{margin-left:auto}
.session-delete-note{display:block;margin-top:6px;color:#9fb3c8}
/* 전문위원 심의대 첫 화면 — 회차 고르기. 채움 막대는 편성안 것(.draft-bar)을 그대로 쓴다. */
.advisor-pick-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:14px}
.advisor-pick-card{border:1px solid var(--line);border-radius:12px;background:#fff;padding:15px 16px;
  display:flex;flex-direction:column;gap:11px;margin:0}
.advisor-pick-head{display:flex;align-items:baseline;justify-content:space-between;gap:10px}
.advisor-pick-head b{color:var(--navy);font-size:16px}
.advisor-pick-meta{display:flex;align-items:center;gap:10px}
.advisor-pick-meta>span{flex:0 0 auto;font-weight:700;color:#486581;font-size:13px}
.advisor-pick-meta .draft-bar{flex:1}
/* 온라인 심사 마감일 — 위원 관리의 작은 폼 + 관리자 화면용 알약(위원 화면 것과 같은 색). */
.deadline-form{display:inline-flex;align-items:center;gap:8px;flex-wrap:wrap}
.deadline-form label{display:inline-flex;align-items:center;gap:7px;font-size:12.5px;font-weight:700;color:#486581}
.deadline-form input[type=date]{padding:6px 9px;border:1px solid #bcccdc;border-radius:7px;font-size:13px}
.deadline-inline{display:inline-block;padding:2px 10px;border-radius:99px;font-size:12px;font-weight:800;border:1px solid;white-space:nowrap}
.deadline-inline.calm{background:#f2f8fd;border-color:#bcd8ee;color:#0b5f96}
.deadline-inline.soon{background:#fff4e5;border-color:#f5cf9b;color:#8a5700}
.deadline-inline.over{background:#fdf0ef;border-color:#f0b4ac;color:#b42318}
/* 위원 직접 입력 카드 — 진행 막대 + 최종 로그인(작게). */
.online-reviewer .or-bar{height:7px;border-radius:99px;background:#e4ebf2;margin:7px 0 6px;overflow:hidden}
.online-reviewer .or-bar i{display:block;height:100%;background:#2f80c1;border-radius:99px}
.online-reviewer .or-bar.full i{background:#2f9e5f}
.online-reviewer .or-login{color:#9fb3c8;font-size:11.5px;margin-top:3px}
