/* 하나어이 공개 사이트 — DB 연결 화면 보조 스타일 (목업 style.css 위에 얹음, tools/port_mockup.py 가 덮어쓰지 않는 파일 · 수동 관리) */
/* hidden 속성은 항상 숨김 — 목업 .sns-linked(display:flex)·.with-btn(display:grid) 이 hidden 을 이기던 문제 */
[hidden]{display:none !important}
.flash{margin:0 0 16px;padding:12px 16px;border-radius:12px;font-size:13.5px;font-weight:600;line-height:1.6}
.flash.ok{background:#EAF1EC;color:#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}
/* 휴대폰 인증·중복확인 성공 안내 (오류는 목업 .field .err) */
.field .v-ok{margin-top:7px;font-size:12.5px;font-weight:600;color:#2F5D46;background:#EAF1EC;border-radius:9px;padding:9px 12px;line-height:1.6}
.v-ok{color:#2F5D46}
.found-list{display:flex;flex-direction:column;gap:12px}
.inline-form{display:inline}
.sns-fake-note{font-size:12.5px;color:var(--gray-2,#97A1AF);line-height:1.7;margin-top:12px}

/* ===== P6a 학습 화면 (주일학교·공과·나의 프로그램·패스포트·학습내역) — 목업 클래스 위에 얹는 DB 연결 보조 ===== */
/* 패스포트 스탬프: wait = 확인 대기(교사·보호자 확인 전) · rej = 반려 */
.stamps i.wait{background:var(--brand-l);border:1.5px solid var(--brand);color:var(--brand);font-weight:700;}
.stamps i.rej{border:1.5px dashed var(--red,#C0392B);color:var(--red,#C0392B);}
.stamps-legend{display:flex;gap:12px;flex-wrap:wrap;margin-top:10px;font-size:11.5px;color:var(--gray-2);}
.stamps-legend i{display:inline-block;width:10px;height:10px;border-radius:50%;margin-right:4px;vertical-align:-1px;font-style:normal;}
.stamps-legend .d{background:var(--brand);} .stamps-legend .w{background:var(--brand-l);border:1px solid var(--brand);} .stamps-legend .r{border:1px dashed var(--red,#C0392B);}
/* 동영상 잠금 (로그인·구독 회원 전용) */
.pd-lock{position:absolute;inset:0;z-index:2;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;padding:20px;text-align:center;color:#fff;background:rgba(11,26,46,.62);}
.pd-lock b{font-size:18px;font-weight:800;}
.pd-lock p{font-size:13.5px;line-height:1.7;opacity:.9;max-width:460px;}
.pd-lock .acts{display:flex;gap:8px;flex-wrap:wrap;justify-content:center;margin-top:4px;}
.pd-res li .btn[aria-disabled]{opacity:.55;cursor:default;}
.pd-class{display:inline-block;margin-left:6px;padding:3px 10px;border-radius:999px;background:var(--grow-l);color:var(--grow-d);font-size:12px;font-weight:800;vertical-align:2px;}
/* 프로그램 상세 「나의 기록」 */
.pg-record{border:1px solid var(--line);border-radius:16px;background:#fff;padding:22px 24px;}
.pg-record .row{display:flex;gap:10px;flex-wrap:wrap;align-items:center;}
.pg-record .row+.row,.pg-record form+form{margin-top:14px;}
.pg-record .lbl{font-size:13.5px;font-weight:700;color:var(--ink);min-width:92px;}
.pg-record .st{font-size:13px;color:var(--gray-2);}
.pg-record .st.ok{color:var(--grow-d);font-weight:700;}
.pg-record select{height:40px;border:1px solid var(--line);border-radius:10px;padding:0 12px;background:#fff;}
.pg-record textarea{width:100%;min-height:96px;border:1px solid var(--line);border-radius:12px;padding:12px 14px;line-height:1.7;resize:vertical;}
.pg-record .hint{margin-top:8px;font-size:12.5px;color:var(--gray-2);}
.pg-lockbox{border:1px dashed var(--line);border-radius:16px;background:var(--paper);padding:22px 24px;text-align:center;font-size:14px;color:var(--gray);line-height:1.8;}
.pg-lockbox .acts{display:flex;gap:8px;justify-content:center;flex-wrap:wrap;margin-top:12px;}
/* 나의 패스포트 인증 폼 */
.pp-form{margin-top:14px;display:grid;gap:10px;}
.pp-form .types{display:flex;gap:14px;flex-wrap:wrap;font-size:13.5px;}
.pp-form .types label{display:inline-flex;align-items:center;gap:6px;cursor:pointer;}
.pp-form select,.pp-form input[type=file]{height:40px;border:1px solid var(--line);border-radius:10px;padding:0 10px;background:#fff;max-width:100%;}
.pp-form input[type=file]{padding:6px 10px;}
.pp-form textarea{width:100%;min-height:80px;border:1px solid var(--line);border-radius:12px;padding:10px 12px;line-height:1.7;resize:vertical;}
.saved-list{display:grid;gap:10px;}
.saved-list li{display:flex;align-items:flex-start;justify-content:space-between;gap:14px;padding:14px 18px;border:1px solid var(--line);border-radius:14px;background:#fff;}
.saved-list li.done{background:var(--paper);}
.saved-list li.done b{text-decoration:line-through;color:var(--gray-2);}
.saved-list b{display:block;font-size:14.5px;color:var(--ink);}
.saved-list p{margin-top:4px;font-size:13.5px;color:var(--gray);line-height:1.6;}
.saved-list small{display:block;margin-top:4px;font-size:12px;color:var(--gray-2);}
.saved-list .acts{display:flex;gap:6px;flex:none;}
.mpv-photo{font-size:12.5px;color:var(--brand-d);text-decoration:underline;}
/* 공과 학생용 질문 */
.lesson-ask textarea{width:100%;min-height:90px;border:1px solid var(--line);border-radius:12px;padding:10px 12px;line-height:1.7;resize:vertical;margin-top:8px;}
.lesson-ask .chk{display:inline-flex;align-items:center;gap:6px;margin-top:8px;font-size:13px;color:var(--gray);}
.album .item .meta .mine{color:var(--grow-d);font-weight:700;}
.album .item .meta .lock{color:var(--love-d);font-weight:700;}
.cls-board td.empty{padding:40px 0;color:var(--gray-2);}
/* 홈 이번 주 공과 카드 · 선교·여행 배너 */
.home-week .album{grid-template-columns:repeat(4,1fr);}
@media (max-width:1100px){.home-week .album{grid-template-columns:repeat(2,1fr);}}
@media (max-width:560px){.home-week .album{grid-template-columns:1fr;}}
.img-banner img{width:100%;height:100%;object-fit:cover;display:block;}
/* 메인 배너 이미지 슬라이드 (이미지에 문구가 있으면 문구를 겹치지 않음) */
.hero-v .hv-media img.hv-img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;}
.hero-v .hv-slide.img-only .hv-media::after{display:none;}
.hero-v .hv-slide.img-only .hv-copy .hv-eyebrow,.hero-v .hv-slide.img-only .hv-copy .hv-eng,.hero-v .hv-slide.img-only .hv-copy .hv-title,.hero-v .hv-slide.img-only .hv-copy .hv-desc{visibility:hidden;}

/* ===== P6b 아카데미 · 가정신앙실천 · 게시물 공통 (댓글·공감·신고·공유) — 목업 클래스 위에 얹는 DB 연결 보조 ===== */
/* 글 상세: Action Item 담기 · 빈 목록 · 작성자 본인에게만 보이는 상태 · 지운 댓글 자리 */
.ac-save{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin-top:22px;padding:16px 20px;border:1px solid var(--grow-l);border-radius:14px;background:var(--grow-l);font-size:14px;color:var(--grow-d);}
.ac-save .btn{margin-left:auto;}
.ac-empty{padding:18px 4px;font-size:13.5px;color:var(--gray-2);}
.cmt .who .badge.ac-state,.ac-state{background:var(--paper);color:var(--love-d);border:1px dashed var(--love-l);font-weight:700;}
.cmt .tx.ac-gone{margin-top:0;color:var(--gray-2);font-style:italic;}
.cmt .act .inline-form button{font-size:12.5px;font-weight:600;color:var(--gray-2);}
.cmt .act .inline-form button:hover{color:var(--love);}
.share-bar .like[disabled]{opacity:.6;}
/* 목록 카드: 조회 수 · 열람 범위(회원·구독) 표시 */
.ac-post .meta .lock{color:var(--love-d);font-weight:700;}
.board .meta .lock{color:var(--love-d);font-weight:700;}
/* 목록 정렬 · 검색 */
.filters .sortsel{flex:none;}
.filters .search-go{height:42px;}
/* 나의 프로그램 「기술과 신앙」·「리얼라이프」 탭: 최근 읽은 글 · 추천 글 */
.mpv-sub{margin:26px 0 12px;font-size:15px;font-weight:800;color:var(--ink);}
.mpv-sub small{margin-left:8px;font-size:12.5px;font-weight:500;color:var(--gray-2);}
/* 가정신앙 콘텐츠 상세: 자료 줄 · 잠금 */
.res-table .res-line .acts .btn[aria-disabled]{opacity:.55;cursor:default;}
.fv-body{margin:18px 0 6px;font-size:15px;line-height:1.9;color:var(--gray);}
@media print{ .ac-save,.cmt-sec,.pg-lockbox{display:none !important;} }

/* ===== P7 게시판 · 문의 · 참여마당 — 목업 클래스 위에 얹는 DB 연결 보조 ===== */
/* 커뮤니티 「함께 기도」 (기도의 벽 카드 · 글 상세 share-bar) */
.pray-btn{font:inherit;color:inherit;background:none;border:0;padding:0;cursor:pointer;text-decoration:underline;text-underline-offset:3px;}
.pray-btn.on{color:var(--grow-d);font-weight:700;}
.share-bar .pray{margin-left:auto;background:var(--grow-l);border-color:var(--grow-l);color:var(--grow-d);font-weight:700;}
.share-bar .pray.on{background:var(--grow);border-color:var(--grow);color:#fff;}
.share-bar .pray[disabled]{opacity:.6;}
/* 제안합니다 목록: 반영됨 배지 · 이벤트 상세 정보표 */
.st-badge.grow{background:var(--grow-l);color:var(--grow-d);}
.sg-foot .pager{margin:0;}
.ev-info{width:100%;border-collapse:collapse;font-size:14px;margin:6px 0 18px;}
.ev-info th{width:110px;text-align:left;color:var(--gray-2);font-weight:600;padding:9px 0;border-bottom:1px solid var(--line-2,#EDF2F9);vertical-align:top;}
.ev-info td{padding:9px 0;border-bottom:1px solid var(--line-2,#EDF2F9);color:var(--ink);}
.ev-thumb{width:100%;max-height:340px;object-fit:cover;border-radius:16px;background:var(--sand);margin-bottom:18px;}
/* 마이페이지 문의내역·내가 쓴글 칩 필터 */
.my-pane [data-filter-row][hidden]{display:none !important;}
@media (max-width:640px){ .filters .btn{margin-left:0 !important;} }

/* ===== P9 교회 전용 사이트 (C-001~C-003) — 목업 church/css/church.css 위에 얹는 DB 연결 보조 ===== */
/* 로고 이미지를 올리지 않은 교회: 교회 이름 글자 로고 (머리 · 푸터) */
.ch-header .logo .ch-logo-name{display:inline-block;font-size:22px;font-weight:800;letter-spacing:-.6px;color:var(--ch-dd,#0A5C66);white-space:nowrap;line-height:1.2;}
.ch-foot .ch-foot-name{display:block;font-size:21px;font-weight:800;letter-spacing:-.5px;color:#fff;margin-bottom:8px;}
.ch-foot .ch-foot-logo{height:40px;width:auto;margin-bottom:6px;filter:brightness(0) invert(1);}
/* 운영 전 교회 미리 보기 띠 (운영자 · 그 교회 관리자에게만) */
.ch-preview{background:#FFF6E5;color:#8F5A00;font-size:13px;font-weight:600;text-align:center;padding:8px 16px;border-bottom:1px solid #F4DDB0;}
/* 교회 메인: 소개 카드 · 소개만 공개 안내 · 이번 주 공과 */
.ch-about{display:grid;grid-template-columns:1.3fr 1fr;gap:22px;align-items:start;}
.ch-about .ch-intro{font-size:15px;line-height:1.9;color:var(--gray);white-space:pre-line;margin-top:14px;}
.ch-guest{margin-top:18px;background:var(--ch-l,#E6F5F7);border-radius:16px;padding:18px 20px;font-size:14px;color:var(--ch-dd,#0A5C66);line-height:1.7;}
.ch-guest .btn{margin-top:10px;}
.ch-week .ch-date{display:block;margin-top:8px;font-size:12px;color:var(--gray-2);}
.ch-pop a{color:inherit;}
.ch-pop a:hover{color:var(--ch-d,#0E7A86);}
@media (max-width:900px){ .ch-about{grid-template-columns:1fr;} }

/* P10a: 가입 약관 「전문보기」 펼침 */
.terms .doc.open{max-height:none;}

/* B2B-1 콘텐츠 동영상 플레이어 (templates/video/player · static/js/app-video.js) */
.hv-player{margin:0 0 24px}
.hv-player-box{position:relative;aspect-ratio:16/9;background:#0E1726;border-radius:14px;overflow:hidden}
.hv-player-box.playing{background:#000}
.hv-player-play{position:absolute;inset:0;width:100%;border:0;background:linear-gradient(135deg,#1B2B45,#0E1726);color:#fff;cursor:pointer;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;padding:16px;text-align:center}
.hv-player-play span{width:64px;height:64px;border-radius:50%;background:rgba(255,255,255,.18);position:relative}
.hv-player-play span::after{content:"";position:absolute;left:26px;top:20px;border-style:solid;border-width:12px 0 12px 20px;border-color:transparent transparent transparent #fff}
.hv-player-play b{font-size:15px;font-weight:700;max-width:90%}
.hv-player-play em{font-style:normal;font-size:12px;opacity:.7}
.hv-player-frame,.hv-player-video{position:absolute;inset:0;width:100%;height:100%;border:0;display:block;background:#000}
.pd-video .hv-player-frame,.pd-video .hv-player-video{position:static;aspect-ratio:16/9;height:auto}
.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}
.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-pop .hv-player-box{border-radius:0}
