*{box-sizing:border-box}body,button,input,select,textarea,table{font-family:Arial,"NanumBarunGothic","나눔바른고딕","Malgun Gothic","맑은 고딕",sans-serif}body{margin:0;background:#f4f6f9;color:#172033;font-size:13px}header{position:fixed;z-index:5;top:0;left:0;right:0;height:52px;background:#fff;border-bottom:1px solid #dfe3e8;display:flex;align-items:center;gap:24px}.brand{width:220px;padding-left:18px;color:#2563eb;font-size:18px;font-weight:800;text-decoration:none}aside{position:fixed;top:94px;bottom:0;width:220px;background:#2d559f;color:#fff;padding:12px 10px;overflow-y:auto}aside input{width:100%;height:34px;background:#102c5e;border:1px solid #31558e;color:#fff;border-radius:5px;padding:8px;margin-bottom:8px}.dashboard-link,aside a,summary{display:block;text-decoration:none;padding:9px 10px;border-radius:5px;cursor:pointer}.dashboard-link{color:#fff;background:#17356f;margin-bottom:8px}.fixed-menu-groups{display:flex;flex-direction:column;gap:5px}.fixed-menu-groups details{background:#17356f;border-radius:6px;overflow:hidden;flex:none}.fixed-menu-groups summary{color:#60a5fa;font-weight:800;background:#102c5e;margin:0;list-style:none}.fixed-menu-groups summary::-webkit-details-marker{display:none}.fixed-menu-groups summary:after{content:'＋';float:right;color:#60a5fa}.fixed-menu-groups details[open] summary:after{content:'－'}.submenu{padding:4px}.submenu a{color:#fff;padding:8px 10px 8px 20px}.submenu a small{display:block;color:#b9cdf2;margin-top:3px}.submenu a:hover,.submenu a.active{background:#2f76f6;color:#fff}.sidebar-fill{background:#2d559f;min-height:100%}main{margin-left:220px;padding:114px 18px 30px}.title{font-size:22px;font-weight:800;margin-bottom:4px}.sub{color:#667085;margin-bottom:14px}.card{background:#fff;border:1px solid #d7dee8;border-radius:8px;padding:15px;margin-bottom:14px}.grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:10px}.stat{background:#fff;border:1px solid #d7dee8;border-radius:8px;padding:13px}.stat b{display:block;font-size:20px;margin-top:5px}.toolbar{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.spacer{flex:1}.btn{height:34px;padding:0 12px;border:1px solid #cbd5e1;border-radius:5px;background:#fff;font-weight:700;cursor:pointer}.primary{background:#1e3a8a;color:#fff;border-color:#1e3a8a}.green{background:#15803d;color:#fff;border-color:#15803d}.danger{background:#b42318;color:#fff;border-color:#b42318}.search{height:34px;min-width:240px;border:1px solid #cbd5e1;border-radius:5px;padding:0 9px}.table{overflow:auto;background:#fff;border:1px solid #d7dee8;border-radius:7px}table{border-collapse:collapse;width:100%;min-width:950px}th,td{padding:9px 10px;border-bottom:1px solid #e5e7eb;text-align:left;white-space:nowrap}th{background:#f8fafc}.flowbar{display:grid;grid-template-columns:repeat(12,minmax(92px,1fr));gap:4px;overflow:auto}.flowstep{padding:10px 7px;background:#e8efff;border:1px solid #c9d8ff;border-radius:5px;text-align:center;font-weight:700;color:#24427d}.notice{background:#eff6ff;border-left:4px solid #2563eb;padding:12px;line-height:1.8}.placeholder{text-align:center;padding:55px;color:#667085}.modal{display:none;position:fixed;z-index:20;inset:0;background:#0006;align-items:center;justify-content:center}.modal.open{display:flex}.modalbox{width:min(760px,92vw);background:#000;border-radius:9px;padding:18px;color:#fff;color-scheme:dark}.formgrid{display:grid;grid-template-columns:1fr 1fr;gap:10px}.formgrid label{font-weight:700}.formgrid input{width:100%;height:34px;border:1px solid #cbd5e1;border-radius:5px;padding:0 8px}@media(max-width:900px){aside{width:190px}main{margin-left:190px}.brand{width:190px}.formgrid{grid-template-columns:1fr}.flowbar{grid-template-columns:repeat(12,100px)}}
.fixed-menu-groups summary{font-size:14px}
table th,table td{border-right:1px solid #d7dee8}
table th:last-child,table td:last-child{border-right:0}
.table thead th{position:sticky;top:0;z-index:3}
.selected-row>td{background:#fff2a8!important}
.big-modal{display:none;position:fixed;z-index:50;inset:0;background:rgba(15,23,42,.42);padding:24px}
.big-modal.open{display:block}.big-modal-panel{height:calc(100vh - 48px);max-width:1500px;margin:auto;background:#000;border-radius:10px;overflow:auto;padding:18px;color:#fff;color-scheme:dark}
.modal-head{position:sticky;top:-18px;background:#000;z-index:8;display:flex;align-items:center;border-bottom:1px solid #dfe3e8;padding:8px 0 12px;margin-bottom:14px;color:#fff;color-scheme:dark}
.detail-grid{display:grid;grid-template-columns:repeat(4,minmax(180px,1fr));gap:10px}
.detail-section{grid-column:1/-1;background:#eef4ff;color:#17356f;font-weight:800;padding:9px 10px;margin-top:8px}
.detail-field label{display:block;font-weight:700;margin-bottom:4px}.detail-field input,.detail-field select,.detail-field textarea{width:100%;min-height:34px;border:1px solid #cfd7e3;border-radius:5px;padding:7px}
.file-preview{max-width:90px;max-height:64px}.hidden{display:none!important}

.table{overflow:auto}
.table table{border-collapse:collapse}
.table table th,.table table td{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.miso-col-resizer{position:absolute;right:-4px;top:0;width:8px;height:100%;cursor:col-resize;z-index:20;user-select:none}
.miso-col-resizer:hover{background:rgba(37,99,235,.16)}
.menu-setting-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.setting-box{border:1px solid #dfe3e8;border-radius:7px;background:#fff;padding:12px}
.setting-row{display:flex;align-items:center;gap:8px;padding:8px;border-bottom:1px solid #edf0f4}
.setting-row:last-child{border-bottom:0}.setting-row .drag{cursor:grab;font-weight:bold}.setting-row .name{flex:1}

.setting-row .rank{height:30px;border:1px solid #cfd7e3;border-radius:4px;padding:4px}.setting-row .vis{width:16px;height:16px}

.table th,.table td{min-width:0!important;max-width:none;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.miso-col-resizer{z-index:3}

.table table{table-layout:fixed!important;width:max-content!important;min-width:100%}
.table th,.table td{min-width:0!important;overflow:hidden!important;text-overflow:ellipsis;white-space:nowrap}
.table col{min-width:24px}
.miso-resizing,.miso-resizing *{cursor:col-resize!important;user-select:none!important}
.miso-resizing .table table{pointer-events:none}

/* 거래처 표: 행 높이 축소 + 내용과 무관하게 컬럼을 아주 좁게 */
#ct{table-layout:fixed!important;width:max-content!important;min-width:100%}
#ct th,#ct td{padding:4px 6px!important;height:27px;line-height:18px;min-width:0!important;overflow:hidden!important;text-overflow:ellipsis;white-space:nowrap}
#ct col{min-width:18px!important}
#ct .miso-col-resizer{right:-5px;width:10px;touch-action:none}
.excel-file-input{position:absolute;width:1px;height:1px;opacity:0;pointer-events:none}
.excel-file-label{display:inline-flex;align-items:center;justify-content:center}

/* FIX11: 실제 파일선택 컨트롤을 표시 */
.excel-file-native{position:static!important;width:auto!important;height:34px!important;opacity:1!important;pointer-events:auto!important}
/* 드래그 중에는 표를 전혀 다시 그리지 않고 가이드선만 이동 */
.miso-resize-guide{position:fixed;top:0;bottom:0;width:2px;background:#2563eb;z-index:9999;pointer-events:none}
.table col{min-width:16px!important}
.table th,.table td{min-width:0!important;max-width:none!important;overflow:hidden!important;text-overflow:ellipsis!important;white-space:nowrap!important}
/* 거래처/단지관리 행 높이 더 축소 */
#ct th,#ct td,#aptTable th,#aptTable td{padding:2px 4px!important;height:23px!important;line-height:16px!important}

.excel-file-native{display:block!important;position:relative!important;z-index:100!important;visibility:visible!important;opacity:1!important;pointer-events:auto!important;width:300px!important;height:34px!important}
#ct,#aptTable{table-layout:fixed!important;min-width:0!important}
#ct th,#aptTable th{padding:3px 4px!important;height:30px!important;line-height:20px!important}
#ct td,#aptTable td{padding:1px 4px!important;height:23px!important;line-height:17px!important}

/* FIX13: 거래처·단지관리 실제 데이터 행 20px */
#ct td,#aptTable td{padding:0 4px!important;height:20px!important;line-height:18px!important}

/* FIX14: 셀 내용/글자수와 컬럼 폭 완전 분리 */
#ct,#aptTable{table-layout:fixed!important;width:max-content;min-width:0!important}
#ct th,#ct td,#aptTable th,#aptTable td{
  min-width:0!important;max-width:none!important;
  overflow:hidden!important;text-overflow:ellipsis!important;white-space:nowrap!important;
}
#ct col,#aptTable col{min-width:0!important}

/* FIX15: 관리자 컬럼폭 절대 우선 — 셀 글자수/내용은 폭 계산에 관여하지 않음 */
#ct,#aptTable{table-layout:fixed!important;min-width:0!important}
#ct col,#aptTable col{min-width:0!important;max-width:none!important}
#ct th,#ct td,#aptTable th,#aptTable td{
 width:auto!important;min-width:0!important;max-width:none!important;
 overflow:hidden!important;text-overflow:ellipsis!important;white-space:nowrap!important;
 overflow-wrap:normal!important;word-break:keep-all!important;
}

/* FIX16: 컬럼 폭을 셀 자체에 절대 적용 */
#ct th:nth-child(1),#ct td:nth-child(1),#aptTable th:nth-child(1),#aptTable td:nth-child(1){width:var(--miso-c1,90px)!important;min-width:var(--miso-c1,90px)!important;max-width:var(--miso-c1,90px)!important;}
#ct th:nth-child(2),#ct td:nth-child(2),#aptTable th:nth-child(2),#aptTable td:nth-child(2){width:var(--miso-c2,90px)!important;min-width:var(--miso-c2,90px)!important;max-width:var(--miso-c2,90px)!important;}
#ct th:nth-child(3),#ct td:nth-child(3),#aptTable th:nth-child(3),#aptTable td:nth-child(3){width:var(--miso-c3,90px)!important;min-width:var(--miso-c3,90px)!important;max-width:var(--miso-c3,90px)!important;}
#ct th:nth-child(4),#ct td:nth-child(4),#aptTable th:nth-child(4),#aptTable td:nth-child(4){width:var(--miso-c4,90px)!important;min-width:var(--miso-c4,90px)!important;max-width:var(--miso-c4,90px)!important;}
#ct th:nth-child(5),#ct td:nth-child(5),#aptTable th:nth-child(5),#aptTable td:nth-child(5){width:var(--miso-c5,90px)!important;min-width:var(--miso-c5,90px)!important;max-width:var(--miso-c5,90px)!important;}
#ct th:nth-child(6),#ct td:nth-child(6),#aptTable th:nth-child(6),#aptTable td:nth-child(6){width:var(--miso-c6,90px)!important;min-width:var(--miso-c6,90px)!important;max-width:var(--miso-c6,90px)!important;}
#ct th:nth-child(7),#ct td:nth-child(7),#aptTable th:nth-child(7),#aptTable td:nth-child(7){width:var(--miso-c7,90px)!important;min-width:var(--miso-c7,90px)!important;max-width:var(--miso-c7,90px)!important;}
#ct th:nth-child(8),#ct td:nth-child(8),#aptTable th:nth-child(8),#aptTable td:nth-child(8){width:var(--miso-c8,90px)!important;min-width:var(--miso-c8,90px)!important;max-width:var(--miso-c8,90px)!important;}
#ct th:nth-child(9),#ct td:nth-child(9),#aptTable th:nth-child(9),#aptTable td:nth-child(9){width:var(--miso-c9,90px)!important;min-width:var(--miso-c9,90px)!important;max-width:var(--miso-c9,90px)!important;}
#ct th:nth-child(10),#ct td:nth-child(10),#aptTable th:nth-child(10),#aptTable td:nth-child(10){width:var(--miso-c10,90px)!important;min-width:var(--miso-c10,90px)!important;max-width:var(--miso-c10,90px)!important;}
#ct th:nth-child(11),#ct td:nth-child(11),#aptTable th:nth-child(11),#aptTable td:nth-child(11){width:var(--miso-c11,90px)!important;min-width:var(--miso-c11,90px)!important;max-width:var(--miso-c11,90px)!important;}
#ct th:nth-child(12),#ct td:nth-child(12),#aptTable th:nth-child(12),#aptTable td:nth-child(12){width:var(--miso-c12,90px)!important;min-width:var(--miso-c12,90px)!important;max-width:var(--miso-c12,90px)!important;}
#ct th:nth-child(13),#ct td:nth-child(13),#aptTable th:nth-child(13),#aptTable td:nth-child(13){width:var(--miso-c13,90px)!important;min-width:var(--miso-c13,90px)!important;max-width:var(--miso-c13,90px)!important;}
#ct th:nth-child(14),#ct td:nth-child(14),#aptTable th:nth-child(14),#aptTable td:nth-child(14){width:var(--miso-c14,90px)!important;min-width:var(--miso-c14,90px)!important;max-width:var(--miso-c14,90px)!important;}
#ct th:nth-child(15),#ct td:nth-child(15),#aptTable th:nth-child(15),#aptTable td:nth-child(15){width:var(--miso-c15,90px)!important;min-width:var(--miso-c15,90px)!important;max-width:var(--miso-c15,90px)!important;}
#ct th:nth-child(16),#ct td:nth-child(16),#aptTable th:nth-child(16),#aptTable td:nth-child(16){width:var(--miso-c16,90px)!important;min-width:var(--miso-c16,90px)!important;max-width:var(--miso-c16,90px)!important;}
#ct th:nth-child(17),#ct td:nth-child(17),#aptTable th:nth-child(17),#aptTable td:nth-child(17){width:var(--miso-c17,90px)!important;min-width:var(--miso-c17,90px)!important;max-width:var(--miso-c17,90px)!important;}
#ct th:nth-child(18),#ct td:nth-child(18),#aptTable th:nth-child(18),#aptTable td:nth-child(18){width:var(--miso-c18,90px)!important;min-width:var(--miso-c18,90px)!important;max-width:var(--miso-c18,90px)!important;}
#ct th:nth-child(19),#ct td:nth-child(19),#aptTable th:nth-child(19),#aptTable td:nth-child(19){width:var(--miso-c19,90px)!important;min-width:var(--miso-c19,90px)!important;max-width:var(--miso-c19,90px)!important;}
#ct th:nth-child(20),#ct td:nth-child(20),#aptTable th:nth-child(20),#aptTable td:nth-child(20){width:var(--miso-c20,90px)!important;min-width:var(--miso-c20,90px)!important;max-width:var(--miso-c20,90px)!important;}
#ct th:nth-child(21),#ct td:nth-child(21),#aptTable th:nth-child(21),#aptTable td:nth-child(21){width:var(--miso-c21,90px)!important;min-width:var(--miso-c21,90px)!important;max-width:var(--miso-c21,90px)!important;}
#ct th:nth-child(22),#ct td:nth-child(22),#aptTable th:nth-child(22),#aptTable td:nth-child(22){width:var(--miso-c22,90px)!important;min-width:var(--miso-c22,90px)!important;max-width:var(--miso-c22,90px)!important;}
#ct th:nth-child(23),#ct td:nth-child(23),#aptTable th:nth-child(23),#aptTable td:nth-child(23){width:var(--miso-c23,90px)!important;min-width:var(--miso-c23,90px)!important;max-width:var(--miso-c23,90px)!important;}
#ct th:nth-child(24),#ct td:nth-child(24),#aptTable th:nth-child(24),#aptTable td:nth-child(24){width:var(--miso-c24,90px)!important;min-width:var(--miso-c24,90px)!important;max-width:var(--miso-c24,90px)!important;}
#ct th:nth-child(25),#ct td:nth-child(25),#aptTable th:nth-child(25),#aptTable td:nth-child(25){width:var(--miso-c25,90px)!important;min-width:var(--miso-c25,90px)!important;max-width:var(--miso-c25,90px)!important;}
#ct th:nth-child(26),#ct td:nth-child(26),#aptTable th:nth-child(26),#aptTable td:nth-child(26){width:var(--miso-c26,90px)!important;min-width:var(--miso-c26,90px)!important;max-width:var(--miso-c26,90px)!important;}
#ct th:nth-child(27),#ct td:nth-child(27),#aptTable th:nth-child(27),#aptTable td:nth-child(27){width:var(--miso-c27,90px)!important;min-width:var(--miso-c27,90px)!important;max-width:var(--miso-c27,90px)!important;}
#ct th:nth-child(28),#ct td:nth-child(28),#aptTable th:nth-child(28),#aptTable td:nth-child(28){width:var(--miso-c28,90px)!important;min-width:var(--miso-c28,90px)!important;max-width:var(--miso-c28,90px)!important;}
#ct th:nth-child(29),#ct td:nth-child(29),#aptTable th:nth-child(29),#aptTable td:nth-child(29){width:var(--miso-c29,90px)!important;min-width:var(--miso-c29,90px)!important;max-width:var(--miso-c29,90px)!important;}
#ct th:nth-child(30),#ct td:nth-child(30),#aptTable th:nth-child(30),#aptTable td:nth-child(30){width:var(--miso-c30,90px)!important;min-width:var(--miso-c30,90px)!important;max-width:var(--miso-c30,90px)!important;}
#ct,#aptTable{table-layout:fixed!important;width:max-content!important;min-width:0!important}
#ct th,#ct td,#aptTable th,#aptTable td{box-sizing:border-box!important;overflow:hidden!important;text-overflow:ellipsis!important;white-space:nowrap!important}
/* 사용자 정정: 항목명(헤더) 20px, 실제 거래처/단지 리스트 30px */
#ct th,#aptTable th{height:20px!important;min-height:20px!important;padding:0 4px!important;line-height:18px!important}
#ct td,#aptTable td{height:30px!important;min-height:30px!important;padding:2px 4px!important;line-height:24px!important}

/* FIX17 최종 높이: 항목명 30px / 실제 리스트 20px */
#ct th,#aptTable th{height:30px!important;min-height:30px!important;padding:3px 4px!important;line-height:20px!important}
#ct td,#aptTable td{height:20px!important;min-height:20px!important;padding:0 4px!important;line-height:18px!important}

/* FIX19: 메뉴설정 행높이 + 최초 1회 컬럼폭 적용 */
#ct,#aptTable{width:auto!important;min-width:0!important}
#ct th,#aptTable th{height:var(--miso-header-height,30px)!important;min-height:var(--miso-header-height,30px)!important}
#ct td,#aptTable td{height:var(--miso-row-height,20px)!important;min-height:var(--miso-row-height,20px)!important}

/* FIX20 메뉴설정 한 화면 압축 */
.menu-setting-grid{display:grid;grid-template-columns:minmax(280px,.75fr) minmax(420px,1.25fr);gap:10px;align-items:start}
.menu-setting-left,.menu-setting-right .card{margin-bottom:10px}
.menu-setting-title{font-size:15px!important;margin-bottom:5px!important}
.compact-toolbar{gap:6px!important;padding:4px 0!important}
.compact-setting-table table{font-size:12px}
.compact-setting-table th,.compact-setting-table td{padding:3px 5px!important;height:24px!important;min-height:24px!important}
.menu-setting-left .compact-setting-table{max-height:570px;overflow:auto}
.menu-setting-right input[type=number]{width:62px}
@media(max-width:900px){.menu-setting-grid{grid-template-columns:1fr}}

/* FIX20 실제 행높이: padding/line-height가 숫자 높이를 막지 않도록 제거 */
#ct th,#aptTable th{
 height:var(--miso-header-height,30px)!important;
 min-height:var(--miso-header-height,30px)!important;
 max-height:var(--miso-header-height,30px)!important;
 padding:0 4px!important;
 line-height:var(--miso-header-height,30px)!important;
}
#ct td,#aptTable td{
 height:var(--miso-row-height,20px)!important;
 min-height:var(--miso-row-height,20px)!important;
 max-height:var(--miso-row-height,20px)!important;
 padding:0 4px!important;
 line-height:var(--miso-row-height,20px)!important;
}

/* FIX22 전체 표 항목 가운데 정렬 + 항목명 최대 2줄 */
.table table th,.table table td{text-align:center}
.table table th{white-space:normal!important;line-height:1.15!important;overflow:hidden}
.permission-two tbody{display:grid;grid-template-columns:1fr 1fr}
.permission-two tbody tr{display:grid;grid-template-columns:1fr 70px}
.permission-two tbody td{display:flex;align-items:center;justify-content:center;border-right:1px solid #d7dee8}
.permission-two thead{display:none}
@media(max-width:850px){.permission-two tbody{grid-template-columns:1fr}}

/* FIX23 관리화면 공통 작업버튼: 위치/크기/폰트 통일 */
.miso-actionbar{display:flex!important;align-items:center!important;gap:6px!important;min-height:38px!important;margin:0!important}
.miso-actionbar .btn,.miso-actionbar button.btn,.miso-actionbar a.btn{
 height:30px!important;min-width:78px!important;padding:0 10px!important;
 display:inline-flex!important;align-items:center!important;justify-content:center!important;
 font-family:inherit!important;font-size:13px!important;font-weight:600!important;line-height:1!important;
 border-radius:4px!important;box-sizing:border-box!important;white-space:nowrap!important;
}
.miso-actionbar form{margin:0!important;display:flex;align-items:center;gap:6px}

.workspace-tabs{position:fixed;z-index:4;top:52px;left:220px;right:0;height:42px;background:#fff;border-bottom:1px solid #dfe3e8;display:flex;align-items:end;gap:5px;padding:5px 12px 0;overflow-x:auto}
.workspace-tab{height:34px;min-width:110px;max-width:190px;background:#f1f3f6;border-radius:7px 7px 0 0;display:flex;align-items:center}
.workspace-tab.active{background:#93a3bf;color:#fff}
.workspace-tab a{flex:1;min-width:0;padding:9px 10px;text-decoration:none;color:inherit;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.workspace-tab button{width:28px;border:0;background:transparent;color:inherit;font-size:17px;cursor:pointer}
.menu-search-wrap{position:relative}.menu-search-wrap #menuSearch{padding-right:28px}.menu-search-clear{display:none;position:absolute;right:5px;top:3px;width:27px;height:27px;border:0;background:transparent;color:#fff;font-size:18px;cursor:pointer}
/* FIX27 공통 목록: 세로 스크롤 시 헤더 고정 + 하단 가로 스크롤 */
.miso-scroll-table,.table{overflow:auto!important;max-width:100%;position:relative}
.miso-scroll-table{max-height:calc(100vh - 210px)}
.miso-scroll-table table thead th,.table table thead th{position:sticky;top:0;z-index:2;background:#eef3f9}
.status{display:inline-block;min-width:42px;padding:2px 6px;border-radius:3px;font-weight:700}.status-대기{background:#70d86f}.status-긴급{background:#ff5b5b}.status-공지{background:#dce8ff}.status-전달{background:#f0d4a5}

/* FIX28: 모든 업무 목록 공통 컬럼폭/행높이/헤더고정 */
.table:not(.compact-setting-table){max-height:calc(100vh - 210px);overflow:auto!important;position:relative}
.table:not(.compact-setting-table) table thead th{position:sticky!important;top:0!important;z-index:10!important;background:#eef3f9!important;height:var(--miso-header-height,30px)!important;min-height:var(--miso-header-height,30px)!important}
.table:not(.compact-setting-table) table tbody td{height:var(--miso-row-height,20px)!important;min-height:var(--miso-row-height,20px)!important;max-height:var(--miso-row-height,20px)!important;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.table:not(.compact-setting-table) table{table-layout:fixed;min-width:max-content}

/* FIX29: 전체 ERP 기본 행높이 강제 적용 - 사용자 설정 충돌 방지 */
.table table thead tr, .miso-scroll-table table thead tr { height:30px !important; }
.table table thead th, .miso-scroll-table table thead th { height:30px !important; min-height:30px !important; padding-top:0 !important; padding-bottom:0 !important; line-height:30px !important; box-sizing:border-box !important; }
.table table tbody tr, .miso-scroll-table table tbody tr { height:20px !important; }
.table table tbody td, .miso-scroll-table table tbody td { height:20px !important; min-height:20px !important; padding-top:0 !important; padding-bottom:0 !important; line-height:20px !important; box-sizing:border-box !important; }

/* FIX30 compact management controls / counter */
.manage-cell{white-space:nowrap!important;line-height:16px!important}
.manage-btn,.table td .btn,.miso-scroll-table td .btn{min-height:14px!important;height:14px!important;line-height:12px!important;padding:0 4px!important;font-size:10px!important;border-radius:2px!important}
.current-counter{background:#ffd6e7!important;cursor:pointer!important;font-weight:700}
.file-name{max-width:240px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:12px;color:#475569}
.table table thead tr,.miso-scroll-table table thead tr{height:30px!important}
.table table tbody tr,.miso-scroll-table table tbody tr{height:20px!important;min-height:20px!important}
.table table tbody td,.miso-scroll-table table tbody td{height:20px!important;min-height:20px!important;line-height:18px!important;padding:0 3px!important}

/* FIX70 - 확정한 두 번째 좌측 메뉴 디자인 */
aside{background:linear-gradient(180deg,#0b438f 0%,#0a397d 100%)!important;padding:14px 8px!important}
.menu-search-wrap{position:relative;margin-bottom:10px}
aside input#menuSearch{height:42px!important;background:#0b3674!important;border:1px solid #78a7e8!important;border-radius:7px!important;padding-left:14px!important}
.dashboard-link{height:42px;display:flex!important;align-items:center;gap:10px;background:transparent!important;border-radius:6px!important;font-weight:800;font-size:14px}
.modern-sidebar{gap:2px!important}
.modern-sidebar details{background:transparent!important;border-radius:6px!important}
.modern-sidebar summary{height:42px;display:flex!important;align-items:center;gap:10px;background:transparent!important;color:#fff!important;font-size:14px!important;padding:0 10px!important}
.modern-sidebar summary:after{margin-left:auto;float:none!important;color:#d7e7ff!important}
.modern-sidebar details[open]>summary{background:#1358aa!important}
.modern-sidebar .submenu{padding:2px 0 6px 20px!important}
.modern-sidebar .submenu a{min-height:34px;display:flex!important;align-items:center;color:#dceaff!important;padding:7px 10px!important;border-radius:5px!important}
.modern-sidebar .submenu a:before{content:'•';margin-right:7px;color:#83b8ff}
.modern-sidebar .submenu a:hover,.modern-sidebar .submenu a.active{background:#2f76f6!important;color:#fff!important}
.menu-ico{display:inline-flex;width:18px;justify-content:center;font-size:15px}
/* FIX72 - supplied reference image visual system */
.miso-top{height:44px!important;border-bottom:1px solid #3d8eea!important;padding:0 12px!important;gap:18px!important}.miso-top .brand{width:auto!important;padding:0!important;font-size:22px!important;color:#64748b!important}.miso-top .brand span{color:#07509b}.top-spacer{flex:1}.top-user{font-weight:700;color:#064a91}.workspace-tabs{display:flex!important;top:44px!important;left:170px!important;height:38px!important;padding:4px 10px 0!important}aside{top:44px!important;width:170px!important;padding:0!important;background:linear-gradient(#06478e,#003e7d)!important}main{margin-left:170px!important;padding:90px 16px 22px!important}.menu-search-wrap{display:none}.dashboard-link{border-radius:0!important;margin:0!important;padding-left:12px!important;border-bottom:1px solid #175da3}.modern-sidebar summary{border-radius:0!important;border-bottom:1px solid #175da3}.modern-sidebar .submenu{padding:2px 6px 7px 20px!important}.modern-sidebar .submenu a{padding-left:14px!important}.modern-sidebar .submenu a:before{display:none}.bill-page{font-size:12px}.bill-head{display:flex;align-items:center;gap:12px;margin-bottom:8px}.bill-head h1{font-size:22px;color:#064a91;margin:0}.bill-head-actions{margin-left:auto;display:flex;gap:6px}.ref-btn{height:34px;border:1px solid #b8d1ed;border-radius:4px;background:#fff;color:#07509b;font-weight:700;padding:0 13px}.ref-btn.blue{background:#0755a7;color:#fff;border-color:#0755a7}.ref-btn.green{background:#16934d;color:#fff;border-color:#16934d}.filterbar{display:flex;gap:7px;align-items:center;margin:6px 0}.filter-chip{min-width:102px;height:38px;border:1px solid #c9d9eb;border-radius:5px;background:#eaf4ff;color:#07509b;font-weight:800}.filter-chip.red{background:#ffe7e7;color:#a81e1e}.filter-chip.orange{background:#fff0e3;color:#9a4b08}.filter-chip.cyan{background:#e4f6ff;color:#0873a9}.count-pill{display:inline-block;border-radius:10px;background:#1689e8;color:#fff;padding:2px 8px;margin-left:8px}.bill-list{border:1px solid #bdd2e8;background:#fff;overflow:auto}.bill-list table{min-width:1150px;font-size:12px}.bill-list th{background:#eaf4fd;color:#064a91;text-align:center}.bill-list td{text-align:center;height:31px!important;line-height:31px!important}.status-badge{display:inline-block;min-width:78px;padding:0 8px;border-radius:4px;font-weight:800;line-height:26px}.st-ok{background:#ffe574}.st-error{background:#ffaaa7;color:#a30000}.st-none{background:#e5e7eb}.st-sample{background:#a9dcfa;color:#07509b}.st-hold{background:#ffb36f}.st-print{background:#1779ed;color:#fff}.st-done{background:#78c650;color:#123d0d}.lower-grid{display:grid;grid-template-columns:34% 66%;gap:14px;margin-top:14px}.ref-panel{background:#fff;border:1px solid #c9dced;border-radius:6px;padding:10px}.ref-panel h2{font-size:17px;color:#064a91;margin:0 0 10px}.selected-title{font-size:20px;color:#064a91;font-weight:800}.upload-tabs{display:grid;grid-template-columns:repeat(4,1fr);gap:7px}.upload-tab{height:36px;border:1px solid #bdd5ed;background:#eaf4fd;color:#07509b;border-radius:5px;font-weight:700}.upload-tab.active{background:#0b7ce5;color:#fff}.drop-zone{height:145px;border:1px dashed #5f9ee0;display:flex;align-items:center;justify-content:center;text-align:center;color:#28679f;margin-top:8px;border-radius:5px}.file-box{border:1px solid #d0dfed;min-height:145px}.download-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px}.big-action{height:54px;font-size:15px}.print-modal{display:none;position:fixed;inset:0;background:#0007;z-index:1000;align-items:center;justify-content:center}.print-modal.open{display:flex}.print-dialog{width:min(760px,92vw);max-height:88vh;overflow:auto;background:#000;border-radius:8px;padding:18px;color:#fff;color-scheme:dark}.memo-alert{border:1px solid #f4b7b7;background:#fff0f0;border-radius:5px;padding:10px;margin:10px 0}.memo-row{display:grid;grid-template-columns:90px 1fr 90px;gap:6px;border-bottom:1px solid #e2e8f0;padding:7px}.confirm-box{background:#fff0f0;border:1px solid #f2aaaa;padding:12px;margin-top:12px}.apt-preview{display:flex;gap:12px}.apt-thumb{width:150px;height:200px;border:1px solid #bdd2e8;background:linear-gradient(#e9f4ff,#fff);display:flex;align-items:center;justify-content:center;color:#5f7f9f;font-weight:700}.info-table{flex:1;border:1px solid #d3e0ec}.info-row{display:grid;grid-template-columns:110px 1fr;border-bottom:1px solid #d3e0ec}.info-row b,.info-row span{padding:7px}.info-row b{background:#eef6fc}
/* FIX73 - sidebar/menu and viewport-safe BillWork */
.sidebar-toggle{width:34px;height:32px;border:0;background:transparent;color:#07509b;font-size:22px;font-weight:800;cursor:pointer;flex:0 0 auto}
aside{width:210px!important;overflow-x:hidden!important}
main{margin-left:210px!important}
.menu-search-wrap{display:block!important;margin:7px 10px 9px!important}
aside input#menuSearch{display:block!important;height:34px!important;margin:0!important;padding:0 32px 0 10px!important;background:#06366f!important;border:1px solid #5b92cc!important;white-space:nowrap!important}
.menu-search-clear{top:3px!important;right:3px!important;color:#fff!important}
.dashboard-link,.modern-sidebar summary,.modern-sidebar .submenu a{white-space:nowrap!important;overflow:hidden!important;text-overflow:ellipsis!important}
body.sidebar-collapsed aside{width:0!important;padding:0!important;border:0!important;overflow:hidden!important}
body.sidebar-collapsed main{margin-left:0!important}
.bill-page{height:calc(100vh - 58px);min-height:0;display:flex;flex-direction:column;overflow:hidden}
.bill-page .bill-head,.bill-page .notice,.bill-page .filterbar{flex:0 0 auto}
.bill-page .bill-list{flex:0 1 250px;min-height:125px;max-height:30vh;overflow:auto!important}
.bill-page .bill-list thead th{position:sticky;top:0;z-index:4}
.bill-page .lower-grid{flex:1 1 auto;min-height:0;overflow:hidden;margin-top:10px}
.bill-page .lower-grid>.ref-panel{min-height:0;overflow:auto}
.apt-search-row{position:relative;display:grid;grid-template-columns:120px minmax(280px,1fr) auto;gap:8px;align-items:center;margin:0 0 9px}
.apt-search-row>label{font-weight:800;color:#064a91}.apt-search-input{height:36px;border:1px solid #8eb9e3;border-radius:5px;padding:0 10px;font-weight:700}
.apt-suggest{display:none}
.apt-suggest.open{display:block}.apt-suggest-item{padding:8px 10px;border-bottom:1px solid #e5edf6;cursor:pointer}.apt-suggest-item.active,.apt-suggest-item:hover{background:#ddecff;color:#064a91}.apt-suggest-item b{display:inline-block;width:65px}
.recognized-files{margin:7px 0;padding:7px 9px;background:#f2f8ff;border:1px solid #c9dced;border-radius:5px;font-size:12px;box-sizing:border-box;height:34px;line-height:18px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.recognized-files:empty:before{content:"자동인식 대기: 단지를 선택하면 고지 / 조정 / 부과 파일을 확인합니다.";color:#64748b}
@media(max-width:1100px){aside{width:190px!important}main{margin-left:190px!important}.bill-page .bill-list{max-height:26vh}.lower-grid{grid-template-columns:38% 62%!important}}
/* FIX75 upload workflow */
body,button,input,select,textarea,table{font-family:"NanumBarunGothic","나눔바른고딕","Malgun Gothic","맑은 고딕",sans-serif!important}
body.sidebar-collapsed aside{width:52px!important;padding:0!important;border:0!important;overflow:hidden!important}
body.sidebar-collapsed main{margin-left:52px!important}
body.sidebar-collapsed .menu-search-wrap,body.sidebar-collapsed .menu-text,body.sidebar-collapsed .modern-sidebar .submenu{display:none!important}
body.sidebar-collapsed .dashboard-link{height:42px;padding:10px 0!important;text-align:center!important}
body.sidebar-collapsed .modern-sidebar summary{width:52px!important;padding:0!important;justify-content:center!important;font-size:0!important}
body.sidebar-collapsed .modern-sidebar summary .menu-ico{font-size:16px!important;margin:0!important}
body.sidebar-collapsed .modern-sidebar summary:after{display:none!important}
.file-work-grid{display:grid;grid-template-columns:minmax(0,1.6fr) minmax(280px,.8fr);gap:10px}.selected-file-list{border:1px solid #c9dced;border-radius:5px;padding:9px}.selected-file-list>b{display:block;color:#064a91;font-size:14px;margin-bottom:7px}.file-row{display:grid;grid-template-columns:34px 90px minmax(0,1fr) 92px;gap:7px;align-items:center;min-height:43px;border-top:1px solid #e2eaf2}.file-row>span:nth-child(3){overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.file-order{width:27px;height:27px;border-radius:50%;display:grid;place-items:center;background:#147bd1;color:#fff;font-weight:800}.drop-zone{height:auto!important;min-height:150px;margin:0!important;padding:15px;cursor:copy}.drop-zone.dragging{background:#e7f3ff;border-width:2px}.drop-zone small{display:inline-block;margin-top:8px;color:#567}.upload-bottom-row{display:grid;grid-template-columns:auto minmax(220px,1fr) auto auto;gap:8px;align-items:center;margin-top:10px}.upload-memo{width:100%!important;min-width:0!important}
@media(max-width:1150px){.upload-top-row{grid-template-columns:1fr}.file-work-grid{grid-template-columns:1fr}.drop-zone{min-height:110px}.upload-top-row .apt-search-row{grid-template-columns:auto auto minmax(240px,1fr)}}
/* FIX77 upload compact layout */
.file-ok{font-weight:900;color:#0b7a3b;font-size:14px}
.upload-top-row{grid-template-columns:minmax(250px,.55fr) minmax(560px,1.45fr)!important}
.folder-recognizer{grid-template-columns:auto minmax(90px,1fr) auto!important;max-width:100%}
.upload-top-row .apt-search-row{grid-template-columns:auto minmax(0,1fr)!important}
.apt-inline-clear{position:absolute;right:5px;top:50%;transform:translateY(-50%);border:0;background:transparent;font-size:20px;color:#64748b;cursor:pointer;line-height:1}
.file-row{grid-template-columns:30px 76px minmax(90px,1fr) 28px 84px!important}.file-clear{width:26px;height:26px;border:1px solid #c9d9eb;border-radius:4px;background:#fff;color:#64748b;font-size:18px;line-height:20px;cursor:pointer}.file-row .ref-btn{padding:0 8px!important}
.file-work-grid{grid-template-columns:minmax(0,1.45fr) minmax(250px,.75fr)!important}.selected-file-list{min-width:0}.bill-page{overflow-x:hidden}.bill-list table{min-width:1080px!important}
/* FIX77 compact upload */
.file-ok{font-weight:900;color:#087a3b;font-size:14px}.upload-top-row{grid-template-columns:minmax(250px,.55fr) minmax(520px,1.45fr)!important}.folder-recognizer{grid-template-columns:auto minmax(80px,1fr) auto!important}.upload-top-row .apt-search-row{grid-template-columns:auto minmax(0,1fr)!important}.apt-search-box{position:relative;min-width:0}.apt-search-box .apt-search-input{width:100%;box-sizing:border-box;padding-right:30px}.apt-inline-clear{position:absolute;right:5px;top:50%;transform:translateY(-50%);border:0;background:transparent;font-size:20px;color:#64748b;cursor:pointer}.file-row{grid-template-columns:30px 76px minmax(80px,1fr) 28px 84px!important}.file-clear{width:26px;height:26px;border:1px solid #c9d9eb;border-radius:4px;background:#fff;color:#64748b;font-size:18px;cursor:pointer}.file-row .ref-btn{padding:0 8px!important}.file-work-grid{grid-template-columns:minmax(0,1.45fr) minmax(250px,.75fr)!important}.bill-page{overflow-x:hidden}
/* FIX79: 고지서 업로드 화면 폭/높이 정리 */
.bill-page .bill-list{flex:1 1 310px!important;max-height:38vh!important;min-height:180px!important}
.bill-page .lower-grid{flex:0 0 auto!important;grid-template-columns:minmax(240px,28%) minmax(0,72%)!important;gap:10px!important;margin-top:16px!important}
.bill-page .lower-grid>.ref-panel{overflow:hidden!important}
.upload-top-row{grid-template-columns:minmax(190px,30%) minmax(0,70%)!important;gap:8px!important}
.folder-recognizer{grid-template-columns:auto minmax(45px,1fr) auto!important;padding:5px 6px!important;gap:5px!important}
.folder-recognizer .ref-btn{padding:0 8px!important}
.file-work-grid{grid-template-columns:minmax(300px,60%) minmax(0,40%)!important;gap:8px!important}
.selected-file-list{width:auto!important;max-width:100%!important;padding:7px!important}
.file-row{grid-template-columns:28px 68px minmax(70px,1fr) 26px 78px!important;gap:5px!important}
.file-row>span:nth-child(3){max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.drop-zone{min-width:0!important;max-width:100%!important;padding:10px!important;overflow:hidden!important}
.drop-zone div,.drop-zone b,.drop-zone span,.drop-zone small{max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;overflow-wrap:normal;word-break:keep-all}
@media(max-width:1250px){.bill-page .lower-grid{grid-template-columns:minmax(220px,25%) minmax(0,75%)!important}.file-work-grid{grid-template-columns:minmax(280px,58%) minmax(0,42%)!important}}
/* FIX80 bill upload/menu settings refinements */
.bill-list tr.sample-fixed>td{background:#cfeaff!important;color:#064a91!important}
.bill-list tr.sample-fixed.selected-row>td{background:#cfeaff!important;color:#064a91!important}
.upload-top-row{grid-template-columns:minmax(190px,30%) minmax(0,70%)!important}
.folder-recognizer{max-width:100%!important}
.upload-top-row .apt-search-row>label{font-size:15px!important}
.upload-top-row .apt-search-input{font-size:15px!important}
.bill-page .lower-grid{grid-template-columns:minmax(320px,38%) minmax(0,62%)!important}
.bill-page .lower-grid>.ref-panel:first-child .apt-thumb{width:110px!important;min-width:110px!important}
.bill-page .lower-grid>.ref-panel:first-child .info-row{grid-template-columns:78px minmax(0,1fr)!important}
.bill-page .lower-grid>.ref-panel:first-child .info-row span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.file-work-grid{grid-template-columns:minmax(260px,36%) minmax(0,64%)!important}
.selected-file-list{min-width:0!important}
.file-row{grid-template-columns:26px 66px minmax(70px,1fr) 26px 78px!important;gap:5px!important}
.file-row>span:nth-child(3){min-width:0!important;overflow:hidden!important;text-overflow:ellipsis!important;white-space:nowrap!important}
.drop-zone{min-width:0!important;padding:10px!important}
.compact-setting-table tbody tr,.compact-setting-table tbody td{height:29px!important;min-height:29px!important}

/* FIX82 - upload workspace refinements */
.bill-page .lower-grid{grid-template-columns:minmax(390px,42%) minmax(0,58%)!important}
.bill-page .lower-grid>.ref-panel:first-child .selected-title{font-size:17px!important;white-space:nowrap!important;overflow:hidden!important;text-overflow:ellipsis!important}
.bill-page .lower-grid>.ref-panel:first-child .apt-thumb{width:145px!important;min-width:145px!important}
.bill-page .lower-grid>.ref-panel:first-child .info-row{grid-template-columns:68px minmax(0,1fr)!important}
.bill-page .lower-grid>.ref-panel:first-child .info-row b{padding-left:4px!important;padding-right:4px!important}
#infoUploadStatus{display:inline-flex!important;justify-content:center!important;align-items:center!important;text-align:center!important}
.file-work-grid{grid-template-columns:minmax(0,72%) minmax(210px,28%)!important}
.drop-zone{min-height:120px!important;padding:7px!important;font-size:12px!important}
.file-row{grid-template-columns:26px 66px minmax(150px,1fr) 26px 78px!important}
#lastFolderName{font-size:15px!important;font-weight:700!important}
.upload-top-row .apt-search-row>label,.upload-top-row .apt-search-input{font-size:18px!important}
/* FIX83 upload workflow/layout */
.bill-page .lower-grid{grid-template-columns:minmax(350px,36%) minmax(0,64%)!important}
.bill-page .lower-grid>.ref-panel:first-child .selected-title{font-size:16px!important}
.bill-page .lower-grid>.ref-panel:first-child .apt-thumb{width:145px!important;min-width:145px!important}
.bill-page .lower-grid>.ref-panel:first-child .info-row{grid-template-columns:64px minmax(0,1fr)!important}
.bill-page .lower-grid>.ref-panel:first-child .info-row:nth-child(5) b{text-align:center!important}
.file-work-grid{grid-template-columns:minmax(0,62%) minmax(260px,38%)!important}
.drop-zone{min-height:150px!important;font-size:12px!important}
#lastFolderName{font-size:14px!important;font-weight:700!important}
.preview-layout{width:100%;height:100%;display:grid;grid-template-columns:1fr .7fr;grid-template-rows:1fr 1fr;gap:3px;padding:4px;box-sizing:border-box}
.preview-layout>div{border:1px dashed #a8c6e2;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;min-width:0}
.preview-a3{grid-row:1/3}.preview-layout small{font-size:9px;font-weight:400;margin-top:4px}
/* FIX84 */
.folder-recognizer #lastFolderName{font-size:calc(1em + 2pt)!important;font-weight:700}

/* FIX86 selected apartment preview: upper A3 + A4 front overlay, lower A3 back */
.preview-layout{width:100%;height:100%;display:grid!important;grid-template-columns:1fr!important;grid-template-rows:54% 46%!important;gap:4px!important;padding:4px!important;box-sizing:border-box!important}
.preview-upper{position:relative;min-height:0;border:1px solid #111!important;overflow:hidden;background:#fff}
.preview-a3{position:absolute;inset:0!important;border:0!important;display:flex;align-items:center;justify-content:center;flex-direction:column}
.preview-front{position:absolute;right:2%;top:2%;width:48%;height:64%;z-index:2;border:1px solid #ef4444!important;background:rgba(255,255,255,.94);display:flex;align-items:center;justify-content:center;flex-direction:column;text-align:center}
.preview-back{border:1px solid #ef4444!important;background:#fff;display:flex;align-items:center;justify-content:center;flex-direction:column;text-align:center;min-height:0}
.preview-layout small{font-size:8px!important;font-weight:400;margin-top:2px}
.bill-page .lower-grid>.ref-panel:first-child .apt-thumb{height:260px!important}

/* FIX87 bill work status colors */
.bill-list tr.statement-only-fixed>td{background:#eef0f3!important;color:#374151!important}
.bill-list tr.statement-only-fixed.selected-row>td{background:#eef0f3!important;color:#374151!important}
.bill-list tr.cancel-fixed>td{background:#fee2e2!important;color:#991b1b!important}
.bill-list tr.cancel-fixed.selected-row>td{background:#fee2e2!important;color:#991b1b!important}
.status-badge.st-statement{background:#e5e7eb;color:#374151}
.status-badge.st-cancel{background:#fecaca;color:#991b1b}
.ref-btn.danger{background:#dc2626;color:#fff;border-color:#b91c1c}

/* FIX90: 고지서 목록 선택 체크박스 컬럼 기본 폭 축소 */
#billRefTable th.bill-check-col{padding-left:2px!important;padding-right:2px!important;white-space:nowrap!important}
#billRefTable td:first-child{padding-left:2px!important;padding-right:2px!important;text-align:center!important}
#billRefTable td:first-child input[type=checkbox]{margin:0!important}

/* FIX91: bill workflow row colors and selected-apartment progress */
.bill-list tr.upload-fixed>td,.bill-list tr.upload-fixed.selected-row>td{background:#fff4b8!important;color:#3f3f46!important}
.bill-list tr.cancel-fixed>td,.bill-list tr.cancel-fixed.selected-row>td{background:#fee2e2!important;color:#991b1b!important}
.bill-list tr.sample-fixed>td,.bill-list tr.sample-fixed.selected-row>td{background:#cfeaff!important;color:#064a91!important}
.bill-list tr.statement-only-fixed>td,.bill-list tr.statement-only-fixed.selected-row>td{background:#eef0f3!important;color:#374151!important}
.apt-preview{grid-template-columns:minmax(330px,1.08fr) minmax(300px,.92fr)!important}
.info-table{min-width:300px!important}
.info-row{grid-template-columns:96px minmax(0,1fr)!important}
.work-progress{display:grid!important;grid-template-columns:repeat(5,1fr);gap:3px;width:100%;min-width:0}
.work-progress i{font-style:normal;font-size:11px;text-align:center;padding:5px 2px;border-radius:4px;background:#e5e7eb;color:#6b7280;white-space:nowrap}
.work-progress i.done{background:#2563eb;color:white;font-weight:700}
.progress-info-row span{max-width:none!important}

/* FIX94 download filters / original files */
.filter-chip.active{outline:2px solid #0755a7;outline-offset:1px}.compact-filter{min-width:110px;max-width:160px}.original-files-panel{margin-top:12px;border-top:1px solid #d3e0ec;padding-top:8px}.original-files-panel h3{margin:0 0 7px;color:#064a91}.local-folder-row,.original-file-row{display:grid;grid-template-columns:120px minmax(0,1fr) 112px;gap:6px;align-items:center;margin:4px 0}.local-folder-row{grid-template-columns:minmax(0,1fr) 140px}.original-file-row span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;border:1px solid #d3e0ec;background:#f8fafc;padding:6px}.bill-check-col{width:38px!important;min-width:38px!important;max-width:38px!important}

/* FIX108 - 고지서 다운로드·출력 기준 화면 */
.bill-page .bill-head{min-height:48px;padding:0 4px;border-bottom:1px solid #d7e3ef}
.bill-page .bill-head>span{color:#60758a;font-size:12px}
.bill-page .bill-head-actions{flex-wrap:wrap;justify-content:flex-end}
.bill-page .filterbar{padding:7px 8px;background:#f7fbff;border:1px solid #c9dced;border-radius:5px}
.bill-page .filter-chip.active{outline:2px solid #1689e8;outline-offset:-2px}
.bill-page .bill-list{border-radius:5px;box-shadow:0 1px 2px #0000000d}
.bill-page .bill-list tbody tr{cursor:pointer}
.bill-page .bill-list tbody tr.selected-row td{background:#c9f2d2!important;color:#14532d!important}
.bill-page .lower-grid>.ref-panel{border-color:#bdd2e8;box-shadow:0 1px 2px #0000000d}
.bill-page .download-grid>div{border:1px solid #d4e2ef;border-radius:5px;padding:12px;background:#fbfdff}
.bill-page .download-grid h2{margin-bottom:12px}
.bill-page .original-files-panel{margin-top:12px;border-top:1px solid #d7e3ef;padding-top:10px}
.bill-page .original-file-row{display:grid;grid-template-columns:100px minmax(0,1fr) 110px;gap:8px;align-items:center;padding:5px 0;border-bottom:1px solid #e7eef5}
.bill-page .local-folder-row{display:flex;gap:8px;align-items:center;margin-bottom:8px}
.bill-page .local-folder-row span{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}

/* FIX171: 작업탭 한 줄 고정 / 단지 상세관리 창 축소 */
.workspace-tabs{flex-wrap:nowrap!important;overflow-x:auto!important;overflow-y:hidden!important;align-items:flex-end!important}
.workspace-tab{flex:0 0 auto!important}
#aptDetail{padding:48px 70px!important}
#aptDetail .big-modal-panel{width:min(1180px,84vw)!important;max-width:1180px!important;height:min(78vh,760px)!important;max-height:78vh!important;overflow:auto!important;margin:auto!important}
@media(max-width:1100px){#aptDetail{padding:28px!important}#aptDetail .big-modal-panel{width:90vw!important;height:82vh!important;max-height:82vh!important}}


/* FIX174: ERP 전체 행높이 공통 적용 - 셀 내부 배지/버튼이 행높이를 강제로 키우지 않음 */
.table:not(.compact-setting-table) table tbody tr,
.miso-scroll-table table tbody tr{height:var(--miso-row-height,20px)!important;min-height:var(--miso-row-height,20px)!important;max-height:var(--miso-row-height,20px)!important}
.table:not(.compact-setting-table) table tbody td,
.miso-scroll-table table tbody td{height:var(--miso-row-height,20px)!important;min-height:var(--miso-row-height,20px)!important;max-height:var(--miso-row-height,20px)!important;line-height:var(--miso-row-height,20px)!important;padding-top:0!important;padding-bottom:0!important;box-sizing:border-box!important}
.table:not(.compact-setting-table) table tbody td .status-badge,
.table:not(.compact-setting-table) table tbody td .count-pill,
.table:not(.compact-setting-table) table tbody td .tag,
.table:not(.compact-setting-table) table tbody td button,
.miso-scroll-table table tbody td .status-badge,
.miso-scroll-table table tbody td .count-pill,
.miso-scroll-table table tbody td .tag,
.miso-scroll-table table tbody td button{min-height:0!important;max-height:calc(var(--miso-row-height,20px) - 2px)!important;height:auto!important;line-height:calc(var(--miso-row-height,20px) - 4px)!important;padding-top:0!important;padding-bottom:0!important;vertical-align:middle!important;box-sizing:border-box!important}
.table:not(.compact-setting-table) table tbody td .status-badge{min-width:0!important;padding-left:6px!important;padding-right:6px!important}
.table:not(.compact-setting-table) table tbody td .count-pill{margin-left:0!important;padding-left:6px!important;padding-right:6px!important}

/* FIX181: 업로드/다운로드 목록에서 사용자가 선택한 행은 상태색보다 녹색 선택색을 우선한다. */
.bill-page .bill-list tbody tr.selected-row>td{background:#c9f2d2!important;color:#14532d!important}

/* FIX191: ERP 전체 업로드/다운로드 버튼 공통색 */
.miso-upload-action{background:#dcfce7!important;color:#166534!important;border-color:#86efac!important}
.miso-download-action{background:#fce7f3!important;color:#9d174d!important;border-color:#f9a8d4!important}
/* 고지서 업로드 상단: 폴더영역 축소, 단지검색 확대 */
.bill-page .upload-top-row{grid-template-columns:minmax(190px,22%) minmax(0,78%)!important}
/* 고지서편집·책자 파일명은 더블클릭 가능 */
.statement-card .file-name-link:not(:disabled){cursor:pointer!important;background:#eef6ff!important}


/* FIX192: 좁은 화면에서도 한글이 세로로 쪼개지지 않고 좌우 폭이 먼저 줄어들도록 ERP 공통 반응형 보정 */
html,body{min-width:0!important}
main,.card,.toolbar,.grid,.formgrid,.bill-page,.lower-grid,.download-grid,.upload-top-row,.file-work-grid,.apt-preview,.ref-panel{min-width:0!important}
button,.btn,.ref-btn,.filter-chip,.workspace-tab,th,td,label,summary,.status-badge,.count-pill,.tag{word-break:keep-all!important;overflow-wrap:normal!important;writing-mode:horizontal-tb!important}
button,.btn,.ref-btn,.filter-chip,.workspace-tab{white-space:nowrap!important}
input,select,textarea{min-width:0!important;max-width:100%}
.table,.miso-scroll-table,.bill-list{max-width:100%!important;overflow-x:auto!important;overflow-y:auto}
.table table,.miso-scroll-table table,.bill-list table{width:100%!important}
.drop-zone div,.drop-zone b,.drop-zone span,.drop-zone small{overflow:hidden!important;text-overflow:ellipsis!important;white-space:nowrap!important;overflow-wrap:normal!important;word-break:keep-all!important;writing-mode:horizontal-tb!important}
@media(max-width:1250px){
 .bill-page .lower-grid{grid-template-columns:minmax(180px,24%) minmax(0,76%)!important}
 .upload-top-row{grid-template-columns:minmax(150px,20%) minmax(0,80%)!important}
 .file-work-grid{grid-template-columns:minmax(220px,55%) minmax(0,45%)!important}
 .apt-preview{grid-template-columns:minmax(230px,38%) minmax(0,62%)!important}
}
@media(max-width:900px){
 .bill-page .lower-grid{grid-template-columns:minmax(150px,22%) minmax(0,78%)!important}
 .upload-top-row{grid-template-columns:minmax(130px,18%) minmax(0,82%)!important}
 .file-work-grid{grid-template-columns:minmax(190px,52%) minmax(0,48%)!important}
 .apt-preview{grid-template-columns:minmax(190px,34%) minmax(0,66%)!important}
}

/* FIX193: 좁은 창 - 항목이 밀려 사라지지 않고 여백/간격/자간부터 축소 */
@media(max-width:1400px){
 .toolbar,.miso-actionbar,.filterbar,.bill-head-actions{gap:clamp(3px,.45vw,8px)!important}
 .toolbar button,.toolbar label,.submenu a,summary,.btn,.ref-btn{letter-spacing:-.15px!important}
}
@media(max-width:1100px){
 .toolbar button,.toolbar label,.submenu a,summary,.btn,.ref-btn,th,td{letter-spacing:-.3px!important}
 .toolbar,.miso-actionbar{padding-left:4px!important;padding-right:4px!important}
}
nav.fixed-menu-groups,nav.fixed-menu-groups details,nav.fixed-menu-groups summary,nav.fixed-menu-groups .submenu,nav.fixed-menu-groups a{min-width:0!important;max-width:100%!important}
nav.fixed-menu-groups summary,nav.fixed-menu-groups a{white-space:nowrap!important;overflow:hidden!important;text-overflow:ellipsis!important;word-break:keep-all!important}

/* FIX200 Excel 공통 작업 버튼 색상 */
.btn.excel-upload{background:#16a34a!important;color:#fff!important;border-color:#16a34a!important}
.btn.excel-upload:hover{background:#15803d!important;border-color:#15803d!important}
.btn.excel-download{background:#2563eb!important;color:#fff!important;border-color:#2563eb!important;text-decoration:none!important}
.btn.excel-download:hover{background:#1d4ed8!important;border-color:#1d4ed8!important}

/* FIX266: 전체 버튼 공통 마우스 오버 녹색 강조 */
button:not(:disabled):hover,
.btn:not(:disabled):hover,
a.btn:hover,
input[type="button"]:not(:disabled):hover,
input[type="submit"]:not(:disabled):hover,
input[type="reset"]:not(:disabled):hover {
  background:#dcfce7!important;
  color:#166534!important;
  border-color:#22c55e!important;
  box-shadow:0 0 0 1px #86efac inset!important;
}

/* UPDATE064: header logo + workspace tab boundary alignment */
.miso-top .miso-brand-logo{display:flex!important;align-items:center!important;justify-content:flex-start!important;width:142px!important;height:42px!important;padding:1px 0!important;overflow:hidden!important;flex:0 0 142px!important}.miso-top .miso-brand-logo img{display:block!important;max-width:138px!important;width:auto!important;height:39px!important;object-fit:contain!important;object-position:left center!important}.workspace-tabs{left:170px!important;right:0!important;padding-left:10px!important}body.sidebar-collapsed .workspace-tabs{left:52px!important}@media(max-width:900px){.workspace-tabs{left:170px!important}body.sidebar-collapsed .workspace-tabs{left:52px!important}}

/* UPDATE065: M mark only + workspace tabs follow actual sidebar/main boundary */
.miso-top .miso-brand-logo{width:58px!important;flex:0 0 58px!important;height:42px!important;overflow:visible!important}
.miso-top .miso-brand-logo img{width:54px!important;max-width:54px!important;height:38px!important;object-fit:contain!important;object-position:center!important}
.workspace-tabs{left:210px!important;right:0!important;padding-left:10px!important}
body.sidebar-collapsed .workspace-tabs{left:52px!important}
@media(max-width:1100px){.workspace-tabs{left:190px!important}body.sidebar-collapsed .workspace-tabs{left:52px!important}}

/* UPDATE066: exact sidebar boundary + compact M logo */
.workspace-tabs{left:170px!important;margin-left:0!important;transform:none!important;box-sizing:border-box!important}
body.sidebar-collapsed .workspace-tabs{left:52px!important}
.miso-top .miso-brand-logo{display:flex!important;width:58px!important;min-width:58px!important;flex:0 0 58px!important;height:42px!important;overflow:visible!important;align-items:center!important;justify-content:center!important}
.miso-top .miso-brand-logo img{display:block!important;width:54px!important;height:38px!important;max-width:54px!important;max-height:38px!important;object-fit:contain!important}

/* UPDATE067: 새 미소기획 상단 로고 + 탭 경계 고정 */
.miso-top .miso-brand-logo{display:flex!important;width:128px!important;min-width:128px!important;flex:0 0 128px!important;height:42px!important;overflow:hidden!important;align-items:center!important;justify-content:flex-start!important}
.miso-top .miso-brand-logo img{display:block!important;width:124px!important;height:40px!important;max-width:124px!important;max-height:40px!important;object-fit:contain!important;object-position:left center!important}
.workspace-tabs{left:170px!important;margin-left:0!important;transform:none!important;box-sizing:border-box!important}
body.sidebar-collapsed .workspace-tabs{left:52px!important}
#aptTable{table-layout:fixed!important;width:max-content!important;min-width:100%!important}
#aptTable .apt-select-col{width:60px!important;min-width:60px!important;max-width:60px!important}

/* UPDATE068: upload toolbars aligned */
#excelUploadForm .miso-actionbar,#aptListCard .miso-actionbar{align-items:center!important} .miso-actionbar .file-name{display:inline-flex;align-items:center;min-height:34px;white-space:nowrap} #excelUploadForm .btn,#aptListCard .miso-actionbar .btn{height:36px!important;display:inline-flex!important;align-items:center!important;justify-content:center!important}

/* UPDATE083: Excel 업로드/다운로드 공통 툴바 - 기능 로직은 유지하고 배치만 통일 */
.miso-excel-bar{display:flex!important;align-items:center!important;gap:8px!important;flex-wrap:nowrap!important;min-height:40px}
.miso-excel-bar .miso-excel-native{display:none!important}
.miso-excel-bar .miso-excel-name{display:inline-flex;align-items:center;min-width:145px;max-width:260px;height:38px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#64748b}
.miso-excel-bar .btn{height:38px!important;display:inline-flex!important;align-items:center!important;justify-content:center!important;white-space:nowrap!important}
@media(max-width:900px){.miso-excel-bar{overflow-x:auto!important}.miso-excel-bar .miso-excel-name{min-width:130px}}

/* UPDATE090: 스마트폰/좁은 화면 공통 가로 압축 규칙
   글자 크기/버튼 높이는 유지하고 좌우 여백 -> 박스 padding -> 항목 gap -> 자간 -> 유동폭 순으로 줄인다. */
@media(max-width:900px){
  main{padding-left:8px!important;padding-right:8px!important}
  .card,.stat,.ref-panel,.modalbox{padding-left:9px!important;padding-right:9px!important}
  .toolbar,.miso-actionbar,.filterbar,.bill-head-actions,.upload-bottom-row{gap:4px!important}
  button,.btn,.ref-btn,.filter-chip,.workspace-tab{
    padding-left:7px!important;padding-right:7px!important;
    letter-spacing:-.35px!important;
    white-space:nowrap!important;word-break:keep-all!important;overflow-wrap:normal!important;
  }
  input,select,textarea,.search{padding-left:6px!important;padding-right:6px!important;letter-spacing:-.2px!important}
  label,summary,.submenu a,th,td{letter-spacing:-.3px!important;word-break:keep-all!important;overflow-wrap:normal!important}
  .toolbar,.miso-actionbar,.filterbar,.bill-head-actions{min-width:0!important;max-width:100%!important}
  .table,.miso-scroll-table,.bill-list{overflow-x:auto!important;-webkit-overflow-scrolling:touch}
  .table table,.miso-scroll-table table,.bill-list table{min-width:max-content!important;width:max-content!important}
  #menuSearch{white-space:nowrap!important;min-width:0!important}
}
@media(max-width:600px){
  main{padding-left:5px!important;padding-right:5px!important}
  .card,.stat,.ref-panel,.modalbox{padding-left:6px!important;padding-right:6px!important}
  .toolbar,.miso-actionbar,.filterbar,.bill-head-actions,.upload-bottom-row{gap:2px!important}
  button,.btn,.ref-btn,.filter-chip,.workspace-tab{
    padding-left:5px!important;padding-right:5px!important;
    letter-spacing:-.5px!important;
  }
  input,select,textarea,.search{padding-left:5px!important;padding-right:5px!important;letter-spacing:-.35px!important}
  label,summary,.submenu a,th,td{letter-spacing:-.45px!important}
}

/* UPDATE090: 단지관리 컬럼 폭은 항목지정설정 서버 저장 px가 절대 기준이다.
   반응형은 주변 UI 간격만 압축하고 aptTable 컬럼 자체를 재분배하지 않는다. */
#aptTable{table-layout:fixed!important;width:max-content!important;min-width:100%!important}
#aptTable th[data-field],#aptTable td{box-sizing:border-box!important;flex:none!important}
\n\n/* UPDATE101: 모바일 상단 한글 세로깨짐 방지 - 글자크기 유지, 좌우 간격/자간 압축 후 가로 스크롤 */
@media(max-width:900px){
  .miso-top{overflow-x:auto!important;overflow-y:hidden!important;gap:5px!important;padding-left:5px!important;padding-right:5px!important;-webkit-overflow-scrolling:touch}
  .miso-top>*{flex-shrink:0!important}
  .miso-top>b{white-space:nowrap!important;word-break:keep-all!important;overflow-wrap:normal!important;letter-spacing:-.8px!important;line-height:1.1!important}
  .miso-top .miso-brand-logo{width:118px!important;min-width:118px!important;flex-basis:118px!important}
  .miso-top .miso-brand-logo img{width:114px!important;max-width:114px!important}
  #erpZoomCtl{margin-left:2px!important;gap:2px!important;white-space:nowrap!important;letter-spacing:-.6px!important}
  #erpZoomCtl span{white-space:nowrap!important;word-break:keep-all!important}
  #erpZoomCtl .btn{min-width:32px!important;width:32px!important;padding-left:2px!important;padding-right:2px!important}
  #erpZoomValue{width:50px!important;min-width:50px!important;padding-left:2px!important;padding-right:2px!important}
  #misoClock,.top-user,.miso-top form{white-space:nowrap!important}
  .workspace-tabs{overflow-x:auto!important;overflow-y:hidden!important;white-space:nowrap!important}
  .workspace-tab,.workspace-tab a{white-space:nowrap!important;word-break:keep-all!important;overflow-wrap:normal!important}
}
@media(max-width:600px){
  .miso-top{gap:3px!important;padding-left:3px!important;padding-right:3px!important}
  .miso-top>b{letter-spacing:-1px!important}
  #erpZoomCtl{gap:1px!important;letter-spacing:-.8px!important}
}

/* UPDATE255: ERP 전체 버튼 비례 스케일링 공통 규칙
   기존/동적 생성 버튼 모두 박스·문구·아이콘·내부 여백을 같은 배율로 처리한다.
   화면 배율(body zoom)과 함께 전체가 한 단위로 확대/축소되며, 개별 화면 JS는 필요 없다. */
:root{--miso-button-scale:1}
button,
.btn,
a.btn,
input[type="button"],
input[type="submit"],
input[type="reset"],
.ref-btn,
.filter-chip,
.upload-tab,
.big-action,
.pe-btn{
  box-sizing:border-box!important;
  font-size:calc(13px * var(--miso-button-scale))!important;
  line-height:1.15!important;
  padding-top:calc(0px * var(--miso-button-scale))!important;
  padding-bottom:calc(0px * var(--miso-button-scale))!important;
  padding-left:calc(10px * var(--miso-button-scale))!important;
  padding-right:calc(10px * var(--miso-button-scale))!important;
  gap:calc(5px * var(--miso-button-scale))!important;
  white-space:nowrap!important;
  word-break:keep-all!important;
  overflow-wrap:normal!important;
}
button img,.btn img,a.btn img,button svg,.btn svg,a.btn svg,
button .icon,.btn .icon,button .ico,.btn .ico{
  width:calc(1em * var(--miso-button-scale));
  height:calc(1em * var(--miso-button-scale));
  max-width:none;
  max-height:none;
  flex:0 0 auto;
}
/* 버튼 안의 별도 span/b/i 문구도 버튼 글자 배율을 그대로 상속 */
button>span,.btn>span,a.btn>span,button>b,.btn>b,button>i,.btn>i{
  font-size:inherit!important;
  line-height:inherit!important;
}

/* UPDATE031: 단지관리 기준 공통 Excel 액션 */
.btn.excel-upload,.btn.miso-excel-upload{background:#16a34a!important;color:#fff!important;border-color:#16a34a!important;border-radius:5px!important;height:34px!important;padding:0 12px!important}
.btn.excel-download,.btn.miso-excel-download{background:#2563eb!important;color:#fff!important;border-color:#2563eb!important;border-radius:5px!important;height:34px!important;padding:0 12px!important}

/* Common list row-height: keep status labels, checkboxes and controls from
   imposing unrelated fixed heights on rows configured in 항목지정설정. */
table.miso-adaptive-rows tbody tr,
table.miso-adaptive-rows tbody td {
  box-sizing: border-box !important;
}
table.miso-adaptive-rows tbody td {
  padding-top: 0 !important;
  padding-bottom: 0 !important;
  line-height: 1 !important;
  vertical-align: middle !important;
}
table.miso-adaptive-rows tbody td :is(
  .status-badge, .badge, .status, .status-pill,
  .btn, button, select, input:not([type="checkbox"]):not([type="radio"])
) {
  box-sizing: border-box !important;
  min-height: 0 !important;
  max-height: var(--miso-row-height, 29px);
  height: auto;
  padding-top: 0 !important;
  padding-bottom: 0 !important;
  line-height: 1 !important;
  vertical-align: middle;
}
table.miso-adaptive-rows tbody td :is(input[type="checkbox"], input[type="radio"]) {
  box-sizing: border-box !important;
  width: min(14px, var(--miso-row-height, 29px)) !important;
  height: min(14px, var(--miso-row-height, 29px)) !important;
  min-width: 0 !important;
  min-height: 0 !important;
  margin-top: 0 !important;
  margin-bottom: 0 !important;
  vertical-align: middle !important;
}
