.vh-field .tw-form-note{padding:12px;background:#fff2da;color:#50360a;font-size:16px;font-weight:700;line-height:1.6}.vh-field .tw-form-line{display:flex;align-items:center;gap:12px;padding:12px;border-bottom:1px solid #d8e1eb;flex-wrap:wrap}.vh-field .tw-form-line strong{font-size:18px;min-width:130px}.vh-field .tw-form-line small{flex:1;color:#52657b;overflow-wrap:anywhere}.vh-field .tw-form-line button,.vh-field .tw-extra-form button{font-size:16px;min-height:46px}.vh-field .tw-extra-form{display:flex;align-items:end;gap:12px;padding:14px;flex-wrap:wrap}.vh-field .tw-extra-form label{display:grid;gap:8px}.vh-field .tw-extra-form input{font-size:18px;padding:12px;border:1px solid #a2b4c8;border-radius:6px}.vh-field [data-today-forms] h4{font-size:18px}.vh-field [data-today-forecast]{padding:14px;margin:12px 0;background:#f3f8fc;border:1px solid #cfdfec;line-height:1.6}.vh-field .tw-forecast-header{display:flex;justify-content:space-between;align-items:center;gap:10px}.vh-field .tw-forecast-line{display:grid;grid-template-columns:1fr auto;gap:4px 12px;padding:10px 0;border-bottom:1px solid #d6e2ef}.vh-field .tw-forecast-line small,.vh-field .tw-forecast-line span{grid-column:1/-1}.vh-field .tw-hour-profile{display:grid;grid-template-columns:repeat(6,1fr);gap:8px;padding:10px}.vh-field .tw-hour-profile span{display:grid;padding:6px;background:white;text-align:center}.vh-field [data-form-status]{color:#8a4209;font-size:16px;font-weight:700}@media(max-width:600px){.vh-field .tw-form-line small{flex-basis:100%}.vh-field .tw-form-line button{width:100%}.vh-field .tw-hour-profile{grid-template-columns:repeat(4,1fr)}}

/* Per-task originals use the same vh-fbtn dimensions as the upload action. */
html.vn .vh-field .vh-ftask .tw-task-download{width:100%;align-self:stretch;}
html.vn .vh-field .vh-ftask .tw-task-download [data-form-status]:empty{display:none;}
html.vn .vh-field .vh-ftask .tw-task-download [data-form-status]{margin:6px 0 0;overflow-wrap:anywhere;}

/* Compact original upload area only; keep task downloads and other menus unchanged. */
html.vn .vh-field .vh-form-upload{padding:10px 12px;}
html.vn .vh-field .vh-form-upload .vh-card-h{margin-bottom:6px;}
html.vn .vh-field .vh-form-upload h4{margin:6px 0;font-size:15px;}
html.vn .vh-field .vh-form-upload .tw-form-note{margin:6px 0;padding:6px 8px;font-size:14px;line-height:1.5;}
html.vn .vh-field .vh-form-upload .tw-form-line{display:grid;grid-template-columns:minmax(100px,160px) auto minmax(0,1fr);grid-template-areas:"name action detail";gap:8px;padding:4px 0;flex-wrap:nowrap;}
html.vn .vh-field .vh-form-upload .tw-form-line strong{grid-area:name;min-width:0;font-size:16px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
html.vn .vh-field .vh-form-upload .tw-form-line button{grid-area:action;width:auto;min-height:40px;padding:6px 10px;font-size:14px;white-space:nowrap;}
html.vn .vh-field .vh-form-upload .tw-form-line small{grid-area:detail;min-width:0;flex-basis:auto;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
html.vn .vh-field .vh-form-upload .tw-extra-form{gap:8px;padding:8px 0;flex-wrap:nowrap;align-items:center;}
html.vn .vh-field .vh-form-upload .tw-extra-form label{display:flex;align-items:center;gap:8px;min-width:0;}
html.vn .vh-field .vh-form-upload .tw-extra-form label span{white-space:nowrap;font-size:14px;}
html.vn .vh-field .vh-form-upload .tw-extra-form input{min-width:0;width:210px;max-width:100%;box-sizing:border-box;padding:8px;font-size:15px;min-height:40px;}
html.vn .vh-field .vh-form-upload .tw-extra-form button{min-height:40px;padding:6px 10px;font-size:14px;white-space:nowrap;flex:none;}
html.vn .vh-field .vh-form-upload [data-form-retry]{min-height:36px;margin-top:0;padding:6px 10px;}
html.vn .vh-field .vh-form-upload [data-form-status]:empty{display:none;}
@media(max-width:600px){
 html.vn .vh-field .vh-form-upload .tw-form-line{grid-template-columns:minmax(0,1fr) auto;grid-template-areas:"name action";gap:6px;}
 html.vn .vh-field .vh-form-upload .tw-form-line small{display:none;}
 html.vn .vh-field .vh-form-upload .tw-extra-form{gap:6px;}
 html.vn .vh-field .vh-form-upload .tw-extra-form label{flex:1;}
 html.vn .vh-field .vh-form-upload .tw-extra-form label span{position:absolute;width:1px;height:1px;padding:0;overflow:hidden;clip-path:inset(50%);white-space:nowrap;}
 html.vn .vh-field .vh-form-upload .tw-extra-form input{width:100%;}
 html.vn .vh-field .vh-form-upload .tw-extra-form button{font-size:13px;padding:6px 8px;}
}
.tw-form-effective{display:flex;align-items:center;gap:10px;margin:8px 0 12px;font-weight:700}.tw-form-effective input{min-height:36px;padding:5px 8px}
.form-workspace{margin:18px 0;padding:16px;border:1px solid #cbd9e8;border-radius:12px;background:#fff}.form-workspace-bar{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin:12px 0}.form-workspace-bar label{display:flex;align-items:center;gap:8px}.form-workspace-scroll{max-height:62vh;overflow:auto;border:1px solid #d4e0eb}.form-workspace table{border-collapse:collapse;table-layout:fixed;width:max-content;min-width:100%;font-size:12px}.form-workspace th,.form-workspace td{border:1px solid #d4e0eb;padding:3px;vertical-align:middle;min-height:25px}.form-workspace thead th,.form-workspace tbody th{position:sticky;background:#eef4fa;z-index:1}.form-workspace thead th{top:0}.form-workspace tbody th{left:0}.form-workspace input[data-form-cell]{width:100%;min-width:0;border:1px solid transparent;background:transparent;font:inherit;color:#173453;padding:3px}.form-workspace input[data-form-cell]:focus{border-color:#3069a0;background:#fff;outline:2px solid #cde4fa}.form-workspace td span{display:block;white-space:pre-wrap;overflow-wrap:anywhere}
.form-workspace [data-form-result]{display:block;min-height:1.6em;padding:4px 6px;text-align:right;font-variant-numeric:tabular-nums;font-weight:600;color:#176242}
.form-workspace [data-form-result]:not([title="계산식 · 입력 불가"]){color:#9a4a18}
.form-html-frame{width:100%;height:68vh;min-height:420px;border:1px solid #cbd9e8;background:#fff}

/* ===== 서식 직접 입력 화면: 원본 Excel과 같은 모양 (.form-workspace 안에서만 적용) =====
   사이트 공통 스타일이 td·input에 !important 로 색·크기·여백·테두리를 강제하므로,
   서버가 읽어 온 원본 값은 CSS 변수(--xl-bg, --xl-color, --xl-fs, --xl-pl)로 넘겨 같은 우선순위에서 쓴다. */
.form-workspace-scroll.xl{background:#fff}
.form-workspace .form-workspace-scroll.xl table{border-collapse:collapse;table-layout:fixed;width:auto;min-width:0;background:#fff}
.form-workspace-scroll.xl th{background:#e6e6e6;color:#444;font-weight:400;font-size:11px;border:1px solid #bdbdbd;text-align:center;position:sticky;top:0;z-index:2}
.form-workspace-scroll.xl tbody th{left:0;z-index:1}
.form-workspace-scroll.xl tr.xl-tiny th{font-size:0 !important;line-height:0 !important;padding:0 !important}
.form-workspace .form-workspace-scroll.xl th,.form-workspace .form-workspace-scroll.xl td{min-height:0}
.form-workspace .form-workspace-scroll.xl td{border:0;overflow:hidden;box-sizing:border-box;height:auto}
body:not(.carwash-mode) .form-workspace-scroll.xl th{padding:0 2px !important;line-height:1.2 !important;height:auto !important}
body:not(.carwash-mode) .form-workspace-scroll.xl td{color:var(--xl-color,#000) !important;background:var(--xl-bg,#fff) !important;font-size:var(--xl-fs,13px) !important;padding:0 2px 0 var(--xl-pl,2px) !important;line-height:1.25 !important}
.form-workspace-scroll.xl td:focus-within{outline:2px solid #217346;outline-offset:-2px}
.form-workspace-scroll.xl td [data-form-result]{display:block;padding:0 1px;min-height:0;font:inherit;color:inherit;text-align:inherit;white-space:inherit}
body:not(.carwash-mode) .form-workspace-scroll.xl .xl-in{width:100%;height:100%;min-height:0 !important;margin:0;padding:0 1px !important;border:0 !important;border-radius:0 !important;background:transparent !important;color:inherit !important;font:inherit !important;text-align:inherit !important;line-height:inherit !important;box-shadow:none !important;outline:0;box-sizing:border-box}
.form-workspace-scroll.xl td.xl-td{position:relative}
body:not(.carwash-mode) .form-workspace-scroll.xl td.xl-td .xl-in{position:absolute;left:0;top:0;right:0;bottom:0;width:100% !important;height:100% !important;padding:0 2px 0 var(--xl-pl,2px) !important}
body:not(.carwash-mode) .form-workspace-scroll.xl select.xl-in{appearance:none;-webkit-appearance:none;padding-right:14px !important;cursor:pointer}
.form-workspace-scroll.xl td.xl-td:has(select.xl-in)::after{content:"▼";position:absolute;right:3px;top:50%;transform:translateY(-50%);font-size:9px;color:#217346;pointer-events:none}

/* ===== 휴대폰에서 깨지던 부분: '시트' 글자 세로 갈라짐, 긴 안내문, 닫기 버튼 줄 ===== */
.form-workspace-bar label{white-space:nowrap;flex:none}
.form-workspace-bar label select{min-width:90px}
body .form-workspace > .station-head{display:flex !important;flex-direction:row !important;align-items:flex-start;justify-content:space-between;gap:10px}
body .form-workspace > .station-head > button{flex:none;width:auto !important;min-height:40px;padding:6px 14px}
.form-help-fold{margin:6px 0 10px}
.form-help-fold>summary{cursor:pointer;font-size:14px;color:#38506a;padding:4px 0}
.form-help-fold .form-help{margin:6px 0 0}

/* 원본서식 규격 안내(관리자 등록 화면): 한 줄 요약, 눌러야 자세히 */
.tw-form-spec{margin:10px 0 14px;padding:10px 14px;border:1px solid #cbd9e8;border-radius:10px;background:#f6f9fd;font-size:14px;line-height:1.5}
.tw-form-spec>strong{display:block;font-size:15px;color:#1d3f66;margin-bottom:4px}
.tw-form-spec ul{margin:0;padding:0;list-style:none}
.tw-form-spec li{border-top:1px solid #dde7f2}.tw-form-spec li:first-child{border-top:0}
.tw-form-spec summary{display:flex;align-items:baseline;gap:10px;padding:7px 0;cursor:pointer;list-style:none}
.tw-form-spec summary::-webkit-details-marker{display:none}
.tw-form-spec summary b{flex:none;min-width:72px;color:#1d3f66}
.tw-form-spec summary span{flex:1;min-width:0;color:#33475b}
.tw-form-spec summary::after{content:"자세히 ▾";flex:none;font-size:12px;color:#5b6b7c}
.tw-form-spec details[open]>summary::after{content:"접기 ▴"}
.tw-form-spec details>p{margin:0 0 8px;padding:8px 10px;background:#fff;border:1px solid #dde7f2;border-radius:8px;font-size:13px;line-height:1.65;color:#33475b}
.form-workspace-bar input[data-form-date]{width:auto;min-width:150px}
.form-workspace .form-help.ledger-note{margin:8px 0;padding:8px 12px;background:#fff6e0;border:1px solid #f0d28a;border-radius:8px;color:#6b4a00;font-weight:600;line-height:1.55}
.closing-workspace-pane[data-closing-pane="input"] [data-form-close]{display:none}
.closing-workspace-pane[data-closing-pane="input"] .form-workspace{border:0;padding:0;box-shadow:none}
html body [data-view="market"]>[data-market-input-card]{order:-3}
[data-market-input-card] [data-form-close]{display:none}
[data-market-input-card] .form-workspace{border:0;padding:0;box-shadow:none}
/* R244 — 드롭박스 목록 글자가 칸의 글자색(흰색 등)을 물려받아 흰 목록에서 안 보이고 마우스를 올려야 보이던 것: 목록 칸은 항상 어두운 글자·흰 바탕, 고른 칸은 연한 파랑 */
.form-workspace-scroll.xl select.xl-in option{color:#1f2d3d !important;background-color:#fff !important;font-weight:400}
.form-workspace-scroll.xl select.xl-in option:checked{background-color:#cfe0ff !important;color:#0b2a5b !important;font-weight:700}
