/* 교회 관리자 콘솔 DB 연결 화면 보조 스타일 (목업 admin.css 위에 얹음 — tools/port_mockup.py 가 덮어쓰지 않는 위치) */
.flash{margin-bottom:16px;padding:12px 16px;border-radius:12px;font-size:13.5px;font-weight:600;line-height:1.6}
.flash.ok{background:var(--green-l,#EAF1EC);color:var(--green-d,#2F5D46);border:1px solid #CFE0D5}
.flash.err{background:#FBE9EA;color:#9E2A34;border:1px solid #F0C9CC}
.flash.info{background:#F7F4EC;color:#152B52;border:1px solid #E8E1CF}
.muted{color:#93A0B5;font-size:12.5px}
.inline{display:inline-flex;gap:6px;align-items:center;flex-wrap:wrap;margin:0}
.inline select,.inline input{height:34px;border:1px solid var(--line,#DCE3EE);border-radius:9px;padding:0 10px;background:#fff;font-size:13px;max-width:200px}
.inline input[type=checkbox]{height:auto}
.tbl .inline{margin-top:2px}
.tbl td.wrap{white-space:normal}
.tbl td.act{white-space:normal}
.st-form .st-reason{flex-basis:100%;max-width:none;width:100%}
.st-form .btn{margin-right:0}
details.edit{margin-top:8px}
details.edit>summary{list-style:none;cursor:pointer;display:inline-block}
details.edit>summary::-webkit-details-marker{display:none}
details.edit[open]>summary{margin-bottom:10px}
details.edit .box{border:1px solid var(--line,#DCE3EE);border-radius:12px;padding:16px;background:#fff}
.tree ul li.cls{flex-wrap:wrap}
.tree ul li.cls>details.edit{flex-basis:100%}
.tree ul li.closed{opacity:.6}
.tree .teachers{display:flex;gap:6px;flex-wrap:wrap}
.tree .teachers form{display:inline}
.chip{display:inline-flex;align-items:center;gap:4px;font-size:12.5px;font-weight:700;border:1px solid var(--line,#DCE3EE);border-radius:20px;padding:3px 4px 3px 10px;background:#fff}
.chip button{border:0;background:none;color:#93A0B5;cursor:pointer;font-size:12px;padding:0 4px}
.chip button:hover{color:#9E2A34}
.chip.plain{padding-right:10px}
.f4{display:grid;grid-template-columns:repeat(4,1fr);gap:14px}
.pm-tbl select{height:36px;border:1px solid var(--line,#DCE3EE);border-radius:9px;padding:0 10px;background:#fff;font-size:13px;width:100%}
.pm-tbl tr.adj td{background:#FFFBF2}
.pm-bar{display:flex;gap:10px;align-items:center;flex-wrap:wrap;margin:16px 0}
.pm-bar .sp{margin-left:auto;display:flex;gap:8px}
.pm-bar input[type=date]{height:40px;border:1px solid var(--line,#DCE3EE);border-radius:10px;padding:0 12px;background:#fff}
.section-anchor{scroll-margin-top:20px}
@media (max-width:900px){.f4{grid-template-columns:1fr 1fr}}

/* 보호자 콘솔 (P2) */
.field .err{display:block;margin-top:6px;font-size:12.5px;font-weight:600;color:#9E2A34}
.field .inline input[type=search]{max-width:none;flex:1;min-width:140px}
.flash.info a{margin-left:8px;font-weight:700;text-decoration:underline}
.print-only{display:none}
/* 학습 리포트 「PDF로 저장」 = 브라우저 인쇄 → PDF 로 저장 */
@media print{
  .side,.top,.toolbar,.page-note,.flash,.switch,.out{display:none !important}
  .adm,.main,.body{display:block !important;margin:0 !important;padding:0 !important;background:#fff !important}
  .print-only{display:block;font-size:18px;margin:0 0 14px}
  .panel,.kpi{break-inside:avoid;box-shadow:none !important}
  .cols{display:block !important}
  .cols .panel{margin-bottom:14px}
}

/* P9 교회 통계 「월간 리포트 PDF」(브라우저 인쇄) — 조치 버튼은 인쇄하지 않음 */
@media print{ .tbl form{display:none !important} .chart{break-inside:avoid} }

/* B2B-1 임시 비밀번호 (관리자 비밀번호 초기화·계정 발급 — 한 번만 표시) */
.flash.temp-pw{display:flex;flex-wrap:wrap;align-items:center;gap:6px 12px}
.flash.temp-pw b{flex-basis:100%}
.flash.temp-pw .temp-pw-value{font:700 20px/1.2 ui-monospace,Consolas,monospace;letter-spacing:2px;background:#fff;border:1px dashed #3FA977;border-radius:8px;padding:6px 14px;user-select:all}
.flash.temp-pw span{font-size:12.5px}
.tbl form.pw-reset{display:inline}
/* B2B-1 동영상 주소·종류 (콘텐츠 편집 공통) */
.video-src{display:grid;grid-template-columns:1fr 180px;gap:8px}
@media (max-width:700px){.video-src{grid-template-columns:1fr}}
/* 동영상 재생 팝업 (static/js/app-video.js HanaVideo.open — 관리 콘솔 커리큘럼) */
.hv-pop{position:fixed;inset:0;z-index:1000;background:rgba(10,16,28,.72);display:flex;align-items:center;justify-content:center;padding:16px}
.hv-pop-in{width:min(960px,100%);background:#0E1726;border-radius:14px;overflow:hidden}
.hv-pop-hd{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 14px;color:#fff}
.hv-pop-hd b{font-size:14px;font-weight:700;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.hv-pop-hd button{background:none;border:0;color:#fff;font-size:18px;cursor:pointer}
.hv-player-box{position:relative;aspect-ratio:16/9;background:#000}
.hv-player-frame,.hv-player-video{position:absolute;inset:0;width:100%;height:100%;border:0;display:block;background:#000}
.hv-player-msg{position:absolute;left:0;right:0;bottom:0;margin:0;padding:10px 14px;background:rgba(0,0,0,.7);color:#fff;font-size:13px}
.hv-player-msg a{color:#fff;text-decoration:underline}
