/* 계약서 창에서 쓰는 한방식 작은 창(별지·선택 패널·특수문자·안내/선택 창). 확인설명서 창(offer.css)과 같은 모양. */
.opopup { position: fixed; inset: 0; background: rgba(0,0,0,.2); z-index: 25; }
.opopup .box { position: absolute; left: 50%; top: 30px; transform: translateX(-50%); width: 600px; max-height: calc(100vh - 60px); display: flex; flex-direction: column; background: #ffffe1; border: 1px solid #1f7a4c; box-shadow: 3px 3px 10px rgba(0,0,0,.4); }
.opopup .box.wide { width: 884px; }
.opopup .head { background: #1f7a4c; color: #fff; text-align: center; font: bold 14px var(--nanum); padding: 5px; }
.opopup .body { position: relative; overflow: auto; flex: 1; }
.opopup .acts { text-align: center; padding: 8px; }
.opopup .acts button, .spc-side button { width: 70px; height: 26px; border: 1px solid #6c7d92; border-radius: 3px; background: linear-gradient(#fff, #d6e0ea); font: bold 13px var(--nanum); cursor: pointer; margin: 0 4px; }
.opopup .body .dfm-btn-blank { visibility: visible; }
.onotice { position: fixed; inset: 0; background: rgba(0,0,0,.2); z-index: 30; }
.onotice .box { position: absolute; left: 50%; top: 60px; transform: translateX(-50%); width: 560px; max-height: calc(100vh - 80px); display: flex; flex-direction: column; background: #f4fff7; border: 1px solid #1f7a4c; box-shadow: 3px 3px 10px rgba(0,0,0,.4); }
.onotice .head { background: #1f7a4c; color: #fff; text-align: center; font: bold 15px var(--nanum); padding: 6px; }
.onotice .body { display: flex; gap: 20px; padding: 18px 22px 8px; overflow-y: auto; }
.onotice .ico { flex: none; width: 60px; height: 60px; border-radius: 10px; background: #e3e8ec; color: #9aa7b2; font: bold 36px/60px Arial; text-align: center; }
.onotice .msg { white-space: pre-line; font: 14px/1.8 var(--nanum); color: #000; user-select: text; }
.onotice .acts { text-align: center; padding: 10px 0 14px; }
.onotice .acts button { min-width: 70px; height: 26px; margin: 0 5px; border: 1px solid #6c7d92; border-radius: 3px; background: linear-gradient(#fff, #d6e0ea); font: bold 13px var(--nanum); cursor: pointer; }
.spc { display: flex; gap: 10px; padding: 12px; background: #fff; }
.spc-list { width: 130px; border: 1px solid #a0a0a0; font: bold 14px var(--nanum); }
.spc-list div { padding: 4px 6px; cursor: pointer; }
.spc-list div.on { background: #1f7a4c; color: #fff; }
.spc-grid { width: 196px; display: grid; grid-template-columns: repeat(6, 1fr); border: 1px solid #a0a0a0; align-content: start; }
.spc-cell { height: 30px; display: flex; align-items: center; justify-content: center; font: bold 18px var(--nanum); border: 1px solid #eee; cursor: pointer; }
.spc-cell:hover, .spc-cell.on { background: #e6f7ec; }
.spc-side { display: flex; flex-direction: column; gap: 8px; }
/* 선택 패널(확인설명서 종류·공적장부·임대관련서식): 고른 버튼 표시 */
.opopup .dfm-btn.picked { outline: 3px solid #1f7a4c; outline-offset: -3px; background: #e6f7ec; }
.opopup .dfm-btn:disabled { opacity: .45; cursor: default; }
/* 별지 목록: 한 줄씩 쌓는다 */
.byul-list { position: relative; background: #fff; min-height: 120px; }
.byul-list > .byul-row { position: relative; height: auto; }
.byul-empty { padding: 30px; text-align: center; font: 14px var(--nanum); color: #555; }
/* 특약 미리보기 */
.tview { padding: 10px; background: #fff; }
.tview textarea { width: 100%; height: 470px; min-height: 120px; font: 13px/1.6 var(--gulim); border: 1px solid #a0a0a0; padding: 6px; resize: vertical; }
