.wbld-calc-value{min-height:30px;padding:.35rem .45rem;border:1px solid var(--paper-line-2);border-radius:.3rem;background:var(--paper-bg-2);color:var(--paper-ink);text-align:right;font-variant-numeric:tabular-nums}
.wbld-number-input{text-align:right;font-variant-numeric:tabular-nums}
.wbld-table{width:100%;border-collapse:collapse;color:var(--paper-ink);background:var(--paper-bg);font-size:.8rem;table-layout:fixed}
.wbld-table.bordered th,.wbld-table.bordered td{border:1px solid var(--paper-line)}
.wbld-table.borderless th,.wbld-table.borderless td{border:0}
.wbld-table th,.wbld-table td{padding:.35rem .45rem;vertical-align:middle;word-break:break-word}
.wbld-table th{background:var(--paper-head-bg);font-weight:700}
.wbld-table .align-left{text-align:left}
.wbld-table .align-center{text-align:center}
.wbld-table .align-right{text-align:right}
.wbld-table .wbld-table-text{display:block;margin-bottom:.15rem}
.wbld-table td>.wbld-field-content,.wbld-table th>.wbld-field-content{margin:0}
.wbld-grid{display:flex;flex-direction:column;gap:.4rem}
.wbld-grid .wbld-grid-no{width:44px;text-align:center;color:var(--paper-ink-2)}
.wbld-grid .wbld-grid-tools{width:40px;text-align:center}
.wbld-grid .wbld-grid-tools button{width:22px;height:22px;display:inline-flex;align-items:center;justify-content:center;border:1px solid var(--paper-line-2);border-radius:4px;background:var(--paper-bg);color:var(--paper-ink-2);cursor:pointer;padding:0}
.wbld-grid .wbld-grid-tools button:disabled{opacity:.35;cursor:default}
.wbld-grid-actions{display:flex;align-items:center;gap:.5rem}
.wbld-grid-actions small{color:var(--paper-ink-3);font-size:.7rem}
.approval-line-block-select{min-width:132px;height:30px;padding:0 .45rem;border:1px solid var(--border-color);border-radius:.4rem;background:var(--input-bg);color:inherit;font-size:.78rem}
:root{--wbld-document-viewport-bg:var(--paper-line-3)}
[data-bs-theme="light"],[data-bs-theme="igs"]{--wbld-document-viewport-bg:var(--paper-line-3)}
[data-bs-theme="dark"],[data-bs-theme="igs-dark"]{--wbld-document-viewport-bg:var(--paper-shell)}
.wbld-document-viewport{width:100%;overflow:auto;padding:1rem;background:var(--wbld-document-viewport-bg)}
.wbld-document-sheet{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));align-content:start;gap:3mm;width:210mm;min-height:297mm;margin:0 auto;padding:14mm 13mm;background:var(--paper-bg);color:var(--paper-ink);box-shadow:0 12px 42px var(--scrim-soft);box-sizing:border-box}
.wbld-document-sheet.landscape{width:297mm;min-height:210mm}
.wbld-document-field{min-width:0;padding:2mm;border:1px solid var(--paper-line-2);border-radius:2px;background:var(--paper-bg);box-sizing:border-box}
.wbld-document-field>label{display:block;margin:0 0 1.5mm;font-size:10pt;font-weight:700;color:var(--paper-ink)}
.wbld-document-field>label em{color:var(--paper-danger)}
.wbld-field-content input,.wbld-field-content select,.wbld-field-content textarea{width:100%;box-sizing:border-box}
.wbld-field-content textarea{min-height:26mm;resize:vertical}
.wbld-rich-editor{min-height:90mm;padding:4mm;border:1px solid var(--paper-line-2);background:var(--paper-bg);color:var(--paper-ink)}
/* 읽기 화면의 본문입니다. 바깥 칸이 이미 테두리를 그리므로 편집기 틀은 그리지 않습니다. */
/* 흰 배경을 걷어냈으므로 글자색도 물려받아야 어두운 테마에서 글자가 묻히지 않습니다. */
.wbld-rich-editor-read{height:auto;padding:.4rem .55rem;border:0;background:transparent;color:inherit;overflow-wrap:break-word;word-break:break-word}
.wbld-rich-editor-read>:first-child{margin-top:0}
.wbld-rich-editor-read>:last-child{margin-bottom:0}
.wbld-rich-editor-read img{max-width:100%;height:auto}
.wbld-rich-editor-read table{max-width:100%;border-collapse:collapse}
.wbld-rich-editor.rz-html-editor{padding:0;overflow:hidden}.wbld-rich-editor .rz-html-editor-content{min-height:inherit;background:var(--paper-bg);color:var(--paper-ink)}.wbld-rich-editor-preview{overflow:hidden;padding:0;border:1px solid var(--paper-line-2);background:var(--paper-bg);color:var(--paper-ink)}.wbld-rich-editor-toolbar{display:flex;gap:.65rem;padding:.45rem .6rem;border-bottom:1px solid var(--paper-line-2);background:var(--paper-bg-2);color:var(--paper-ink-2)}.wbld-rich-editor-body{padding:.75rem;color:var(--paper-ink-3)}
.wbld-approval-line{display:flex;flex-wrap:wrap;align-items:flex-start;color:var(--paper-ink)}
.wbld-approval-box{display:flex;flex-direction:column;flex:none;background:var(--paper-bg);border:1px solid var(--paper-line);margin:0 -1px -1px 0}
.wbld-approval-box-row{display:flex;align-items:center;justify-content:center;gap:.25rem;padding:.2rem .25rem;border-bottom:1px solid var(--paper-line-2);font-size:.74rem;line-height:1.2;min-height:20px;position:relative;overflow:hidden}
.wbld-approval-box-row:last-child{border-bottom:0}
.wbld-approval-box-row.is-header{background:var(--paper-bg-2);font-weight:700}
.wbld-approval-cell{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.wbld-approval-cell.position,.wbld-approval-cell.grade,.wbld-approval-cell.depth{color:var(--paper-ink-2);font-size:.68rem}
.wbld-approval-cell.date{color:var(--paper-ink-2);font-size:.68rem}
.wbld-approval-cell.opinion{color:var(--paper-ink-2);font-size:.66rem}
.wbld-approval-cell.sign{display:flex;align-items:center;justify-content:center;width:100%;height:100%;position:relative}
.wbld-approval-cell.sign img{max-width:100%;max-height:100%;object-fit:contain}
.wbld-approval-sign-name{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);white-space:nowrap;font-size:.72rem;color:var(--paper-ink)}
.wbld-approval-inline{display:flex;align-items:baseline;gap:.5rem;padding:.4rem .55rem;border:1px solid var(--paper-line);background:var(--paper-bg);color:var(--paper-ink);font-size:.82rem}
.wbld-approval-inline strong{white-space:nowrap}
.wbld-palette-preview .wbld-approval-box-row{font-size:.52rem;min-height:0;padding:.12rem}
.wbld-box-editor{display:flex;flex-direction:column;gap:.5rem;min-width:0}
.wbld-box-editor-toolbar{display:flex;gap:.35rem;align-items:center}
.wbld-box-editor-toolbar select{flex:1;min-width:0}
.wbld-box-editor-note{margin:0;font-size:.7rem;color:var(--paper-ink-3);line-height:1.4}
.wbld-box-editor-canvas{display:flex;justify-content:center;padding:.5rem;background:color-mix(in srgb,var(--ink-on-accent) 4%,transparent);border:1px dashed var(--paper-ink-2);border-radius:6px;overflow-x:auto}
.wbld-approval-box.is-editing{margin:0;color:var(--paper-ink)}
.wbld-approval-box-row.is-editing{flex-direction:column;align-items:stretch;gap:.2rem;padding:.25rem}
.wbld-box-editor-chips{display:flex;flex-wrap:wrap;gap:.15rem;align-items:center;justify-content:center;min-height:16px}
.wbld-box-editor-chips em{font-size:.6rem;color:var(--paper-ink-3);font-style:normal}
.wbld-box-editor-chip{display:inline-flex;align-items:center;gap:.15rem;padding:.05rem .25rem;border:1px solid var(--paper-line-2);border-radius:3px;background:var(--paper-bg-3);font-size:.62rem;white-space:nowrap;color:var(--paper-ink)}
.wbld-box-editor-chip button{border:0;background:transparent;color:var(--paper-ink-3);cursor:pointer;padding:0;line-height:1;font-size:.7rem}
.wbld-box-editor-add{width:26px;min-width:26px;height:17px;padding:0;border:1px dashed var(--paper-line-2);border-radius:3px;background:var(--paper-bg);color:var(--paper-ink-2);font-size:.6rem;cursor:pointer}
.wbld-box-editor-rowtools{display:flex;gap:.1rem;align-items:center;justify-content:center}
.wbld-box-editor-rowtools input{width:32px;min-width:32px;padding:0 .1rem;font-size:.58rem;height:17px;text-align:center;border:1px solid var(--paper-line-2);border-radius:3px;color:var(--paper-ink);background:var(--paper-bg)}
.wbld-box-editor-rowtools button{width:17px;height:17px;display:inline-flex;align-items:center;justify-content:center;border:1px solid var(--paper-line-2);border-radius:3px;background:var(--paper-bg);color:var(--paper-ink-2);font-size:.56rem;padding:0;cursor:pointer}
.wbld-box-editor-rowtools button.on{background:var(--paper-ink-2);color:var(--paper-bg)}
.wbld-box-editor-rowtools button:disabled{opacity:.35;cursor:default}
.wbld-box-editor-empty{padding:.6rem;text-align:center;font-size:.66rem;color:var(--paper-ink-3)}
.approval-box-editor{display:flex;flex-direction:column;gap:.55rem;padding:.6rem;border:1px solid color-mix(in srgb,var(--ink-on-accent) 12%,transparent);border-radius:8px;min-width:0}
.approval-box-editor>header{display:flex;align-items:baseline;gap:.4rem}
.approval-box-editor>header small{color:var(--paper-ink-3);font-size:.7rem}
.approval-box-options{display:flex;flex-direction:column;gap:.35rem}
.wbld-static-text{font-size:15pt;font-weight:800;text-align:center}
.wbld-data-value,.wbld-hidden-preview{min-height:31px;padding:.4rem .55rem;border:1px solid var(--paper-line-2);background:var(--paper-bg-2);color:var(--paper-ink-2)}
/* 읽기 화면과 인쇄물의 값 칸입니다. 원본처럼 테두리 없이 글자만 보여 줍니다. */
/* 줄바꿈은 저장된 그대로 살리고, 긴 낱말은 칸을 넘지 않게 끊습니다. */
/* 글자색은 정하지 않고 물려받습니다. 전자결재는 흰 종이라 진한 먹색이지만 */
/* 같은 렌더러를 쓰는 커뮤니티 조회 화면은 어두운 테마를 그대로 따라야 합니다. */
.wbld-read-value{box-sizing:border-box;min-height:31px;padding:.4rem .55rem;color:inherit;white-space:pre-wrap;overflow-wrap:anywhere}
.wbld-read-value.wbld-read-number{text-align:right;font-variant-numeric:tabular-nums}
.wbld-choice{display:flex;align-items:center;gap:.45rem}
.wbld-choice-group{display:flex;align-items:center;flex-wrap:wrap;gap:.55rem 1rem}.wbld-field-content select[multiple]{min-height:92px}
.wbld-file-button,.wbld-auth-button{border:1px solid var(--paper-line-2);background:var(--paper-bg-2);color:var(--paper-ink)}
/* 파일 첨부 자리에 앉히는 문서 첨부함입니다. 문서 칸 안에 들어가므로 위아래 여백만 줄입니다. */
.wbld-field-content .eapp-attachments{width:100%;margin:0}
/* 같은 양식에 파일 첨부를 두 개 이상 놓았을 때의 안내입니다. */
.wbld-attach-duplicate{display:flex;align-items:center;gap:.35rem;color:var(--paper-ink-3,var(--paper-ink));font-size:.82em;opacity:.75}
.wbld-palette-preview{pointer-events:none;min-width:0}
.wbld-palette-preview .wbld-field-content{font-size:.62rem}
.wbld-palette-preview input,.wbld-palette-preview select,.wbld-palette-preview textarea{min-height:24px;padding:.2rem .35rem;font-size:.62rem}
.wbld-palette-preview textarea,.wbld-palette-preview .wbld-rich-editor{min-height:32px}
.wbld-palette-preview .wbld-approval-line-step strong,.wbld-palette-preview .wbld-approval-line-step span{font-size:.5rem}
.wbld-palette-preview .wbld-static-text{font-size:.7rem;text-align:left}
.wbld-palette-preview .wbld-data-value{min-height:24px;padding:.2rem .35rem}
@media(max-width:900px){.wbld-document-viewport{padding:.5rem}.wbld-document-sheet{margin:0}}
/* 문서 상세에서 Ctrl+P로 본문만 뽑기 위한 규칙입니다. */
/* 인쇄 미리보기 화면(.print-preview)은 머리글과 결재란과 바닥글이 함께 나가야 하고 */
/* 자기 인쇄 규칙을 따로 가지고 있으므로, 그 화면에서는 이 규칙이 걸리면 안 됩니다. */
/* 걸리면 .wbld-document-sheet 말고 전부 감춰져 빈 종이가 나옵니다. */
/* EDMS 인쇄 규칙(app.css)도 같은 방식으로 자기 화면을 가려냅니다. */
@media print{body:not(:has(.print-preview)) *{visibility:hidden}body:not(:has(.print-preview)) .wbld-document-sheet,body:not(:has(.print-preview)) .wbld-document-sheet *{visibility:visible}body:not(:has(.print-preview)) .wbld-document-sheet{position:absolute;inset:0;margin:0;box-shadow:none}body:not(:has(.print-preview)) .wbld-document-viewport{padding:0;background:var(--paper-bg)}@page{size:A4;margin:0}}

/* 인쇄 미리보기 화면에서 문서지를 감싸는 상자는 배경도 여백도 없어야 합니다. */
.print-preview .wbld-document-viewport{padding:0;overflow:visible;background:transparent}

/* 양식 문서지 한 장만 내보내는 경우(.print-sheet-bare)에는 그 문서지가 곧 A4 한 장입니다. */
/* 210mm x 297mm와 양식이 정한 여백을 그대로 두어야 종이에 딱 맞습니다. */
/* 인쇄할 때는 종이에 그림자를 남기지 않습니다. */
/* 최소 높이 297mm도 함께 풉니다. 종이 높이와 딱 같아서 1mm만 밀려도 빈 장이 한 장 더 나옵니다. */
/* 종이 크기는 @page가 정하므로 상자를 늘리지 않아도 A4 한 장으로 나옵니다. */
@media print{.print-sheet-bare .wbld-document-sheet{min-height:0;box-shadow:none}}

/* 반대로 인쇄용 머리글과 결재란이 함께 나가는 구성에서는 문서지가 또 종이 노릇을 하면 안 됩니다. */
/* 바깥 종이의 폭과 여백에 자기 폭과 여백이 겹쳐 본문이 밀려 나갑니다. */
.print-preview .print-sheet:not(.print-sheet-bare) .wbld-document-sheet,
.print-preview .print-sheet:not(.print-sheet-bare) .wbld-document-sheet.landscape{width:auto;max-width:100%;min-height:0;margin:0;padding:0;background:transparent;box-shadow:none}
.approval-form-grid .form-actions{display:flex;align-self:start;gap:3px}.approval-form-grid .form-actions button{border:0;border-radius:8px;color:var(--accent-light);background:transparent}.approval-form-grid .form-actions .write{color:var(--ok)}

/* Approval stamp inside the WBLD sheet: the sheet is always white paper, so pin the light values. */
.wbld-document-sheet .wbld-approval-line .stamp-cell{--stamp-border:var(--paper-line);--stamp-bg:var(--paper-bg);--stamp-text:var(--paper-ink);--stamp-head-bg:var(--paper-bg-3);--stamp-muted:var(--paper-ink-2);--stamp-seal:var(--paper-seal);--stamp-waiting:var(--paper-seal);margin:0 -1px -1px 0}
