*{box-sizing:border-box}
:root{--navy:#0f2f57;--blue:#1e5b8f;--line:#dbe3ef;--soft:#f1f5f9;--bg:#eef3f8;--text:#1f2937;--muted:#64748b;--green:#166534;--red:#991b1b;--orange:#92400e;--purple:#5b21b6}
html,body{margin:0;min-height:100%;font-family:"Malgun Gothic",Arial,sans-serif;background:var(--bg);color:var(--text)}
button,input,select,textarea{font:inherit}button{cursor:pointer}.hidden{display:none!important}
.login-page{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:24px;background:radial-gradient(circle at 10% 20%,rgba(30,91,143,.18),transparent 30%),radial-gradient(circle at 90% 80%,rgba(15,47,87,.16),transparent 32%),#e9eff5}
.login-card{width:min(920px,100%);min-height:520px;display:grid;grid-template-columns:1.08fr .92fr;background:#fff;border-radius:24px;overflow:hidden;box-shadow:0 30px 80px rgba(15,23,42,.2)}
.login-brand{padding:48px 42px;background:linear-gradient(145deg,#0f2f57,#1e5b8f);color:#fff;display:flex;flex-direction:column;justify-content:space-between}.login-logo{width:260px;max-width:90%;background:#fff;padding:16px;border-radius:16px}.login-brand h1{font-size:30px;margin:22px 0 10px}.login-brand p{font-size:14px;line-height:1.8;opacity:.88}.login-flow{display:grid;grid-template-columns:repeat(2,1fr);gap:8px}.login-flow span{padding:10px;border:1px solid rgba(255,255,255,.22);border-radius:10px;background:rgba(255,255,255,.1);font-size:12px;text-align:center}
.login-form{padding:46px 42px;display:flex;flex-direction:column;justify-content:center}.login-title h2{margin:0;color:var(--navy);font-size:24px}.login-title p{margin:7px 0 24px;color:var(--muted);font-size:13px}.login-form label{display:block;margin-bottom:14px;color:#475569;font-size:12px;font-weight:900}.login-form input{width:100%;height:44px;margin-top:7px;padding:0 13px;border:1px solid #cbd5e1;border-radius:11px;outline:none}.login-form input:focus{border-color:var(--blue);box-shadow:0 0 0 3px rgba(30,91,143,.12)}.login-message{min-height:21px;margin-top:9px;color:#b91c1c;font-size:12px}.demo-info{margin-top:15px;padding:12px;border:1px solid var(--line);border-radius:11px;background:#f8fafc;color:#475569;font-size:12px;line-height:1.7}
.primary,.light,.danger,.success,.purple,.tonal{height:36px;padding:0 13px;border:0;border-radius:9px;font-size:12px;font-weight:900}.primary{background:#184f7e;color:#fff}.primary:hover{background:#123f66}.primary.large{height:46px;font-size:14px}.light{background:#eef2f7;color:#5b6b7c}.light:hover{background:#cbd5e1}.danger{background:#991b1b;color:#fff}.success{background:#e7eff8;color:#184f7e}.tonal{background:#e7eff8;color:#184f7e}.success:hover,.tonal:hover,.purple:hover{background:#d9e6f4}.small{height:30px;padding:0 10px}
.app-shell{width:min(1440px,calc(100vw - 24px));min-height:calc(100vh - 24px);margin:12px auto;background:#fff;border-radius:18px;overflow:hidden;box-shadow:0 18px 50px rgba(15,23,42,.14)}
.app-header{height:70px;padding:0 20px;display:flex;align-items:center;justify-content:space-between;background:linear-gradient(135deg,#0f2f57,#1e5b8f);color:#fff}.brand-area{display:flex;align-items:center;gap:12px}.header-logo{width:112px;height:42px;object-fit:contain;background:#fff;border-radius:9px;padding:6px}.brand-area b{display:block;font-size:17px}.brand-area span{display:block;margin-top:3px;font-size:11px;opacity:.82}.header-actions{display:flex;align-items:center;gap:8px}.header-btn{height:35px;padding:0 11px;border:1px solid rgba(255,255,255,.24);border-radius:9px;background:rgba(255,255,255,.1);color:#fff;font-size:12px;font-weight:800}.header-count{display:inline-flex;align-items:center;justify-content:center;min-width:18px;height:18px;margin-left:3px;border-radius:999px;background:#fee2e2;color:#991b1b;font-size:10px}.user-chip{min-width:145px;padding:7px 11px;border-radius:10px;background:rgba(255,255,255,.13)}.user-chip b{display:block;font-size:12px}.user-chip span{display:block;margin-top:2px;font-size:10px;opacity:.8}
.app-body{display:grid;grid-template-columns:225px minmax(0,1fr);min-height:calc(100vh - 94px)}.sidebar{padding:12px 10px;background:#f8fafc;border-right:1px solid var(--line);overflow-y:auto}.company-card{padding:11px;margin-bottom:9px;border:1px solid var(--line);border-radius:11px;background:#fff}.company-card b{display:block;color:var(--navy);font-size:12px}.company-card span{display:block;margin-top:5px;color:var(--muted);font-size:10px}.menu-group{margin-bottom:9px}.menu-group-title{padding:8px 9px 5px;color:#94a3b8;font-size:10px;font-weight:900}.menu-item{width:100%;min-height:36px;margin-bottom:3px;padding:0 9px;border:0;border-radius:8px;background:transparent;color:#334155;text-align:left;font-size:12px;font-weight:700}.menu-item:hover{background:#e8f0f8}.menu-item.active{background:#dbeafe;color:#1e40af}.menu-item .icon{display:inline-block;width:23px;text-align:center;color:#64748b}.menu-item.active .icon{color:#1e40af}
.workspace{min-width:0;padding:15px;background:var(--bg)}.page-heading{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px}.page-heading h1{margin:0;color:var(--navy);font-size:20px}.page-heading p{margin:5px 0 0;color:var(--muted);font-size:11px}.page-buttons{display:flex;gap:7px}
.summary-grid{display:grid;grid-template-columns:repeat(6,1fr);gap:9px;margin-bottom:12px}.summary-grid.compact{grid-template-columns:repeat(5,1fr)}.summary-card{padding:11px;border:1px solid var(--line);border-radius:12px;background:#fff}.summary-card span{display:block;color:var(--muted);font-size:10px}.summary-card b{display:block;margin-top:5px;color:var(--navy);font-size:18px}.summary-card small{display:block;margin-top:3px;color:#94a3b8;font-size:9px}
.dashboard-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}.panel{min-width:0;margin-bottom:12px;border:1px solid var(--line);border-radius:14px;background:#fff;overflow:hidden}.panel-title{min-height:44px;padding:0 12px;display:flex;align-items:center;justify-content:space-between;background:#f8fafc;border-bottom:1px solid var(--line)}.panel-title h3{margin:0;color:var(--navy);font-size:13px}.panel-title span{color:var(--muted);font-size:10px}.panel-body{padding:11px}.card-scroll{max-height:255px;overflow-y:auto}.calendar-panel{min-height:345px}.calendar-controls{display:flex;align-items:center;gap:7px}.calendar-controls button{width:28px;height:28px;border:1px solid #cbd5e1;border-radius:7px;background:#fff}.calendar-controls b{font-size:11px;color:#334155}.week-row,.calendar-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:5px}.week-row span{padding:3px 0 7px;text-align:center;color:#64748b;font-size:10px;font-weight:900}.calendar-day{position:relative;min-height:43px;padding:6px;border:1px solid #e2e8f0;border-radius:8px;background:#fff;font-size:10px;cursor:pointer}.calendar-day:hover{background:#eff6ff}.calendar-day.other{color:#cbd5e1;background:#fafafa}.calendar-day.today{border:2px solid #1e5b8f}.calendar-day.selected{background:#dbeafe;border-color:#3b82f6;color:#1e40af;font-weight:900}.day-dots{position:absolute;left:6px;right:6px;bottom:5px;display:flex;gap:3px;flex-wrap:wrap}.day-dot{width:5px;height:5px;border-radius:50%;background:#2563eb}.day-dot.green{background:#16a34a}.day-dot.orange{background:#ea580c}.day-dot.red{background:#dc2626}.day-dot.purple{background:#7c3aed}
.cal-day-head{display:flex;align-items:center;justify-content:space-between;gap:2px;line-height:1}.cal-daynum{font-weight:600}.cal-weather{font-size:11px;line-height:1}.calendar-day.other .cal-weather{opacity:.45}
.cal-weather-region{margin-left:6px;color:var(--muted);font-size:9px;font-weight:700}
.mini-card{margin-bottom:8px;padding:10px;border:1px solid #e2e8f0;border-radius:10px;background:#fff}.mini-card:last-child{margin-bottom:0}.mini-card-top{display:flex;justify-content:space-between;gap:8px}.mini-card h4{margin:0;color:#1e3a5f;font-size:12px}.mini-card p{margin:6px 0 0;color:#64748b;font-size:10px;line-height:1.55}.mini-meta{display:flex;justify-content:space-between;margin-top:7px;color:#475569;font-size:10px}.empty-state{padding:45px 10px;text-align:center;color:#94a3b8;font-size:12px}.flow-panel{margin-top:12px}.business-flow{display:grid;grid-template-columns:repeat(8,1fr);gap:7px}.flow-step{padding:10px 7px;border:1px solid #dbe3ef;border-radius:10px;background:#f8fafc;text-align:center;cursor:pointer}.flow-step:hover{background:#eaf3fb}.flow-step b{display:block;color:var(--navy);font-size:11px}.flow-step span{display:block;margin-top:4px;color:#64748b;font-size:9px}
.module-toolbar{display:grid;grid-template-columns:160px 1fr 100px 100px;gap:8px;padding:11px;margin-bottom:12px;border:1px solid var(--line);border-radius:12px;background:#fff}.module-toolbar input,.module-toolbar select,.form-grid input,.form-grid select,.form-grid textarea,.line-table input,.line-table select{width:100%;border:1px solid #cbd5e1;border-radius:8px;background:#fff;outline:none;font-size:11px}.module-toolbar input,.module-toolbar select{height:35px;padding:0 9px}.module-toolbar input:focus,.module-toolbar select:focus,.form-grid input:focus,.form-grid select:focus,.form-grid textarea:focus{border-color:var(--blue);box-shadow:0 0 0 3px rgba(30,91,143,.1)}
.content-grid{display:grid;grid-template-columns:minmax(0,1fr) 410px;gap:12px}.table-scroll{overflow-x:auto}.data-table{width:100%;border-collapse:collapse;table-layout:fixed;font-size:11px}.wide-table{min-width:1050px}.data-table thead th{height:36px;padding:5px;background:#eaf1f8;color:#15324f;border-bottom:1px solid #cbd5e1;text-align:center}.data-table tbody td{height:36px;padding:6px 7px;border-bottom:1px solid #edf2f7;text-align:center;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.data-table tbody tr{cursor:pointer}.data-table tbody tr:hover{background:#f1f8ff}.data-table tbody tr.active{background:#dff1ff}.data-table tfoot td{height:38px;padding:6px 7px;background:#f8fafc;border-top:2px solid #cbd5e1;font-weight:900}.left{text-align:left!important}.right{text-align:right!important}.pagination{padding:9px 12px;display:flex;justify-content:center;gap:5px}.page-btn{min-width:29px;height:29px;border:1px solid #cbd5e1;border-radius:7px;background:#fff;color:#475569;font-size:10px}.page-btn.active{background:#184f7e;color:#fff;border-color:#184f7e}.sticky-panel{position:sticky;top:10px}.detail-body{min-height:320px;max-height:620px;overflow-y:auto}.detail-grid{display:grid;grid-template-columns:115px 1fr;gap:8px 10px;font-size:11px}.detail-grid dt{color:#64748b;font-weight:900}.detail-grid dd{margin:0;color:#1f2937;word-break:break-word}.detail-section{margin-top:13px;padding-top:11px;border-top:1px dashed #dbe3ef}.detail-section h4{margin:0 0 8px;color:var(--navy);font-size:12px}.detail-line-table{width:100%;border-collapse:collapse;font-size:10px}.detail-line-table th,.detail-line-table td{padding:6px;border-bottom:1px solid #edf2f7;text-align:center}.detail-line-table th{background:#f8fafc;color:#475569}.action-area{padding:10px;border-top:1px solid var(--line);display:grid;grid-template-columns:1fr 1fr;gap:7px}.action-area:empty{display:none}.action-area button{height:34px;border:0;border-radius:8px;font-size:10px;font-weight:900}.related-info{min-height:90px;color:#475569;font-size:11px;line-height:1.7}.rule-box{color:#9a3412;background:#fff7ed;line-height:1.75;font-size:11px}.badge{display:inline-block;padding:3px 8px;border-radius:999px;font-size:9px;font-weight:900;white-space:nowrap}.badge.ok,.badge.green{background:#dcfce7;color:#166534}.badge.warn,.badge.orange{background:#fef3c7;color:#92400e}.badge.bad,.badge.red{background:#fee2e2;color:#991b1b}.badge.blue{background:#dbeafe;color:#1e40af}.badge.gray{background:#e2e8f0;color:#475569}.badge.purple{background:#ede9fe;color:#5b21b6}
.modal{position:fixed;inset:0;z-index:50;display:flex;align-items:center;justify-content:center;padding:18px;background:rgba(15,23,42,.48);backdrop-filter:blur(2px)}.modal-dialog{width:min(1040px,100%);max-height:92vh;overflow-y:auto;border-radius:16px;background:#fff;box-shadow:0 25px 70px rgba(15,23,42,.3)}.small-dialog{width:min(620px,100%)}.modal-header{min-height:65px;padding:14px 18px;display:flex;align-items:center;justify-content:space-between;background:linear-gradient(135deg,#0f2f57,#1e5b8f);color:#fff}.modal-header h2{margin:0;font-size:17px}.modal-header p{margin:4px 0 0;font-size:10px;opacity:.8}.icon-btn{width:34px;height:34px;border:1px solid rgba(255,255,255,.3);border-radius:9px;background:rgba(255,255,255,.1);color:#fff;font-size:22px}.form-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:11px;padding:16px}.form-field{min-width:0}.form-field.full{grid-column:1/-1}.form-field.span2{grid-column:span 2}.form-field label{display:block;margin-bottom:6px;color:#64748b;font-size:10px;font-weight:900}.form-field input,.form-field select{height:37px;padding:0 9px}.form-field textarea{min-height:88px;padding:9px;resize:vertical;line-height:1.55}.line-editor{margin:0 16px 16px;border:1px solid var(--line);border-radius:11px;overflow:hidden}.line-title{height:43px;padding:0 11px;display:flex;align-items:center;justify-content:space-between;background:#f8fafc;border-bottom:1px solid var(--line)}.line-title h3{margin:0;color:var(--navy);font-size:12px}.line-table{width:100%;min-width:850px;border-collapse:collapse;font-size:10px}.line-table th{padding:7px;background:#eaf1f8;color:#15324f}.line-table td{padding:5px;border-bottom:1px solid #edf2f7}.line-table input,.line-table select{height:31px;padding:0 6px}.line-table tfoot td{background:#f8fafc;font-weight:900}.line-remove{width:29px;height:29px;border:0;border-radius:7px;background:#fee2e2;color:#991b1b;font-weight:900}.modal-footer{padding:12px 16px;display:flex;justify-content:flex-end;gap:8px;border-top:1px solid var(--line);background:#f8fafc}.toast{position:fixed;right:22px;bottom:22px;z-index:100;max-width:380px;padding:12px 15px;border-radius:10px;background:#0f2f57;color:#fff;box-shadow:0 12px 35px rgba(15,23,42,.25);font-size:12px}.toast.error{background:#991b1b}.toast.success{background:#166534}
@media(max-width:1100px){.app-body{grid-template-columns:1fr}.sidebar{display:none}.content-grid{grid-template-columns:1fr}.dashboard-grid{grid-template-columns:1fr}.summary-grid,.summary-grid.compact{grid-template-columns:repeat(3,1fr)}.business-flow{grid-template-columns:repeat(4,1fr)}.sticky-panel{position:static}}
@media(max-width:760px){.login-card{grid-template-columns:1fr}.login-brand{display:none}.app-shell{width:100%;margin:0;border-radius:0}.header-actions .header-btn:nth-child(2),.user-chip{display:none}.page-heading{align-items:flex-start}.summary-grid,.summary-grid.compact{grid-template-columns:repeat(2,1fr)}.module-toolbar{grid-template-columns:1fr 1fr}.form-grid{grid-template-columns:1fr}.form-field.span2{grid-column:auto}.business-flow{grid-template-columns:repeat(2,1fr)}}

/* v1.2 목록 상태 강조 / 더블클릭 수정 */
.data-table tbody tr{cursor:default}
.data-table tbody tr[ondblclick]{cursor:pointer}
.status-list-head{background:#dbeafe!important;color:#1e3a8a!important;font-weight:900}
.status-list-cell{background:#f8fbff;font-weight:900}
.status-list-cell .badge{min-width:78px;padding:5px 10px;font-size:10px;text-align:center;box-shadow:inset 0 0 0 1px rgba(15,47,87,.06)}
.readonly-input{background:#f1f5f9!important;color:#475569!important;font-weight:800;cursor:not-allowed}

/* 견적요청/견적서 거래처 카드 */
.quote-info-card{padding:0!important;border:1px solid #b8d2e8;border-radius:13px;background:#f8fbff;overflow:hidden}
.quote-card-title{min-height:54px;padding:11px 13px;display:flex;align-items:center;justify-content:space-between;gap:12px;background:linear-gradient(135deg,#eaf4fc,#f8fbff);border-bottom:1px solid #cfe0ee}
.quote-card-title b{display:block;color:#0f2f57;font-size:13px}
.quote-card-title span{display:block;margin-top:4px;color:#64748b;font-size:10px;line-height:1.45}
.quote-card-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:10px;padding:12px}
.quote-card-grid.five{grid-template-columns:repeat(6,minmax(0,1fr))}
.quote-card-grid .site-field{grid-column:span 2}
.quote-card-grid input{width:100%;height:37px;padding:0 9px;border:1px solid #cbd5e1;border-radius:8px;background:#fff;font-size:11px;outline:none}
.quote-card-grid input:focus{border-color:#1e5b8f;box-shadow:0 0 0 3px rgba(30,91,143,.1)}
.quote-card-notice{padding:8px 12px;border-top:1px dashed #cfe0ee;background:#fff;color:#475569;font-size:10px;line-height:1.55}
.quote-card-notice b{color:#174b78}

/* 거래처 카드 검색 팝업 */
.lookup-dialog{width:min(920px,100%)}
.lookup-body{padding:14px}
.lookup-search-row{display:grid;grid-template-columns:1fr 90px;gap:8px;margin-bottom:12px}
.lookup-search-row input{width:100%;height:38px;padding:0 11px;border:1px solid #cbd5e1;border-radius:9px;font-size:12px;outline:none}
.lookup-search-row input:focus{border-color:#1e5b8f;box-shadow:0 0 0 3px rgba(30,91,143,.1)}
.lookup-results{max-height:310px;overflow-y:auto;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px;padding:2px 2px 12px}
.lookup-card{height:auto;min-height:92px;padding:11px;border:1px solid #dbe3ef;border-radius:11px;background:#fff;color:#1f2937;text-align:left;transition:.15s}
.lookup-card:hover{border-color:#5f91ba;background:#f1f8ff;transform:translateY(-1px);box-shadow:0 7px 18px rgba(15,47,87,.08)}
.lookup-card-top{display:flex;align-items:center;justify-content:space-between;gap:8px}
.lookup-card-top b{color:#0f2f57;font-size:12px}
.lookup-card-top span{padding:3px 7px;border-radius:999px;background:#e2e8f0;color:#475569;font-size:9px;font-weight:800}
.lookup-card-info{display:grid;gap:4px;margin-top:9px;color:#64748b;font-size:10px;line-height:1.35}
.lookup-manual{border:1px solid #dbe3ef;border-radius:12px;background:#f8fafc;overflow:hidden}
.lookup-manual-title{padding:10px 12px;border-bottom:1px solid #dbe3ef;background:#eef4f9}
.lookup-manual-title b{display:block;color:#0f2f57;font-size:12px}
.lookup-manual-title span{display:block;margin-top:3px;color:#64748b;font-size:9px}
.lookup-form-grid{padding:12px;grid-template-columns:repeat(3,1fr)}

@media(max-width:900px){
  .quote-card-grid,.quote-card-grid.five{grid-template-columns:repeat(2,minmax(0,1fr))}
  .quote-card-grid .site-field{grid-column:span 2}
  .lookup-results{grid-template-columns:1fr}
}

/* v1.2.1 requested-change correction */
.data-table tbody tr.editable-row{cursor:zoom-in}
.status-list-head{font-size:11px!important;letter-spacing:.02em}
.status-list-cell .badge{min-width:92px;padding:6px 12px;font-size:11px;line-height:1.15}
.status-list-head.status-primary,.status-list-cell.status-primary{position:sticky;left:94px;z-index:3}
.status-list-head.status-primary{z-index:5;box-shadow:3px 0 7px rgba(15,47,87,.08)}
.status-list-cell.status-primary{box-shadow:3px 0 7px rgba(15,47,87,.05)}
.data-table tbody tr.active .status-list-cell.status-primary{background:#dff1ff}
.quote-card-grid{grid-template-columns:140px 1.3fr 1fr 1fr 1.5fr}
.quote-card-grid.quote-card-six{grid-template-columns:150px 145px 1.25fr 1fr 1fr 1.5fr}
.quote-card-grid.contract-card-grid{grid-template-columns:160px minmax(240px,1.2fr) minmax(240px,1.4fr)}
.quote-card-grid .site-field{grid-column:auto}
.document-detail-field label{color:#1e40af}
.lookup-empty{grid-column:1/-1;min-height:100px;padding:24px;border:1px dashed #cbd5e1;border-radius:11px;background:#f8fafc;text-align:center;color:#64748b}
.lookup-empty b{display:block;color:#334155;font-size:12px}
.lookup-empty span{display:block;margin-top:7px;font-size:10px;line-height:1.6}
.version-fix-chip{display:inline-flex;align-items:center;height:24px;margin-left:8px;padding:0 9px;border-radius:999px;background:#dcfce7;color:#166534;font-size:9px;font-weight:900;vertical-align:middle}
@media(max-width:1200px){
  .quote-card-grid,.quote-card-grid.quote-card-six,.quote-card-grid.contract-card-grid{grid-template-columns:repeat(3,minmax(0,1fr))}
}
@media(max-width:760px){
  .quote-card-grid,.quote-card-grid.quote-card-six,.quote-card-grid.contract-card-grid{grid-template-columns:1fr}
  .status-list-head.status-primary,.status-list-cell.status-primary{position:static}
}

/* v1.3 할인율 / 견적서·계약서 PDF·인쇄 */
.purple{border:0;border-radius:9px;background:#e7eff8;color:#184f7e;font-size:12px;font-weight:900}
.discount-toolbar{padding:11px;border-bottom:1px solid var(--line);background:#fffdf5}
.discount-toolbar-inner{display:grid;grid-template-columns:minmax(210px,1fr) auto auto;gap:12px;align-items:center}
.discount-toolbar-label b{display:block;color:#713f12;font-size:11px}.discount-toolbar-label span{display:block;margin-top:3px;color:#92400e;font-size:9px;line-height:1.45}
.discount-preset-buttons{display:flex;gap:5px;flex-wrap:wrap}.discount-preset{height:31px;padding:0 9px;border:1px solid #d6c7a6;border-radius:8px;background:#fff;color:#6b4e16;font-size:10px;font-weight:900}.discount-preset:hover,.discount-preset.active{border-color:#b45309;background:#ffedd5;color:#9a3412}
.discount-manual{display:flex;align-items:center;gap:6px}.discount-manual label{color:#713f12;font-size:10px;font-weight:900}.discount-manual input{width:78px;height:31px;padding:0 7px;border:1px solid #d6c7a6;border-radius:8px;text-align:right}
.line-table{min-width:1260px}.line-discount-input{display:flex;align-items:center;gap:3px}.line-discount-input input{min-width:64px;text-align:right}.line-discount-input span{font-weight:900;color:#9a3412}.calculated-money{min-width:78px;padding:7px 4px;border-radius:6px;background:#f8fafc;color:#0f2f57;font-weight:800}
.print-preview-modal{z-index:70}.print-dialog{width:min(1180px,100%);height:94vh;max-height:94vh;display:flex;flex-direction:column;overflow:hidden}.print-preview-scroll{flex:1;overflow:auto;padding:22px;background:#dce5ef}.print-footer{align-items:center}.print-help{margin-right:auto;color:#64748b;font-size:10px}
.document-sheet{width:210mm;min-height:297mm;margin:0 auto;padding:13mm;background:#fff;color:#111;box-shadow:0 10px 35px rgba(15,23,42,.2);font-family:"Malgun Gothic",Arial,sans-serif}
.doc-company-head{display:grid;grid-template-columns:46mm 1fr;align-items:center;padding-bottom:5mm;border-bottom:2px solid #173f66}.doc-company-head img{max-width:40mm;max-height:16mm;object-fit:contain}.doc-company-info{text-align:right;font-size:10pt;line-height:1.55}.doc-title{text-align:center;font-size:24pt;letter-spacing:8px;margin:9mm 0 6mm;color:#102f51}
.doc-info-table,.doc-item-table,.doc-total-table,.doc-sign-table{width:100%;border-collapse:collapse;font-size:9pt}.doc-info-table th,.doc-info-table td,.doc-item-table th,.doc-item-table td,.doc-total-table th,.doc-total-table td,.doc-sign-table th,.doc-sign-table td{border:1px solid #9caec0;padding:7px 8px}.doc-info-table th{width:14%;background:#eaf1f8;text-align:center}.doc-info-table td{width:36%}.doc-section-title{font-weight:800;margin:5mm 0 2mm;color:#173f66}.doc-item-table th{background:#173f66;color:#fff;text-align:center}.doc-item-table td{text-align:right}.doc-item-table td:nth-child(2){text-align:left}.doc-item-table td:first-child{text-align:center}.doc-total-wrap{display:flex;justify-content:flex-end;margin-top:4mm}.doc-total-table{width:92mm}.doc-total-table th{text-align:left;background:#f6f8fb}.doc-total-table td{text-align:right;font-weight:700}.doc-total-table tr:last-child th,.doc-total-table tr:last-child td{background:#eaf1f8;font-size:11pt}.doc-note{margin-top:5mm;border:1px solid #9caec0;min-height:22mm;padding:8px;font-size:9pt;line-height:1.6;white-space:pre-wrap}.doc-footer-text{margin-top:6mm;text-align:right;font-size:10pt;line-height:1.8}.doc-terms{font-size:8.5pt;line-height:1.7;margin:4mm 0}.doc-sign-table th{background:#eaf1f8}.doc-sign-table td{height:32mm;vertical-align:top;line-height:1.8}.discount-mark{font-weight:800;color:#b42318}
@media(max-width:1100px){.discount-toolbar-inner{grid-template-columns:1fr}.print-preview-scroll{padding:10px}.document-sheet{transform-origin:top left}}


/* v1.3.1 품목 복수선택 / 수량 입력 축소 */
.line-title-actions{display:flex;align-items:center;gap:7px}
.discount-toolbar-label em{display:inline-flex;align-items:center;height:22px;margin-top:6px;padding:0 8px;border-radius:999px;background:#ffedd5;color:#9a3412;font-size:9px;font-style:normal;font-weight:900}
.line-table th.line-select-col,.line-table td.line-select-col,.line-table th.line-quantity-col,.line-table td.line-quantity-col{width:54px;min-width:54px;max-width:54px;padding-left:3px;padding-right:3px;text-align:center}
.line-quantity-input{width:54px!important;min-width:54px!important;max-width:54px!important;padding:0 3px!important;text-align:center}
.line-select-box{width:54px;height:31px;margin:0 auto;display:flex;align-items:center;justify-content:center;border:1px solid #cbd5e1;border-radius:8px;background:#fff;cursor:pointer}
.line-select-box:hover{border-color:#1e5b8f;background:#eff6ff}
.line-select-box input{width:16px!important;height:16px!important;margin:0;padding:0;accent-color:#184f7e;cursor:pointer}
.line-select-box.line-select-all{background:#f8fafc}


/* v1.3.2 기본단가 보존 / 단가 할인 */
.calculated-money.base-unit-price{background:#eef4f9;color:#475569}
.applied-price{font-weight:900;color:#1e40af}
.discount-preset[data-rate="0"]{border-color:#64748b;background:#f1f5f9;color:#334155}
.discount-preset[data-rate="0"].active,.discount-preset[data-rate="0"]:hover{border-color:#0f2f57;background:#dbeafe;color:#1e3a8a}

/* v1.4 전체 목록 선택 / 작성내용 미리보기 / 품목 사진 */
.record-select-col{width:46px!important;min-width:46px!important;max-width:46px!important;padding:3px!important;text-align:center!important;position:sticky;left:0;z-index:4;background:#fff}
thead .record-select-col{z-index:7;background:#eef4f9}
tbody tr.active .record-select-col{background:#dff1ff}
.record-select-box{width:36px;height:31px;margin:0 auto;display:flex;align-items:center;justify-content:center;border:1px solid #cbd5e1;border-radius:8px;background:#fff;cursor:pointer}
.record-select-box:hover{border-color:#1e5b8f;background:#eff6ff}.record-select-box input{width:16px;height:16px;margin:0;accent-color:#184f7e;cursor:pointer}
.status-list-head.status-primary,.status-list-cell.status-primary{left:94px}
.list-thumbnail{width:48px;height:38px;border-radius:7px;object-fit:cover;border:1px solid #d7e0ea;background:#f8fafc;display:block;margin:0 auto}
.image-empty{font-size:9px;color:#94a3b8}
.detail-grid dd .list-thumbnail{width:150px;height:105px;margin:4px 0;object-fit:contain;background:#fff}
.item-image-editor{display:grid;grid-template-columns:220px 1fr;gap:16px;align-items:center;padding:14px;border:1px solid #dbe3ef;border-radius:12px;background:#f8fafc}
.item-image-preview{width:220px;height:150px;display:flex;align-items:center;justify-content:center;border:1px dashed #b8c7d9;border-radius:10px;background:#fff;overflow:hidden;color:#94a3b8;font-size:11px}
.item-image-preview img{width:100%;height:100%;object-fit:contain}.item-image-actions{display:grid;gap:9px;align-content:center}.item-image-actions input[type=file]{width:100%;padding:8px;border:1px solid #cbd5e1;border-radius:8px;background:#fff}.item-image-actions small{color:#64748b;line-height:1.55}.item-image-actions button{justify-self:start}
.editor-modal-footer{gap:8px;flex-wrap:wrap}.editor-preview-help{margin-right:auto;color:#64748b;font-size:10px}
.generic-doc-title{text-align:center;font-size:21pt;font-weight:900;letter-spacing:1px;margin:9mm 0 2mm;color:#102f51}.generic-doc-meta{text-align:right;color:#64748b;font-size:8pt;margin-bottom:4mm}.generic-info-table td{white-space:pre-wrap;word-break:break-word}.generic-photo-wrap{margin-top:5mm}.generic-photo{display:block;max-width:110mm;max-height:75mm;object-fit:contain;border:1px solid #cbd5e1;padding:3mm;background:#fff}
@media(max-width:760px){.item-image-editor{grid-template-columns:1fr}.item-image-preview{width:100%}.editor-preview-help{width:100%;margin-right:0}.status-list-head.status-primary,.status-list-cell.status-primary{left:auto}}
.record-no-col{width:48px!important;min-width:48px!important;max-width:48px!important;position:sticky;left:46px;z-index:3;background:#fff;text-align:center!important}
thead .record-no-col{z-index:6;background:#eef4f9}tbody tr.active .record-no-col{background:#dff1ff}


/* v1.4.3 A4 자동맞춤 / 페이지 단위 인쇄 */
.print-preview-body{width:100%}.document-pages{display:flex;flex-direction:column;align-items:center;gap:18px}.document-page{position:relative;width:210mm;height:297mm;min-height:297mm;padding:10mm 11mm 14mm;background:#fff;color:#111;overflow:hidden;box-shadow:0 10px 35px rgba(15,23,42,.2);break-after:page;page-break-after:always;font-family:"Malgun Gothic",Arial,sans-serif}.document-page:last-child{break-after:auto;page-break-after:auto}.document-page-inner{position:relative;transform-origin:top left}.document-page-auto{height:auto;min-height:297mm;overflow:visible}.document-page .doc-company-head{grid-template-columns:43mm 1fr;padding-bottom:3.5mm;border-bottom-width:1.7px}.document-page .doc-company-head img{max-width:37mm;max-height:14mm}.document-page .doc-company-info{font-size:8.5pt;line-height:1.42}.document-page .doc-title{font-size:20pt;margin:5mm 0 4mm}.document-page .doc-info-table,.document-page .doc-item-table,.document-page .doc-total-table,.document-page .doc-sign-table{font-size:8pt}.document-page .doc-info-table th,.document-page .doc-info-table td,.document-page .doc-item-table th,.document-page .doc-item-table td,.document-page .doc-total-table th,.document-page .doc-total-table td,.document-page .doc-sign-table th,.document-page .doc-sign-table td{padding:4px 5px}.document-page .doc-section-title{display:flex;justify-content:space-between;align-items:center;margin:3.2mm 0 1.5mm}.document-page .doc-section-title small{font-size:7.3pt;color:#64748b}.document-page .doc-item-table{table-layout:fixed}.document-page .doc-item-table thead{display:table-header-group}.document-page .doc-item-table tr{break-inside:avoid;page-break-inside:avoid}.document-page .doc-item-table td{vertical-align:middle;word-break:break-word}.document-page .doc-total-wrap{margin-top:2.5mm}.document-page .doc-total-table{width:86mm}.document-page .doc-total-table tr:last-child th,.document-page .doc-total-table tr:last-child td{font-size:10pt}.document-page .doc-note{margin-top:1.5mm;min-height:15mm;padding:6px;font-size:8pt;line-height:1.45}.document-page .doc-footer-text{margin-top:3mm;font-size:8.5pt;line-height:1.55}.document-page .doc-terms{font-size:7.4pt;line-height:1.45;margin:2mm 0}.document-page .doc-sign-table td{height:24mm;line-height:1.55}.doc-closing-block,.document-page .doc-sign-table,.document-page .doc-total-table,.document-page .doc-note{break-inside:avoid;page-break-inside:avoid}.doc-continuation-head{display:grid;grid-template-columns:34mm 1fr auto;gap:7mm;align-items:center;padding-bottom:3mm;border-bottom:1.5px solid #173f66}.doc-continuation-head img{max-width:30mm;max-height:11mm}.doc-continuation-title b{display:block;font-size:13pt;color:#102f51}.doc-continuation-title span,.doc-continuation-meta{font-size:7.5pt;line-height:1.45;color:#475569}.doc-continuation-meta{text-align:right}.doc-continue-note{margin-top:4mm;text-align:right;font-size:7.5pt;color:#64748b}.doc-page-footer{position:absolute;left:11mm;right:11mm;bottom:5mm;display:flex;justify-content:space-between;align-items:center;padding-top:2mm;border-top:1px solid #dbe3ec;color:#64748b;font-size:7pt}
@media(max-width:1100px){.document-page{transform-origin:top center}.print-preview-scroll{overflow:auto}}


/* v1.4.4 견적·계약 품목 초성/관련어 검색 */
.item-line-search{min-width:245px;display:grid;grid-template-columns:minmax(160px,1fr) 46px;gap:4px;align-items:center}
.item-line-search-input{min-width:0!important;padding:0 7px!important}
.item-line-search-button{height:31px;border:1px solid #93b3cf;border-radius:7px;background:#eef6ff;color:#174f7e;font-size:9px;font-weight:900;cursor:pointer}
.item-line-search-button:hover{background:#dbeeff;border-color:#1e5b8f}
.item-lookup-modal{z-index:82}
.item-lookup-dialog{width:min(940px,100%);display:flex;max-height:90vh;flex-direction:column;overflow:hidden}
.item-lookup-body{padding:14px 16px 16px;overflow:auto}
.item-lookup-search-row{display:grid;grid-template-columns:minmax(0,1fr) 86px 60px;gap:8px;align-items:center}
.item-lookup-search-row input{height:39px;padding:0 11px;border:1px solid #b8c7d8;border-radius:9px;font-size:12px;outline:none}
.item-lookup-search-row input:focus{border-color:#1e5b8f;box-shadow:0 0 0 3px rgba(30,91,143,.12)}
.item-lookup-count{font-size:11px;font-weight:900;color:#184f7e;text-align:center}
.item-lookup-guide{margin:9px 0 11px;padding:8px 10px;border-radius:8px;background:#eff6ff;color:#315b7b;font-size:10px}
.item-lookup-results{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px;max-height:500px;overflow:auto;padding:2px}
.item-lookup-card{min-width:0;display:grid;grid-template-columns:76px minmax(0,1fr);gap:10px;align-items:center;padding:9px;border:1px solid #d9e3ed;border-radius:11px;background:#fff;text-align:left;cursor:pointer}
.item-lookup-card:hover{border-color:#2b6c9f;background:#f2f8fd;box-shadow:0 5px 14px rgba(30,91,143,.11)}
.item-lookup-photo{width:76px;height:61px;display:flex;align-items:center;justify-content:center;overflow:hidden;border-radius:8px;background:#edf2f7;color:#94a3b8;font-size:9px}
.item-lookup-photo img{width:100%;height:100%;object-fit:cover}
.item-lookup-info{min-width:0;display:flex;flex-direction:column;gap:4px}
.item-lookup-info b{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#102f50;font-size:12px}
.item-lookup-info small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#64748b;font-size:9px}
.item-lookup-info em{color:#166534;font-size:10px;font-style:normal;font-weight:800}
.item-lookup-info .item-lookup-memo{color:#7c3d12}
.item-lookup-empty{grid-column:1/-1;min-height:150px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:7px;border:1px dashed #cbd5e1;border-radius:11px;color:#64748b}
.item-lookup-empty b{color:#334155;font-size:13px}
.item-lookup-empty span{font-size:10px}
@media(max-width:760px){.item-lookup-results{grid-template-columns:1fr}.item-line-search{min-width:210px}.item-lookup-search-row{grid-template-columns:1fr 72px}.item-lookup-count{grid-column:1/-1;text-align:left}}


/* v1.4.5 견적요청 납품희망·18시간 긴급 표시 */
.status-badge-stack{display:inline-flex;align-items:center;justify-content:center;gap:6px;flex-wrap:wrap}
.urgent-status-badge{display:inline-flex;align-items:center;gap:4px;min-height:26px;padding:3px 9px;border:1px solid #ef4444;border-radius:999px;background:#fff1f2;color:#b91c1c;font-size:12px;font-weight:800;white-space:nowrap;box-shadow:0 1px 2px rgba(185,28,28,.08)}
.urgent-status-badge span{font-size:14px;line-height:1}
.urgent-summary-card{border-color:#fecaca;background:linear-gradient(180deg,#fff7f7,#fff1f2)}
.urgent-summary-card span,.urgent-summary-card b{color:#b91c1c}
.urgent-detail-notice{display:flex;align-items:center;gap:12px;margin:0 0 14px;padding:12px 14px;border:1px solid #fecaca;border-radius:12px;background:#fff7f7}
.urgent-detail-notice>div{display:flex;flex-direction:column;gap:2px}.urgent-detail-notice b{color:#991b1b}.urgent-detail-notice span{font-size:12px;color:#7f1d1d}
.field-help{display:block;margin-top:6px;font-size:11px;line-height:1.45;color:#64748b}.urgent-rule-help{color:#b45309}

/* v1.4.5.2 기반 강제저장 확인요망 */
.required-mark{margin-left:3px;color:#dc2626;font-weight:900}.field-invalid{border-color:#dc2626!important;box-shadow:0 0 0 3px rgba(220,38,38,.12)!important;background:#fff7f7!important}


/* v1.4.5.5 내부 ID 숨김 / 계약관리 거래처 Enter 자동검색 */
.quote-card-title{grid-template-columns:1fr!important}.quote-card-title>button{display:none!important}.quote-card-notice b{color:#174f7e}.auto-search-note{color:#315b7b}


/* v1.4.5.5 견적·계약 신규 거래처 현재화면 간편등록 */
.quick-client-modal{z-index:65}
.quick-client-dialog{width:min(760px,100%)}
.quick-client-guide{margin:16px 16px 0;padding:12px 14px;border:1px solid #bfdbfe;border-radius:10px;background:#eff6ff;color:#1e3a5f;display:flex;flex-direction:column;gap:3px;font-size:11px}
.quick-client-guide b{font-size:12px}.quick-client-guide span{color:#52708c}
.quick-client-grid{grid-template-columns:repeat(3,1fr)}
@media(max-width:760px){.quick-client-grid{grid-template-columns:1fr}.quick-client-grid .span2,.quick-client-grid .full{grid-column:1}}

/* v1.4.6 견적→계약·계약→출고 직행 / 출고 재고 체크리스트 */
.stock-check-notice{display:flex;align-items:center;gap:11px;margin:0 0 14px;padding:12px 14px;border:1px solid #cbd5e1;border-radius:12px;background:#f8fafc}
.release-sourcing-card{margin:0 0 14px;padding:11px 13px;border:1px dashed #f0c674;border-radius:12px;background:#fffaf0}
.release-sourcing-card.has-short{border-color:#fca5a5;background:#fff5f5}
.release-sourcing-head{display:flex;flex-direction:column;gap:2px;font-weight:800;color:#92400e;font-size:12px}
.release-sourcing-card.has-short .release-sourcing-head{color:#991b1b}
.release-sourcing-head span{font-weight:600;color:#78716c;font-size:10px}
.release-sourcing-list{list-style:none;margin:9px 0 0;padding:0;display:flex;flex-direction:column;gap:5px}
.release-sourcing-list li{font-size:11px;color:#334155;display:flex;align-items:center;gap:6px;flex-wrap:wrap}
.release-sourcing-list em{color:#78716c;font-style:normal}
.src-badge{display:inline-block;padding:1px 8px;border-radius:999px;background:#f59e0b;color:#fff;font-size:9px;font-weight:800}
.src-badge.red{background:#dc2626}
.src-badge.green{background:#16a34a}
.release-sourcing-card.is-actual{border-style:solid;border-color:#bbf7d0;background:#f0fdf4}
.release-sourcing-card.is-actual .release-sourcing-head{color:#166534}
.transfer-needs{margin-bottom:12px;display:flex;flex-direction:column;gap:6px}
.transfer-needs-empty{padding:9px 11px;border:1px solid #e2e8f0;border-radius:9px;background:#f8fafc;color:#64748b;font-size:11px}
.transfer-needs-head{font-weight:800;color:#92400e;font-size:12px;display:flex;flex-direction:column;gap:2px}
.transfer-needs-head span{font-weight:600;color:#78716c;font-size:10px}
.transfer-need{display:flex;align-items:center;justify-content:space-between;gap:9px;padding:8px 11px;border:1px dashed #f0c674;border-radius:9px;background:#fffaf0}
.transfer-need.short{border-color:#fca5a5;background:#fff5f5}
.transfer-need-main{font-size:11px;color:#334155}.transfer-need-main small{color:#94a3b8;margin-left:4px}
.transfer-need-meta{margin-top:3px}.transfer-need-src{margin-top:2px;color:#78716c;font-size:10px}
.transfer-need button{white-space:nowrap;flex-shrink:0}
.empty-state-guide{padding:34px 18px;text-align:center}
.empty-state-guide .es-title{font-size:13px;font-weight:900;color:#334155;margin-bottom:6px}
.empty-state-guide .es-hint{font-size:11px;color:#64748b;line-height:1.75;max-width:460px;margin:0 auto}
.empty-state-guide .es-hint b{color:#184f7e}
.staff-payroll-section .payroll-head{display:flex;align-items:center;justify-content:space-between;gap:9px;margin-bottom:6px}
.payroll-badge{display:inline-block;padding:1px 8px;border-radius:999px;background:#dc2626;color:#fff;font-size:9px;font-weight:800;vertical-align:middle}
.payroll-actions{display:flex;gap:6px}
.payroll-note{display:block;margin-top:6px;color:#94a3b8;font-size:10px}
.payroll-lock{display:block;margin-top:4px;color:#b45309;font-size:10px}
.labor-settle-controls{display:inline-flex;align-items:center;gap:8px;flex-wrap:wrap}
.labor-settle-controls label{font-size:11px;color:#475569;display:inline-flex;align-items:center;gap:4px}
.labor-settle-controls input[type=month]{height:30px;border:1px solid #cbd5e1;border-radius:7px;padding:0 7px}
.labor-settle-totals{font-size:11px;font-weight:700;color:#163d63}
.day-schedule-body{padding:4px 2px}
.day-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
.day-sec{border:1px solid var(--line);border-radius:10px;padding:9px 11px;background:#f8fafc}
.day-sec h4{margin:0 0 6px;font-size:12px;color:#163d63;display:flex;align-items:center;gap:6px}
.day-sec h4 span{background:#1e5b8f;color:#fff;border-radius:999px;padding:0 7px;font-size:10px}
.day-sec ul{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:4px;max-height:180px;overflow-y:auto}
.day-sec li{font-size:11px;color:#334155;line-height:1.4}
.day-sec li small{color:#94a3b8}
.day-empty{color:#94a3b8;font-size:11px;margin:0}
.day-foot{margin-top:10px;padding:9px 12px;border:1px solid #bae6fd;background:#f0f9ff;border-radius:9px;font-size:11px;color:#0c4a6e;font-weight:700}
@media(max-width:760px){.day-grid{grid-template-columns:1fr}}
.day-warn{margin:0 0 10px;padding:9px 12px;border:1px solid #fca5a5;background:#fff5f5;border-radius:9px;color:#991b1b;font-size:11px;font-weight:700}
.day-conflict{color:#991b1b}
.day-conflict-tag{background:#dc2626;color:#fff;border-radius:999px;padding:0 6px;font-size:9px;font-weight:800}
.resource-board-toolbar{display:flex;align-items:center;gap:8px;margin:2px 0 10px;font-size:11px;color:#475569}
.resource-board-toolbar input[type=month]{height:30px;border:1px solid #cbd5e1;border-radius:7px;padding:0 7px}
.rb-scroll{overflow:auto;max-height:60vh;border:1px solid var(--line);border-radius:10px}
.rb-table{border-collapse:collapse;font-size:10px;white-space:nowrap}
.rb-table th,.rb-table td{border:1px solid #e2e8f0;text-align:center;min-width:26px;height:30px;padding:2px}
.rb-table thead th{position:sticky;top:0;background:#f1f5f9;color:#334155;z-index:2}
.rb-table th.rb-sun{color:#dc2626}.rb-table th.rb-sat{color:#2563eb}
.rb-name{position:sticky;left:0;background:#f8fafc;text-align:left;padding:0 8px;min-width:88px;font-weight:700;color:#163d63;z-index:1}
.rb-table thead .rb-name{z-index:3}
.rb-on{background:#dbeafe;color:#1e40af;font-weight:800;cursor:default}
.rb-conflict{background:#fee2e2;color:#991b1b}
.stock-check-notice .stock-check-icon{width:34px;height:34px;display:flex;align-items:center;justify-content:center;border-radius:50%;font-size:18px;font-weight:900;background:#e2e8f0;color:#334155}
.stock-check-notice>div:last-child{display:flex;flex-direction:column;gap:2px}.stock-check-notice b{font-size:12px}.stock-check-notice span{font-size:10px;color:#64748b}
.stock-check-notice.complete{border-color:#bbf7d0;background:#f0fdf4}.stock-check-notice.complete .stock-check-icon{background:#dcfce7;color:#166534}.stock-check-notice.complete b{color:#166534}
.stock-check-notice.shortage{border-color:#fecaca;background:#fff7f7}.stock-check-notice.shortage .stock-check-icon{background:#fee2e2;color:#b91c1c}.stock-check-notice.shortage b{color:#991b1b}
.stock-check-modal{z-index:88}.stock-check-dialog{width:min(1180px,100%);max-height:94vh;display:flex;flex-direction:column;overflow:hidden}.stock-check-content{padding:15px 16px 16px;overflow:auto}
.stock-check-summary-card{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:9px;margin-bottom:12px}.stock-check-summary-card>div{padding:11px 13px;border:1px solid #dbe3ed;border-radius:10px;background:#f8fafc}.stock-check-summary-card span{display:block;color:#64748b;font-size:9px}.stock-check-summary-card b{display:block;margin-top:4px;color:#163d63;font-size:13px}
.stock-check-toolbar{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:10px;padding:10px 12px;border:1px solid #dbeafe;border-radius:10px;background:#eff6ff}.stock-check-toolbar>div:last-child{display:flex;gap:7px;flex-wrap:wrap}.stock-check-guide{display:flex;flex-direction:column;gap:2px}.stock-check-guide b{color:#174f7e;font-size:11px}.stock-check-guide span{color:#52708c;font-size:9px;line-height:1.45}
.stock-check-table-wrap{max-height:480px;border:1px solid #d8e2ec;border-radius:10px}.stock-check-table{min-width:1030px}.stock-check-table th,.stock-check-table td{text-align:center}.stock-check-table td.left{text-align:left}.stock-check-table td small{display:block;margin-top:3px;color:#64748b;font-size:9px}.stock-check-box-cell{width:58px;min-width:58px}.stock-check-box-cell input{width:18px;height:18px;accent-color:#1e5b8f}.stock-shortage-row{background:#fff7f7}.stock-note-input{min-width:190px;height:31px;padding:0 7px;border:1px solid #cbd5e1;border-radius:7px}.danger-text{color:#b91c1c!important}.stock-check-ready-hint{margin-top:11px;padding:10px 12px;border-radius:9px;font-size:10px;font-weight:800}.stock-check-ready-hint.ready{border:1px solid #bbf7d0;background:#f0fdf4;color:#166534}.stock-check-ready-hint.not-ready{border:1px solid #fed7aa;background:#fff7ed;color:#9a3412}
.stock-source-hint-row td{background:#fffdf5;border-top:0;padding-top:0}
.stock-source-hint{display:flex;flex-direction:column;gap:5px;padding:9px 12px;border:1px dashed #f0c674;border-radius:9px;background:#fffaf0;text-align:left}
.stock-source-hint.shortage{border-color:#fca5a5;background:#fff5f5}
.stock-source-line{display:flex;align-items:center;gap:9px;flex-wrap:wrap}
.stock-source-badge{display:inline-block;padding:2px 9px;border-radius:999px;background:#f59e0b;color:#fff;font-size:10px;font-weight:800}
.stock-source-hint.shortage .stock-source-badge{background:#dc2626}
.stock-source-line b{color:#92400e;font-size:12px}
.stock-source-hint.shortage .stock-source-line b{color:#991b1b}
.stock-source-sub{color:#78716c;font-size:10px;line-height:1.5}
.stock-source-btn{align-self:flex-start;margin-top:2px}
@media(max-width:760px){.stock-check-summary-card{grid-template-columns:repeat(2,1fr)}.stock-check-toolbar{align-items:flex-start;flex-direction:column}.stock-check-dialog{height:96vh;max-height:96vh}}

/* v1.4.7 이메일 발송 및 수량 공란 입력 */
.email-dialog{width:min(1040px,96vw);max-height:94vh;overflow:auto}
.email-modal-body{padding:18px 22px;display:grid;gap:16px}
.email-document-summary{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:10px}
.email-document-card{border:1px solid #d8e2ec;border-radius:10px;padding:11px 13px;background:#f8fbfe;display:grid;gap:4px}
.email-document-card b{color:#123d67;font-size:14px}
.email-document-card span{font-size:12px;color:#475569}
.email-document-card em{font-style:normal;font-size:12px;color:#166534;font-weight:700}
.email-document-card em.missing{color:#b42318}
.email-compose-grid{padding:2px 0}
.email-body-input{min-height:145px;line-height:1.55}
.email-attach-option{grid-column:1/-1;display:flex;align-items:center;gap:8px;font-weight:800;color:#183b60;padding:6px 2px}
.email-attach-option input{width:18px;height:18px}
.smtp-settings-panel{border:1px solid #cbd9e7;border-radius:10px;background:#fbfdff;overflow:hidden}
.smtp-settings-panel summary{cursor:pointer;padding:13px 15px;font-weight:900;color:#123d67;background:#edf5fb;user-select:none}
.smtp-settings-guide{margin:14px 16px 4px;padding:10px 12px;background:#fff8df;border:1px solid #f0d589;border-radius:8px;color:#6f5200;font-size:12px}
.smtp-grid{padding:12px 16px 4px}
.smtp-button-row{display:flex;justify-content:flex-end;gap:8px;padding:8px 16px 2px}
.smtp-template-help{padding:8px 16px 15px;color:#64748b;font-size:12px}
.email-send-hint{margin-right:auto;color:#64748b;font-size:12px;max-width:55%}
.line-quantity-input::placeholder{color:#94a3b8;font-size:11px}
.line-quantity-input:focus{outline:2px solid #3b82f6;outline-offset:1px}
@media(max-width:760px){.email-send-hint{display:none}.email-document-summary{grid-template-columns:1fr}.email-dialog{width:98vw}.smtp-button-row{flex-wrap:wrap}.email-modal-body{padding:12px}}


/* v1.4.8 이메일 발송 버튼 통일 / 상세 금액 카드 */
.editor-tool-card{min-width:146px;height:38px;padding:0 15px;border:1px solid #cbd5e1;border-radius:10px;background:#fff;color:#334155;box-shadow:0 1px 2px rgba(15,23,42,.04);font-weight:800}
.editor-tool-card:hover{border-color:#94a3b8;background:#f8fafc;color:#0f2f57;box-shadow:0 3px 10px rgba(15,23,42,.08)}
.detail-financial-card{margin:14px 0;border:1px solid #d7e0ea;border-radius:12px;background:#f8fafc;overflow:hidden}
.detail-financial-title{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:11px 13px;border-bottom:1px solid #d7e0ea;background:#eef4f9}
.detail-financial-title b{color:#173f66;font-size:12px}.detail-financial-title span{color:#64748b;font-size:9px}
.detail-financial-grid{display:grid;grid-template-columns:repeat(5,minmax(110px,1fr));gap:1px;background:#d7e0ea}
.detail-financial-grid>div{display:flex;flex-direction:column;gap:5px;padding:12px;background:#fff}
.detail-financial-grid span{color:#64748b;font-size:9px;font-weight:700}.detail-financial-grid strong{color:#1e293b;font-size:13px;text-align:right}
.detail-financial-grid .total{background:#edf6ff}.detail-financial-grid .total strong{color:#0f4c81;font-size:14px}
@media(max-width:1000px){.detail-financial-grid{grid-template-columns:repeat(2,minmax(120px,1fr))}.detail-financial-grid .total{grid-column:1/-1}.detail-financial-title{align-items:flex-start;flex-direction:column}}

/* v1.5.0 dashboard upcoming month schedule */
.schedule-month-list{max-height:300px;scroll-behavior:smooth}.schedule-card{cursor:pointer}.schedule-card:hover{background:#f8fbff;border-color:#b9d4ea}.schedule-date-label{display:inline-block;margin-right:5px;padding:2px 6px;border-radius:6px;background:#eaf3fb;color:#174a73;font-size:10px;white-space:nowrap}


/* v1.5.2 상태별 보기 조회 전용 드롭다운 */
.module-toolbar.status-filter-toolbar{grid-template-columns:180px 180px minmax(220px,1fr) 82px 100px 100px;align-items:end}
.filter-select-card{min-width:0;padding:6px 8px 8px;border:1px solid #cbd5e1;border-radius:10px;background:#f8fbff}
.filter-select-card label{display:block;margin:0 0 4px;color:#1e4f7a;font-size:9px;font-weight:900}
.filter-select-card select{height:31px;border-color:#b8cee1;background:#fff;color:#0f2f57;font-weight:900}
.active-filter-text{grid-column:1/-1;min-height:28px;padding:7px 10px;border-radius:8px;background:#eff6ff;color:#1e40af;font-size:10px;font-weight:800;line-height:1.4}
#filterResetButton.filter-active{background:#fef3c7;color:#92400e;box-shadow:inset 0 0 0 1px #f59e0b}
@media(max-width:1100px){.module-toolbar.status-filter-toolbar{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:760px){.module-toolbar.status-filter-toolbar{grid-template-columns:1fr 1fr}.active-filter-text{grid-column:1/-1}}

.view-only-filter-note{display:inline-block;margin-left:4px;padding:1px 5px;border-radius:999px;background:#e2e8f0;color:#475569;font-size:8px;font-weight:900;vertical-align:middle}
.filter-select-card select[aria-label="상태별 보기 조회 필터"]{cursor:pointer}


/* v1.6.0 수주 / 출고·납품 통합 내비게이션 */
.fulfillment-stage-tabs{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-bottom:12px;padding:10px 12px;border:1px solid var(--line);border-radius:12px;background:#fff}
.fulfillment-stage-tabs.hidden{display:none}
.fulfillment-stage-label{font-size:12px;font-weight:800;color:var(--muted);margin-right:2px}
.fulfillment-stage-button{border:1px solid var(--line);background:#fff;color:var(--text);border-radius:9px;padding:9px 14px;font-weight:750;cursor:pointer}
.fulfillment-stage-button:hover{border-color:var(--blue)}
.fulfillment-stage-button.active{background:#dbeafe;border-color:var(--blue);color:var(--text);box-shadow:0 0 0 2px color-mix(in srgb,var(--blue) 12%,transparent)}
@media(max-width:720px){.fulfillment-stage-tabs{align-items:stretch}.fulfillment-stage-label{width:100%}.fulfillment-stage-button{flex:1}}

/* v1.7.0 판매·렌탈 현장별 조회 / 추가납품·부분철수 */
.site-detail-summary{display:grid;gap:14px;border:1px solid var(--line);border-radius:14px;padding:16px;background:linear-gradient(145deg,#fff,var(--soft))}
.site-detail-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:14px}
.site-detail-heading h3{margin:6px 0 0;font-size:18px;line-height:1.35}
.site-type-badge,.site-contract-badge{display:inline-flex;align-items:center;border-radius:999px;padding:4px 9px;font-size:12px;font-weight:700;background:#eaf3fb;color:var(--blue);border:1px solid color-mix(in srgb,var(--blue) 25%,transparent)}
.site-current-total{display:grid;justify-items:end;gap:2px;white-space:nowrap}.site-current-total span{font-size:12px;color:var(--muted)}.site-current-total b{font-size:22px;color:var(--blue)}
.site-summary-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.site-summary-grid>div{display:grid;gap:3px;padding:10px;border-radius:9px;background:#fff;border:1px solid var(--line)}.site-summary-grid span{font-size:11px;color:var(--muted)}.site-summary-grid b{font-size:13px}
.site-contract-list{display:grid;gap:7px}.site-contract-list>span{font-size:12px;color:var(--muted)}.site-contract-list>div{display:flex;flex-wrap:wrap;gap:6px}
.site-current-table td:first-child{min-width:180px}.site-current-table td small,.site-movement-table td small{display:block;margin-top:3px;color:var(--muted);font-size:11px}
.positive-qty{color:#0b8f55;font-weight:700}.negative-qty{color:#c64343;font-weight:700}
.site-operation-card-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:14px}.site-operation-card{display:flex;flex-direction:column;justify-content:space-between;gap:14px;border:1px solid var(--line);border-radius:13px;padding:14px;background:#fff}.site-operation-card>div{display:flex;gap:10px}.site-operation-card h4{margin:0 0 5px}.site-operation-card p{margin:0;color:var(--muted);font-size:12px;line-height:1.55}.operation-card-icon{display:grid;place-items:center;flex:0 0 34px;height:34px;border-radius:10px;font-size:20px;font-weight:800}.return-card .operation-card-icon{background:#feecec;color:#bd3838}.add-card .operation-card-icon{background:#e7f7ef;color:#087b49}
.site-movement-section{margin-top:14px}.site-movement-table{min-width:880px}.site-movement-table td:nth-child(3),.site-movement-table td:last-child{text-align:left}
.site-operation-dialog{width:min(1080px,96vw);max-width:1080px}.site-operation-content{padding:18px 20px}.site-operation-header-grid{margin-bottom:16px}.site-operation-lines-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:6px 0 10px}.site-operation-lines-head>div{display:grid;gap:2px}.site-operation-lines-head span{font-size:12px;color:var(--muted)}.site-operation-table{min-width:920px}.site-operation-table td:first-child{min-width:270px}.site-operation-table select,.site-operation-table input{width:100%;min-height:36px}.site-operation-table td:nth-child(2){min-width:125px}.site-stock-cell{font-size:12px;color:var(--muted);white-space:nowrap}
@media(max-width:760px){.site-operation-card-grid,.site-summary-grid{grid-template-columns:1fr}.site-detail-heading{flex-direction:column}.site-current-total{justify-items:start}}


/* v1.8.0 출고 준비 수량칸 축소 */
.release-line-table{table-layout:auto}
.release-compact-qty{width:72px!important;min-width:72px!important;max-width:72px!important;text-align:center!important}
.release-compact-qty input{width:58px!important;min-width:58px!important;text-align:center;padding-left:4px;padding-right:4px}
.site-summary-grid>div:nth-child(3),.site-summary-grid>div:nth-child(8){grid-column:span 2}
@media(max-width:760px){.site-summary-grid>div:nth-child(3),.site-summary-grid>div:nth-child(8){grid-column:span 1}}


/* v1.9.0 출고·납품 단일 업무단계 */
.fulfillment-progress{display:grid;grid-template-columns:repeat(7,minmax(92px,1fr));gap:7px;margin-bottom:14px;overflow-x:auto;padding-bottom:3px}
.fulfillment-progress-step{display:grid;grid-template-columns:28px 1fr;align-items:center;gap:7px;min-width:110px;padding:9px;border:1px solid var(--line);border-radius:10px;background:#fff;color:var(--muted)}
.fulfillment-progress-step span{display:grid;place-items:center;width:28px;height:28px;border-radius:50%;background:var(--soft);font-size:11px;font-weight:900}
.fulfillment-progress-step b{font-size:11px;white-space:nowrap}
.fulfillment-progress-step.done{border-color:#9bd5ba;background:#f0fbf6;color:#087b49}.fulfillment-progress-step.done span{background:#d8f3e5}
.fulfillment-progress-step.current{border-color:var(--blue);background:#eff6ff;color:#1e40af;box-shadow:0 0 0 2px color-mix(in srgb,var(--blue) 10%,transparent)}.fulfillment-progress-step.current span{background:#dbeafe}
.fulfillment-detail-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin-bottom:14px}
.fulfillment-detail-grid>div{display:grid;gap:3px;padding:10px;border:1px solid var(--line);border-radius:9px;background:#fff}.fulfillment-detail-grid span{font-size:11px;color:var(--muted)}.fulfillment-detail-grid b{font-size:13px}
.fulfillment-item-table th:not(:first-child),.fulfillment-item-table td:not(:first-child){width:82px;max-width:82px;text-align:center}
.fulfillment-complete-note{display:inline-flex;align-items:center;min-height:38px;padding:0 12px;border-radius:9px;background:var(--soft);color:var(--muted);font-size:12px;font-weight:700}
@media(max-width:760px){.fulfillment-detail-grid{grid-template-columns:1fr}.fulfillment-progress{grid-template-columns:repeat(7,115px)}}

/* v1.10.0 체크리스트 출력 기능 유지 */

/* v1.11.1 출고 재고 확인 화면은 기존 간단 체크 방식으로 복원 */
/* v1.11.0 설치완료 현장사진 증빙 / 판매·렌탈 거래명세서 */
.detail-section-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin-bottom:10px}.detail-section-heading h4{margin:0}.detail-section-heading p{margin:4px 0 0;color:var(--muted);font-size:11px;line-height:1.45}
.evidence-required-guide,.evidence-preservation-guide{display:flex;align-items:flex-start;gap:10px;margin-bottom:12px;padding:11px 13px;border:1px solid #f0b35b;border-radius:10px;background:#fff8e8;color:#7a4300}.evidence-required-guide b,.evidence-preservation-guide b{white-space:nowrap}.evidence-required-guide span,.evidence-preservation-guide span{font-size:11px;line-height:1.5}
.evidence-photo-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.evidence-photo-card{display:flex;flex-direction:column;min-width:0;border:1px solid var(--line);border-radius:11px;overflow:hidden;background:#fff}.evidence-photo-image{display:grid;place-items:center;height:150px;background:#eef2f6;text-decoration:none;overflow:hidden}.evidence-photo-image img{width:100%;height:100%;object-fit:cover}.heic-placeholder{display:grid;place-items:center;color:#475569;font-size:20px;font-weight:900;text-align:center}.heic-placeholder small{font-size:10px}.evidence-photo-meta{display:grid;gap:6px;padding:10px}.evidence-photo-meta>div{display:flex;align-items:center;justify-content:space-between;gap:8px}.evidence-photo-meta b{font-size:12px;color:#173f66}.evidence-photo-meta span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--muted);font-size:9px}.evidence-photo-meta p{min-height:30px;margin:0;color:#334155;font-size:11px;line-height:1.4}.evidence-photo-meta small{color:#64748b;font-size:9px;line-height:1.45;word-break:break-all}.evidence-photo-actions{display:flex;justify-content:flex-end;gap:6px;margin-top:auto;padding:0 10px 10px}.button-link{display:inline-flex;align-items:center;justify-content:center;text-decoration:none}.photo-evidence-empty{padding:18px;border:1px dashed var(--line);border-radius:10px;color:var(--muted);text-align:center;background:var(--soft)}
.delivery-photo-dialog{width:min(900px,96vw)}.delivery-photo-content,.site-statement-content{padding:18px 20px}.delivery-photo-actions{align-items:center}.delivery-photo-actions .photo-modal-action{min-width:150px;height:38px;border-radius:9px}.delivery-photo-file-list{display:grid;gap:6px;margin-top:12px;padding:10px;border:1px dashed var(--line);border-radius:10px;background:var(--soft)}.delivery-photo-file-list>div{display:flex;justify-content:space-between;gap:10px;padding:6px 8px;border-radius:7px;background:#fff}.delivery-photo-file-list b{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:11px}.delivery-photo-file-list span{color:var(--muted);font-size:10px}
.site-statement-dialog{width:min(980px,96vw)}.statement-period-fields{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:8px}.statement-photo-head{display:flex;justify-content:space-between;margin:16px 0 9px}.statement-photo-head>div{display:grid;gap:3px}.statement-photo-head span{color:var(--muted);font-size:11px}.statement-photo-list{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;max-height:280px;overflow:auto}.statement-photo-option{position:relative;cursor:pointer}.statement-photo-option input{position:absolute;top:7px;left:7px;z-index:2;width:18px;height:18px}.statement-photo-option>span{display:grid;grid-template-rows:90px auto auto;gap:4px;padding:5px;border:2px solid transparent;border-radius:9px;background:var(--soft)}.statement-photo-option input:checked+span{border-color:var(--blue);background:#eff6ff}.statement-photo-option img,.statement-photo-option em{width:100%;height:90px;border-radius:6px;object-fit:cover;background:#e2e8f0}.statement-photo-option em{display:grid;place-items:center;font-style:normal;font-weight:900;color:#475569}.statement-photo-option b{font-size:10px}.statement-photo-option small{color:var(--muted);font-size:9px}
.site-document-list{display:grid;gap:8px}.site-document-card{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:11px 12px;border:1px solid var(--line);border-radius:10px;background:#fff}.site-document-card>div:first-child{display:grid;grid-template-columns:auto 1fr;gap:3px 8px;align-items:center}.site-document-card span{display:inline-flex;padding:2px 6px;border-radius:999px;background:#e7f7ef;color:#087b49;font-size:9px;font-weight:800}.site-document-card b{font-size:12px}.site-document-card p{grid-column:1/-1;margin:0;color:var(--muted);font-size:10px}.site-document-card>div:last-child{display:flex;gap:6px;flex-wrap:wrap}.empty-state.compact{padding:14px}
@media(max-width:980px){.evidence-photo-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.statement-photo-list{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:640px){.evidence-photo-grid,.statement-photo-list{grid-template-columns:1fr 1fr}.detail-section-heading,.site-document-card{flex-direction:column;align-items:stretch}.site-document-card>div:last-child{justify-content:flex-end}}


/* v1.11.2 PC 현장사진 간편등록 */
.evidence-photo-empty-wrap{display:grid;place-items:center;min-height:210px;padding:18px;border:1px dashed var(--line);border-radius:12px;background:linear-gradient(180deg,#fbfdff,#f5f8fc)}
.evidence-photo-add-tile{display:grid;place-items:center;align-content:center;gap:8px;min-height:185px;width:100%;padding:20px;border:0;border-radius:12px;background:transparent;color:#46647f;cursor:pointer;transition:.18s ease}
.evidence-photo-add-tile:hover{background:#edf6ff;color:#165b9b;transform:translateY(-1px)}
.evidence-photo-add-icon{display:grid;place-items:center;width:66px;height:66px;border:2px solid currentColor;border-radius:50%;font-size:38px;font-weight:300;line-height:1;background:#fff;box-shadow:0 8px 24px rgba(31,79,122,.08)}
.evidence-photo-add-tile b{font-size:14px}.evidence-photo-add-tile small{color:var(--muted);font-size:11px;line-height:1.55;font-weight:500;text-align:center}
.evidence-photo-add-tile.compact{min-height:150px;border:1px dashed #a9bfd3;background:#f8fbfe}.evidence-photo-add-tile.compact .evidence-photo-add-icon{width:50px;height:50px;font-size:29px}.evidence-photo-add-tile.compact b{font-size:12px}
.evidence-photo-phase{display:inline-flex;width:max-content;max-width:100%;padding:3px 7px;border-radius:999px;font-size:9px;font-weight:800}.evidence-photo-phase.before{background:#e8f3ff;color:#1769a9}.evidence-photo-phase.after{background:#fff1dd;color:#9a5400}
@media(max-width:640px){.evidence-photo-empty-wrap{min-height:180px}.evidence-photo-add-tile{min-height:155px}.evidence-photo-add-icon{width:58px;height:58px;font-size:34px}}


/* v1.11.5 현장도착 수량변경과 사진등록 버튼 디자인 통일 */
#moduleView.fulfillment-detail-mode .content-grid{grid-template-columns:minmax(0,1fr)}
#moduleView.fulfillment-detail-mode .content-grid>div:first-child{display:none}
#moduleView.fulfillment-detail-mode .content-grid>aside{width:100%;max-width:none}
#moduleView.fulfillment-detail-mode .sticky-panel{position:static;top:auto}
#moduleView.fulfillment-detail-mode .detail-body{max-height:none;overflow:visible}
.fulfillment-detail-page-heading{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:11px 12px;margin-bottom:12px;border:1px solid var(--line);border-radius:10px;background:var(--soft)}
.fulfillment-detail-page-heading>div{display:grid;gap:3px}.fulfillment-detail-page-heading b{font-size:13px}.fulfillment-detail-page-heading span{font-size:11px;color:var(--muted)}
.acceptance-ready-guide{display:flex;align-items:flex-start;justify-content:space-between;gap:10px;margin:0 0 12px;padding:11px 13px;border:1px solid #b9d5f7;border-radius:10px;background:#f3f8ff}.acceptance-ready-guide b{font-size:12px;color:#1e40af}.acceptance-ready-guide span{font-size:11px;color:#475569}.acceptance-ready-guide.changed{border-color:#f2c17c;background:#fff8ec}.acceptance-ready-guide.changed b{color:#9a4d00}
.fulfillment-item-table th:not(:first-child),.fulfillment-item-table td:not(:first-child){width:74px;max-width:74px}.fulfillment-item-table th:first-child{min-width:190px}
.acceptance-reviewed-row{background:#fbfdff}.acceptance-confirmed-label{display:block;margin-top:2px;color:#2563eb;font-size:9px}.acceptance-change-note{display:block;margin-top:3px;color:#9a4d00;font-size:9px}
.acceptance-qty-dialog{width:min(980px,96vw)}.acceptance-qty-content{padding:18px 20px}.acceptance-qty-guide{display:grid;gap:4px;margin-bottom:12px;padding:11px 13px;border:1px solid #b9d5f7;border-radius:10px;background:#f3f8ff}.acceptance-qty-guide b{font-size:12px}.acceptance-qty-guide span{font-size:11px;color:var(--muted);line-height:1.5}
.acceptance-qty-table th:nth-child(1){min-width:180px}.acceptance-qty-table th:nth-child(2),.acceptance-qty-table th:nth-child(3),.acceptance-qty-table th:nth-child(4){width:92px}.acceptance-qty-table th:nth-child(5){min-width:175px}.acceptance-qty-table th:nth-child(6){min-width:220px}.acceptance-qty-table input,.acceptance-qty-table select{width:100%;min-width:0}.acceptance-qty-input{text-align:center;font-weight:800}.acceptance-disposition-input{min-width:165px}.acceptance-note-input{min-width:200px}.acceptance-disposition-note{display:block;margin-top:4px;color:#7c3aed;font-size:9px;font-weight:800}
@media(max-width:760px){.fulfillment-detail-page-heading{align-items:flex-start;flex-direction:column}.acceptance-ready-guide{display:grid}.acceptance-qty-dialog{width:98vw}.acceptance-qty-table{min-width:960px}}


/* v1.11.6 출고·납품 다음 일정 및 상세 일정편집 */
.fulfillment-heading-actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.fulfillment-schedule-dialog{width:min(620px,94vw)}.fulfillment-schedule-content{padding:18px 20px}.schedule-edit-guide{margin-bottom:13px;padding:10px 12px;border:1px solid #b9d5f7;border-radius:9px;background:#f3f8ff;color:#31516d;font-size:11px;line-height:1.5}.fulfillment-schedule-content label{display:grid;gap:6px}.fulfillment-schedule-content label>span{font-size:11px;font-weight:800;color:var(--muted)}
.schedule-history-list{display:grid;gap:8px}.schedule-history-card{display:grid;gap:5px;padding:10px 12px;border:1px solid var(--line);border-radius:9px;background:#fff}.schedule-history-card>div{display:flex;align-items:center;justify-content:space-between;gap:10px}.schedule-history-card b{font-size:11px}.schedule-history-card span,.schedule-history-card small{font-size:10px;color:var(--muted)}.schedule-history-card p{margin:0;font-size:11px;color:var(--text)}
@media(max-width:640px){.fulfillment-heading-actions{width:100%}.fulfillment-heading-actions button{flex:1}}

/* v1.11.7 인수확인증 이메일 */
.checkbox-field-control{display:flex;align-items:center;gap:10px;min-height:42px;padding:10px 12px;border:1px solid #cbd5e1;border-radius:9px;background:#f8fbff;color:#173f66;font-weight:800}.checkbox-field-control input{width:18px;height:18px;accent-color:#2563eb}.checkbox-field-control span{font-size:12px;line-height:1.35}


/* v1.11.8 출고·납품 상세 UI 글꼴 통일 / 상태 배지 축소 */
.status-list-head{font-size:10px!important;letter-spacing:0!important}
.status-list-cell .badge{min-width:64px!important;padding:3px 8px!important;font-size:9px!important;line-height:1.1!important;box-shadow:none!important}
.status-badge-stack{gap:4px!important}
.urgent-status-badge{min-height:20px!important;padding:2px 7px!important;font-size:9px!important}
.urgent-status-badge span{font-size:11px!important}
.fulfillment-detail-mode .fulfillment-heading-actions button,
.fulfillment-detail-mode .detail-section-heading button,
.fulfillment-detail-mode .action-area button,
.fulfillment-detail-mode .evidence-photo-actions button,
.fulfillment-detail-mode .evidence-photo-actions .button-link,
.fulfillment-detail-mode .evidence-photo-add-tile b{font-size:10px!important}

/* v1.11.9 공통 작업카드 규격 / 기간조회 / 전체 상세 / 판매·렌탈 기간관리 */
:root{
  --work-card-radius:10px;
  --work-card-padding:11px 12px;
  --work-card-gap:10px;
  --work-card-title-size:12px;
  --work-card-body-size:10px;
  --work-card-button-size:10px;
  --work-card-button-height:34px;
}
.work-card,
.site-operation-card,
.fulfillment-detail-page-heading,
.record-detail-page-heading,
.stock-check-notice,
.acceptance-ready-guide,
.evidence-required-guide,
.schedule-history-card,
.site-document-card,
.detail-section{
  border-radius:var(--work-card-radius)!important;
}
.work-card h4,.work-card b,
.site-operation-card h4,.site-operation-card b,
.detail-section-heading h4{font-size:var(--work-card-title-size)!important;line-height:1.3}
.work-card p,.work-card span,.work-card small,
.site-operation-card p,.detail-section-heading p{font-size:var(--work-card-body-size)!important;line-height:1.45}
.action-area button,.detail-section-heading button,.record-detail-actions button,.fulfillment-heading-actions button,
.site-operation-card button,.site-document-card button,.site-document-card .button-link{
  min-height:var(--work-card-button-height);padding:7px 11px!important;font-size:var(--work-card-button-size)!important;border-radius:8px!important;
}

.module-toolbar.status-filter-toolbar{
  grid-template-columns:150px 150px 300px minmax(210px,1fr) 76px 94px 90px;
  align-items:end;
}
.date-range-card{display:grid;gap:5px;min-width:260px}
.date-range-card>label{font-size:10px;font-weight:800;color:var(--muted)}
.date-range-card>div{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:6px}
.date-range-card input{width:100%;min-width:0}
.quick-period-filter{grid-column:1/-1;display:flex;align-items:center;gap:6px;flex-wrap:wrap;padding-top:2px}
.quick-period-filter button{min-height:28px;padding:5px 9px!important;font-size:9px!important}
.active-filter-text{grid-column:1/-1}
@media(max-width:1280px){.module-toolbar.status-filter-toolbar{grid-template-columns:repeat(4,minmax(0,1fr))}.date-range-card{min-width:0}}
@media(max-width:820px){.module-toolbar.status-filter-toolbar{grid-template-columns:1fr 1fr}.date-range-card{grid-column:1/-1}.quick-period-filter{grid-column:1/-1}}

#moduleView.record-detail-mode .content-grid{grid-template-columns:minmax(0,1fr)}
#moduleView.record-detail-mode .content-grid>div:first-child{display:none}
#moduleView.record-detail-mode .content-grid>aside{width:100%;max-width:none}
#moduleView.record-detail-mode .sticky-panel{position:static;top:auto}
#moduleView.record-detail-mode .detail-body{max-height:none;overflow:visible}
.record-detail-page-heading{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:var(--work-card-padding);margin-bottom:12px;border:1px solid var(--line);background:var(--soft)}
.record-detail-page-heading>div:first-child{display:grid;gap:3px}
.record-detail-page-heading b{font-size:13px!important}.record-detail-page-heading span{font-size:10px!important;color:var(--muted)}
.record-detail-actions{display:flex;align-items:center;gap:7px;flex-wrap:wrap}
@media(max-width:640px){.record-detail-page-heading{align-items:stretch;flex-direction:column}.record-detail-actions button{flex:1}}

.site-period-history-list{display:grid;gap:6px}
.site-period-history-row{display:grid;grid-template-columns:1fr auto;align-items:center;gap:10px;width:100%;padding:9px 11px;border:1px solid var(--line);border-radius:8px;background:#fff;text-align:left;cursor:pointer}
.site-period-history-row:hover,.site-period-history-row.active{border-color:#7fb2df;background:#f0f7ff}
.site-period-history-row span{font-size:10px;color:var(--text)}.site-period-history-row b{font-size:9px;padding:3px 7px;border-radius:999px;background:#e8f1fb;color:#245b88}
.site-period-dialog{width:min(650px,95vw)}.site-period-content{padding:18px 20px}.site-period-guide{display:grid;gap:4px;margin-bottom:13px;padding:11px 13px;border:1px solid #b9d5f7;border-radius:10px;background:#f3f8ff}.site-period-guide.close{border-color:#b7e3c9;background:#f1fbf5}.site-period-guide b{font-size:12px}.site-period-guide span{font-size:10px;color:var(--muted)}
.site-period-copy-preview{display:grid;gap:4px;margin-top:13px;padding:11px 13px;border:1px dashed #a9bfd3;border-radius:9px;background:#fbfdff}.site-period-copy-preview b{font-size:11px}.site-period-copy-preview span{font-size:10px;color:var(--muted)}
.period-closed-note{display:inline-flex;align-items:center;padding:7px 10px;border:1px solid #98d6b1;border-radius:8px;background:#effaf3;color:#167243;font-size:10px;font-weight:800}

/* v1.11.10 출고시간 10분단위 / 현장도착 기록 / 사진선택 정렬 / 거래명세서 미리보기·기간선택 */
.delivery-photo-picker{
  display:grid;place-items:center;align-content:center;gap:7px;min-height:150px;width:100%;padding:18px;
  border:1px dashed #9fb4c7;border-radius:10px;background:#f8fbfe;color:#46647f;text-align:center;cursor:pointer;
}
.delivery-photo-picker:hover{border-color:#4f8fc7;background:#eef7ff;color:#165b9b}
.delivery-photo-picker input{position:absolute;width:1px;height:1px;opacity:0;pointer-events:none}
.delivery-photo-picker-icon{display:grid;place-items:center;width:48px;height:48px;border:2px solid currentColor;border-radius:50%;font-size:28px;line-height:1;background:#fff}
.delivery-photo-picker b{font-size:12px}.delivery-photo-picker small{font-size:10px;line-height:1.5;color:var(--muted)}

.statement-period-selector{display:grid;gap:9px;padding:10px;border:1px solid var(--line);border-radius:10px;background:#fbfdff}
.statement-period-search{display:grid;grid-template-columns:1fr auto 1fr repeat(4,auto);align-items:center;gap:6px}
.statement-period-selection-list{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:7px;max-height:230px;overflow:auto}
.statement-period-option{position:relative;cursor:pointer}.statement-period-option input{position:absolute;top:9px;left:9px;width:17px;height:17px;z-index:2}
.statement-period-option>span{display:grid;gap:4px;min-height:78px;padding:10px 9px 9px 34px;border:1px solid var(--line);border-radius:9px;background:#fff}
.statement-period-option input:checked+span{border-color:#4b8ec8;background:#eff7ff;box-shadow:0 0 0 1px #4b8ec8 inset}
.statement-period-option b{font-size:10px}.statement-period-option small{font-size:9px;color:var(--muted)}.statement-period-option em{width:max-content;padding:2px 6px;border-radius:999px;background:#e8f1fb;color:#245b88;font-size:8px;font-style:normal;font-weight:800}
.statement-preview-head{display:flex;align-items:center;justify-content:space-between;gap:10px;margin:16px 0 8px}.statement-preview-head>div{display:grid;gap:3px}.statement-preview-head b{font-size:12px}.statement-preview-head span{font-size:10px;color:var(--muted)}
.statement-preview-panel{min-height:140px;padding:10px;border:1px solid var(--line);border-radius:10px;background:#fbfdff}
.statement-preview-summary{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:7px;margin-bottom:9px}.statement-preview-summary span{display:grid;gap:3px;padding:8px 9px;border:1px solid var(--line);border-radius:8px;background:#fff;font-size:9px;color:var(--muted)}.statement-preview-summary b{font-size:11px;color:var(--text)}
.statement-preview-table{min-width:760px}.statement-preview-table th:nth-child(1){width:48px}.statement-preview-table th:nth-child(3){width:76px}.statement-preview-table th:nth-child(4),.statement-preview-table th:nth-child(5){width:110px}.statement-preview-limit{display:block;margin-top:7px;color:var(--muted);font-size:9px}
@media(max-width:980px){.statement-period-search{grid-template-columns:1fr auto 1fr}.statement-period-search button{grid-column:auto}.statement-period-selection-list{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:640px){.statement-period-search{grid-template-columns:1fr auto 1fr}.statement-period-search button{grid-column:span 3}.statement-period-selection-list{grid-template-columns:1fr}.statement-preview-summary{grid-template-columns:1fr 1fr}}


/* v1.11.11 고객용 거래명세서 출력본 / 상세명세서 / 배차 기초자료 / 단계별 처리시각 */
.fulfillment-time-grid{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:7px;margin:9px 0 12px}
.fulfillment-time-card{display:grid;gap:3px;min-height:52px;padding:8px 9px;border:1px solid var(--line);border-radius:8px;background:#fbfcfe}
.fulfillment-time-card.done{border-color:#a9d8bb;background:#f2fbf5}.fulfillment-time-card span{font-size:9px;color:var(--muted)}.fulfillment-time-card b{font-size:10px;line-height:1.35;color:var(--text)}
.dispatch-selection-card{margin:14px 18px 0;padding:var(--work-card-padding);border:1px solid #bdd4e8;background:#f5faff}
.dispatch-selection-head>div{display:grid;gap:3px}.dispatch-selection-head b{font-size:12px}.dispatch-selection-head span{font-size:10px;color:var(--muted)}
.dispatch-selection-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:10px}.dispatch-select-block{display:grid;gap:6px;padding:10px;border:1px solid var(--line);border-radius:8px;background:#fff}.dispatch-select-block>label{font-size:10px;font-weight:800}.dispatch-add-row{display:grid;grid-template-columns:1fr auto;gap:6px}.dispatch-source-field-hidden{display:none!important}
.statement-action-card-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}.statement-action-card{display:grid;gap:4px;width:100%;padding:var(--work-card-padding);text-align:left;border:1px solid #a9c9e5;background:#f5faff;color:var(--text);cursor:pointer}.statement-action-card.detail{border-color:#b8a9e5;background:#f8f5ff}.statement-action-card:hover{transform:translateY(-1px);box-shadow:0 4px 12px rgba(30,60,90,.08)}.statement-action-card span{font-size:9px;color:var(--muted)}.statement-action-card b{font-size:12px}.statement-action-card small{font-size:10px;color:var(--muted)}
.statement-preview-panel{padding:14px;background:#e8edf3;max-height:70vh;overflow:auto}.customer-statement-preview{width:min(794px,100%);min-height:1080px;margin:0 auto;padding:32px 34px;background:#fff;color:#172033;box-shadow:0 4px 18px rgba(30,45,65,.16);font-family:Arial,"Malgun Gothic",sans-serif}.customer-preview-company{display:grid;grid-template-columns:160px 1fr;align-items:center;gap:18px;padding-bottom:13px;border-bottom:3px solid #173f66}.customer-preview-company img{max-width:150px;max-height:52px;object-fit:contain}.customer-preview-company>div{display:grid;gap:3px;text-align:right}.customer-preview-company b{font-size:15px}.customer-preview-company span{font-size:10px;color:#4d5d6f}.customer-statement-preview h3{text-align:center;font-size:25px;letter-spacing:9px;color:#102f51;margin:22px 0}.customer-preview-meta{display:grid;grid-template-columns:repeat(4,1fr);border-top:1px solid #9caec0;border-left:1px solid #9caec0}.customer-preview-meta>div{display:grid;grid-template-columns:84px 1fr;min-height:38px;border-right:1px solid #9caec0;border-bottom:1px solid #9caec0}.customer-preview-meta>div:nth-child(odd){grid-column:span 2}.customer-preview-meta>div:nth-child(even){grid-column:span 2}.customer-preview-meta span{display:grid;place-items:center;padding:6px;background:#eaf1f8;font-size:9px;font-weight:800}.customer-preview-meta b{display:flex;align-items:center;padding:6px 8px;font-size:10px;font-weight:500}.customer-preview-table-wrap{margin-top:16px;overflow:auto}.customer-preview-table{width:100%;border-collapse:collapse;table-layout:fixed;font-size:9px}.customer-preview-table th,.customer-preview-table td{border:1px solid #9caec0;padding:6px 4px;text-align:center;vertical-align:middle}.customer-preview-table th{background:#173f66;color:#fff}.customer-preview-table th:nth-child(1){width:34px}.customer-preview-table th:nth-child(2){width:112px}.customer-preview-table th:nth-child(4){width:55px}.customer-preview-table th:nth-child(5),.customer-preview-table th:nth-child(6){width:84px}.customer-preview-table th:nth-child(7){width:120px}.customer-preview-table .left{text-align:left}.customer-preview-table small{display:block;color:#64748b;margin-top:2px}.customer-preview-total{display:grid;grid-template-columns:150px 150px;margin:12px 0 0 auto;width:max-content}.customer-preview-total>div{display:grid;grid-template-columns:70px 1fr;border:1px solid #9caec0;border-bottom:0}.customer-preview-total>div:last-child{border-bottom:1px solid #9caec0}.customer-preview-total span,.customer-preview-total b{padding:7px;font-size:10px}.customer-preview-total span{background:#f0f4f8;font-weight:800}.customer-preview-total .total{background:#eaf1f8}.customer-preview-memo{display:grid;grid-template-columns:85px 1fr;margin-top:15px;border:1px solid #9caec0}.customer-preview-memo b{padding:8px;background:#eaf1f8;text-align:center}.customer-preview-memo span{padding:8px}.customer-preview-sign{display:grid;grid-template-columns:1fr 1fr;margin-top:18px;border-top:1px solid #7e91a6;border-left:1px solid #7e91a6}.customer-preview-sign>div{display:grid;border-right:1px solid #7e91a6;border-bottom:1px solid #7e91a6}.customer-preview-sign b{padding:7px;background:#eaf1f8;text-align:center}.customer-preview-sign span{min-height:90px;padding:10px;font-size:10px;line-height:1.6}.customer-preview-note{display:block;margin-top:10px;color:#64748b;font-size:9px}
@media(max-width:980px){.fulfillment-time-grid{grid-template-columns:repeat(3,1fr)}.dispatch-selection-grid,.statement-action-card-grid{grid-template-columns:1fr}.customer-statement-preview{min-width:720px}}
@media(max-width:640px){.fulfillment-time-grid{grid-template-columns:repeat(2,1fr)}.dispatch-add-row{grid-template-columns:1fr}.customer-statement-preview{padding:24px}.statement-preview-panel{padding:8px}}

/* v1.11.12 출고 기초자료·창고 관리 / 사진위치 / 거래명세서 금액표시 */
:root{--modal-label-font-size:10px;--modal-control-font-size:11px;--modal-button-font-size:12px}
.dispatch-selection-card{font-size:var(--modal-control-font-size)}
.dispatch-selection-head b{font-size:var(--modal-label-font-size);line-height:1.4}.dispatch-selection-head span{font-size:var(--modal-label-font-size);line-height:1.5}
.dispatch-selection-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.dispatch-select-block{gap:7px}.dispatch-select-block>label{font-size:var(--modal-label-font-size)}
.dispatch-select-block select{height:37px;padding:0 9px;border:1px solid #cbd5e1;border-radius:8px;background:#fff;font-size:var(--modal-control-font-size)}
.dispatch-master-actions{display:grid;grid-template-columns:1fr 1fr;gap:6px}.dispatch-master-actions button{height:32px;font-size:var(--modal-button-font-size)!important}
.dispatch-master-form-grid .form-field label{font-size:var(--modal-label-font-size)}.dispatch-master-form-grid input,.dispatch-master-form-grid textarea{font-size:var(--modal-control-font-size)}
.evidence-section-before-install{margin-top:10px;padding-top:0;border-top:0}.evidence-section-before-install+.evidence-required-guide{margin-top:10px}
.customer-preview-table{min-width:900px}.customer-preview-table th:nth-child(1){width:32px}.customer-preview-table th:nth-child(2){width:105px}.customer-preview-table th:nth-child(3){width:145px}.customer-preview-table th:nth-child(4){width:48px}.customer-preview-table th:nth-child(5),.customer-preview-table th:nth-child(6),.customer-preview-table th:nth-child(7),.customer-preview-table th:nth-child(8){width:82px}.customer-preview-table th:nth-child(9){width:115px}
.customer-preview-total{grid-template-columns:150px 220px}.customer-preview-total .total-korean{grid-column:1/-1;grid-template-columns:70px 1fr}.customer-preview-total .total-korean b{text-align:right;word-break:keep-all}
@media(max-width:980px){.dispatch-selection-grid{grid-template-columns:1fr}.customer-preview-table{min-width:880px}}


/* v1.11.13 판매·렌탈 상세 컴팩트/품목 편집 */
.compact-detail-heading{padding:10px 12px;gap:10px}.compact-detail-heading>div:first-child{gap:2px}.compact-detail-heading .record-detail-actions{gap:6px;flex-wrap:wrap}
.compact-site-summary{padding:10px 12px;gap:8px;background:#fff}.compact-summary-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:7px}.compact-summary-grid>div{min-height:54px;padding:7px 9px;border-radius:8px}.compact-summary-grid span{font-size:var(--ui-label-size,11px)}.compact-summary-grid b{font-size:var(--ui-body-size,13px);line-height:1.25}.compact-summary-grid>div:nth-child(3),.compact-summary-grid>div:nth-child(8){grid-column:auto}.compact-summary-grid>div:nth-child(12){grid-column:span 3}.compact-contract-list{padding-top:5px;margin-top:0}
.compact-item-edit-section{padding:12px}.editable-title{color:var(--primary);font-weight:700}.period-edit-guide{margin:0 0 9px;padding:8px 10px;border:1px solid #b9d2ff;background:#f3f7ff;border-radius:7px;color:#2359a8;font-size:12px}.detail-section-actions{display:flex;gap:6px;align-items:center;flex-wrap:wrap}
.period-item-edit-table th,.period-item-edit-table td{padding:7px 8px}.period-item-edit-table th:first-child{min-width:155px}.period-item-input{width:100%;min-width:78px;height:31px;padding:5px 7px;border:1px solid var(--line);border-radius:6px;background:#fff;color:var(--text);font:inherit;font-size:12px}.period-item-input:focus{outline:2px solid color-mix(in srgb,var(--primary) 20%,transparent);border-color:var(--primary)}.discount-input-wrap{display:grid;grid-template-columns:minmax(70px,1fr) 16px;align-items:center;gap:4px}.period-total-row td{font-weight:700;background:var(--soft)}
@media(max-width:1200px){.compact-summary-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.compact-summary-grid>div:nth-child(12){grid-column:span 2}}
@media(max-width:760px){.compact-summary-grid{grid-template-columns:1fr}.compact-summary-grid>div:nth-child(12){grid-column:auto}}


/* v1.11.14 ERP-wide unified proportion standard
   - Same-purpose controls use equal dimensions.
   - Table headers stay on one line.
   - Only long-content columns receive additional width. */
:root{
  --ui-control-height:36px;
  --ui-control-radius:8px;
  --ui-control-font-size:11px;
  --ui-table-row-height:38px;
  --ui-card-radius:11px;
  --ui-card-padding:12px;
  --ui-gap:8px;
}

/* All ERP tables: stable, single-line headers and consistent rhythm. */
.data-table thead th,
.detail-line-table thead th,
.line-table thead th,
.stock-check-table thead th,
.site-operation-table thead th,
.acceptance-qty-table thead th{
  white-space:nowrap;
  word-break:keep-all;
  line-height:1.2;
  vertical-align:middle;
}
.data-table thead th,
.data-table tbody td{height:var(--ui-table-row-height)}
.detail-line-table th,
.detail-line-table td{min-height:36px;vertical-align:middle}

/* All form controls: equal height, radius, padding and type size. */
.module-toolbar input,.module-toolbar select,
.form-field input,.form-field select,
.line-table input,.line-table select,
.site-operation-table input,.site-operation-table select,
.acceptance-qty-table input,.acceptance-qty-table select,
.period-item-input,
.stock-note-input{
  box-sizing:border-box;
  height:var(--ui-control-height);
  min-height:var(--ui-control-height);
  border-radius:var(--ui-control-radius);
  padding:0 8px;
  font-size:var(--ui-control-font-size);
  line-height:normal;
}
textarea{box-sizing:border-box;border-radius:var(--ui-control-radius)}

/* Same-level buttons share one physical size. */
button.small,.button-link.small,
.detail-section-actions button,
.record-detail-actions button,
.fulfillment-heading-actions button{
  box-sizing:border-box;
  min-height:32px;
  padding:0 11px;
  border-radius:8px;
  white-space:nowrap;
  line-height:1;
}

/* Common card geometry across ERP detail/work areas. */
.work-card,
.detail-card,
.detail-section,
.fulfillment-detail-grid>div,
.site-account-summary-grid>div,
.site-summary-grid>div{
  box-sizing:border-box;
}
.work-card{
  border-radius:var(--ui-card-radius);
  padding:var(--ui-card-padding);
}

/* Sales/rental period item table: proportional and repeatable column widths. */
.period-item-edit-table{
  width:100%;
  min-width:1010px;
  table-layout:fixed;
}
.period-item-edit-table col.period-col-item{width:18%}
.period-item-edit-table col.period-col-qty{width:9%}
.period-item-edit-table col.period-col-discount{width:10%}
.period-item-edit-table col.period-col-money{width:13%}
.period-item-edit-table col.period-col-note{width:19%}
.period-item-edit-table th,
.period-item-edit-table td{
  padding:7px 6px;
  overflow:hidden;
  text-overflow:ellipsis;
}
.period-item-edit-table th:nth-child(2),
.period-item-edit-table th:nth-child(3),
.period-item-edit-table th:nth-child(4),
.period-item-edit-table td:nth-child(2),
.period-item-edit-table td:nth-child(3),
.period-item-edit-table td:nth-child(4){
  text-align:center;
  white-space:nowrap;
}
.period-item-edit-table td:first-child,
.period-item-edit-table td:last-child{
  white-space:normal;
  word-break:keep-all;
}
.period-item-edit-table .period-item-input{
  width:100%;
  min-width:0;
  max-width:none;
  margin:0;
  text-align:center;
}
.period-item-edit-table td:nth-child(6) .period-item-input,
.period-item-edit-table td:nth-child(7){text-align:right}
.period-item-edit-table .discount-input-wrap{
  display:grid;
  grid-template-columns:minmax(0,1fr) 14px;
  width:100%;
  gap:3px;
  align-items:center;
}
.period-item-edit-table .discount-input-wrap .period-item-input{width:100%;min-width:0}

/* Responsive behavior: preserve proportions and scroll instead of breaking labels. */
@media(max-width:1100px){
  .period-item-edit-table{min-width:960px}
}

/* v1.11.18: 숫자 입력칸 증감 화살표 제거
   수량·단가·할인율 등 숫자값은 키보드로 직접 입력한다. */
input[type="number"] {
  -moz-appearance: textfield;
  appearance: textfield;
}

input[type="number"]::-webkit-outer-spin-button,
input[type="number"]::-webkit-inner-spin-button {
  -webkit-appearance: none;
  margin: 0;
}

/* v1.11.19 품목사진·실제출력 미리보기 */
.item-photo-name{cursor:zoom-in;text-decoration:underline dotted;text-underline-offset:3px}
.item-photo-dialog{width:min(760px,96vw)}.item-photo-body{min-height:360px;display:grid;place-items:center;padding:18px;background:#eef3f8}.item-photo-body img{display:block;max-width:100%;max-height:68vh;object-fit:contain;border-radius:10px;background:#fff;box-shadow:0 5px 20px rgba(15,23,42,.15)}
.statement-photo-head{display:flex;justify-content:space-between;align-items:center;gap:12px}.statement-photo-actions{display:flex;align-items:center;gap:6px;flex-wrap:wrap}.statement-photo-master-check{display:flex;align-items:center;gap:6px;padding:7px 9px;border:1px solid #bfd0df;border-radius:8px;background:#fff;font-size:10px;font-weight:900}.statement-photo-master-check input{width:16px;height:16px}
.customer-preview-table-wrap{overflow:visible!important;width:100%}.customer-preview-table{width:100%!important;min-width:0!important;table-layout:fixed!important}.customer-preview-table th,.customer-preview-table td{white-space:normal!important;word-break:break-word!important;overflow-wrap:anywhere!important;padding:5px 3px!important}.customer-preview-table th:nth-child(1){width:4%}.customer-preview-table th:nth-child(2){width:12%}.customer-preview-table th:nth-child(3){width:20%}.customer-preview-table th:nth-child(4){width:7%}.customer-preview-table th:nth-child(5){width:11%}.customer-preview-table th:nth-child(6){width:12%}.customer-preview-table th:nth-child(7){width:10%}.customer-preview-table th:nth-child(8){width:12%}.customer-preview-table th:nth-child(9){width:12%}
@media print{.customer-statement-preview{width:210mm!important;min-height:297mm!important;box-shadow:none!important;margin:0!important;padding:10mm 11mm!important;box-sizing:border-box!important}.customer-preview-table-wrap{overflow:visible!important}.customer-preview-table{font-size:7.5pt!important}.modal-header,.modal-footer,.statement-preview-head{display:none!important}}

/* v1.11.20 견적·수주 품목사진 및 출력 공통화 */
.print-photo-option{display:flex;align-items:center;gap:6px;margin-right:12px;font-size:11px;font-weight:700;color:#334155}.document-photo-page .photo-doc-title{margin-bottom:5mm}.document-item-photo-meta{text-align:center;font-size:10pt;margin-bottom:5mm}.document-item-photo-frame{height:220mm;display:grid;place-items:center;border:1px solid #cbd5e1;background:#f8fafc;padding:5mm}.document-item-photo-frame img{max-width:100%;max-height:100%;object-fit:contain}.email-attach-option{margin-right:18px}


/* v1.11.21 견적요청 연동·비교견적 */
.request-reference-card,.quote-comparison-card{margin:0 24px 16px;padding:16px;border:1px solid #dbe3ee;border-radius:14px;background:#fff}.request-reference-card>div:first-child,.quote-comparison-head{display:flex;justify-content:space-between;gap:16px;align-items:flex-start}.request-reference-card b,.quote-comparison-head b{display:block;font-size:15px}.request-reference-card span,.quote-comparison-head span{display:block;margin-top:4px;color:#64748b;font-size:12px}.request-reference-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin:12px 0}.request-reference-grid p{margin:0;padding:11px;background:#f8fafc;border-radius:10px;white-space:pre-wrap}.request-reference-grid strong{display:block;margin-bottom:5px;font-size:12px;color:#475569}.quote-comparison-head>div:last-child{display:flex;gap:6px;flex-wrap:wrap}.quote-option-tabs{display:flex;gap:8px;overflow-x:auto;margin-top:14px;padding-bottom:4px}.quote-option-tab{min-width:210px;padding:11px;border:1px solid #dbe3ee;border-radius:11px;background:#f8fafc;cursor:pointer;display:flex;justify-content:space-between;gap:8px}.quote-option-tab.active{border-color:#2563eb;background:#eff6ff}.quote-option-tab.selected{box-shadow:inset 0 0 0 1px #16a34a}.quote-option-tab b,.quote-option-tab span{display:block}.quote-option-tab span{font-size:11px;color:#64748b;margin-top:3px}.quote-option-actions{display:flex;align-items:flex-start;gap:3px}.quote-option-actions button{border:0;background:transparent;font-size:11px;padding:2px 4px;cursor:pointer}.quote-option-period{display:flex;align-items:center;gap:8px;margin-top:12px}.quote-option-period input{width:90px}@media(max-width:800px){.request-reference-grid{grid-template-columns:1fr}.quote-comparison-head{display:block}.quote-comparison-head>div:last-child{margin-top:10px}}

/* v1.11.22 신규 연결자료 강조 */
.data-table tbody tr.new-record-focus{background:#fff4c2!important;box-shadow:inset 4px 0 0 #d97706;animation:newRecordPulse .7s ease-in-out 2}
@keyframes newRecordPulse{0%,100%{filter:none}50%{filter:brightness(.96)}}

/* v1.11.23 견적 전체상세 품목 바로입력 */
.inline-quote-editor{margin-top:16px}
.inline-quote-head{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:12px}
.inline-quote-head h4{margin:0 0 4px}
.inline-quote-head span{font-size:12px;color:var(--muted)}
.inline-quote-head>div:last-child{display:flex;gap:8px;flex-shrink:0}
.inline-quote-editor table{min-width:1260px;table-layout:fixed}
.inline-quote-editor th:first-child,.inline-quote-editor td:first-child{width:290px}
.inline-quote-editor th:nth-child(2),.inline-quote-editor td:nth-child(2){width:70px}
.inline-quote-editor th:nth-child(3),.inline-quote-editor td:nth-child(3){width:70px}
.inline-quote-editor th:nth-child(4),.inline-quote-editor td:nth-child(4),.inline-quote-editor th:nth-child(5),.inline-quote-editor td:nth-child(5){width:105px}
.inline-quote-editor th:nth-child(6),.inline-quote-editor td:nth-child(6){width:75px}
.inline-quote-editor select,.inline-quote-editor input{width:100%;min-width:0}
@media(max-width:900px){.inline-quote-head{align-items:flex-start;flex-direction:column}}

/* v1.11.25 견적 전체상세 할인적용 카드 복원 */
.inline-discount-card{margin:0 0 12px;padding:12px 14px;border:1px solid #dbe3ee;border-radius:12px;background:#f8fafc}
.inline-discount-card-head{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;margin-bottom:10px}
.inline-discount-card-head b{display:block;font-size:14px}.inline-discount-card-head span{display:block;margin-top:3px;font-size:11px;color:var(--muted)}
.inline-discount-card-head em{font-style:normal;font-size:11px;font-weight:800;color:#2563eb;white-space:nowrap}
.inline-discount-card-body{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.inline-discount-card .discount-preset-buttons{display:flex;gap:6px;flex-wrap:wrap}
.inline-discount-card .discount-preset{min-width:58px;height:34px;border:1px solid #cbd5e1;border-radius:8px;background:#fff;font-weight:800;cursor:pointer}
.inline-discount-card .discount-preset:hover{border-color:#2563eb;background:#eff6ff}
.inline-discount-card .discount-manual{display:flex;align-items:center;gap:6px}.inline-discount-card .discount-manual label{font-size:11px;font-weight:800}.inline-discount-card .discount-manual input{width:82px;height:34px}
.inline-quote-editor table{min-width:1310px}.inline-quote-editor .inline-select-col{width:42px!important;text-align:center}.inline-quote-editor .inline-select-col input{width:16px;height:16px}
.inline-quote-editor tr.inline-selected-row{background:#eff6ff}
@media(max-width:900px){.inline-discount-card-head{flex-direction:column}.inline-discount-card-body{align-items:flex-start}}

/* v1.11.26 견적 목록 요약 + 수주관리형 품목입력 */
.quote-summary-panel{display:grid;gap:12px;padding:4px}.quote-summary-top{display:flex;align-items:center;justify-content:space-between;gap:12px;padding-bottom:10px;border-bottom:1px solid var(--line,#dfe5ec)}.quote-summary-top>div{display:grid;gap:3px}.quote-summary-top b{font-size:16px}.quote-summary-top span{font-size:12px;color:#667085}.quote-summary-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.quote-summary-grid>div,.quote-summary-section{padding:10px 12px;border:1px solid var(--line,#dfe5ec);border-radius:10px;background:#fff;display:grid;gap:4px}.quote-summary-grid span,.quote-summary-section>span{font-size:11px;color:#667085}.quote-summary-grid b,.quote-summary-section b{font-size:13px;overflow:hidden;text-overflow:ellipsis}.quote-summary-section p{margin:0;font-size:12px;line-height:1.55;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.quote-summary-actions{display:flex;gap:7px;flex-wrap:wrap}.order-style-item-editor .inline-quote-head{align-items:flex-end}.quote-inline-line-table{min-width:1660px}.quote-inline-line-table th,.quote-inline-line-table td{white-space:nowrap}.quote-inline-line-table .item-line-search{min-width:245px}.quote-inline-line-table .line-quantity-input{width:64px}.quote-inline-line-table input{min-height:34px}.record-detail-mode .sticky-panel{max-width:none}
@media(max-width:900px){.quote-summary-grid{grid-template-columns:1fr}.quote-summary-top{align-items:flex-start}}


/* v1.11.27 ERP 공통 UI 규격 준수
   신규 견적 요약·품목입력 화면은 기존 수주관리의 공통 폰트/버튼/입력/표 규격을 재사용한다. */
:root{
  --ui-font-size:11px;
  --ui-help-size:10px;
  --ui-title-size:12px;
  --ui-button-size:12px;
  --ui-control-height:35px;
  --ui-small-control-height:30px;
  --ui-table-row-height:36px;
  --ui-card-radius:12px;
  --ui-card-padding:11px;
}

/* 견적 요약: 목록 옆 읽기 전용 정보는 기존 상세창과 같은 비율 */
.quote-summary-panel{gap:10px;padding:0;font-size:var(--ui-font-size)}
.quote-summary-top{gap:10px;padding:0 0 9px}
.quote-summary-top>div{gap:2px;min-width:0}
.quote-summary-top b{font-size:var(--ui-title-size);line-height:1.35;color:var(--navy)}
.quote-summary-top span{font-size:var(--ui-help-size);line-height:1.45;color:var(--muted)}
.quote-summary-grid{gap:7px}
.quote-summary-grid>div,.quote-summary-section{padding:9px 10px;border-radius:9px;gap:3px}
.quote-summary-grid span,.quote-summary-section>span{font-size:var(--ui-help-size);line-height:1.4;color:var(--muted)}
.quote-summary-grid b,.quote-summary-section b{font-size:var(--ui-font-size);line-height:1.45;color:var(--text)}
.quote-summary-section p{font-size:var(--ui-font-size);line-height:1.5}
.quote-summary-actions{gap:7px}
.quote-summary-actions .primary,.quote-summary-actions .light,.quote-summary-actions .danger,.quote-summary-actions .success{font-size:var(--ui-button-size)}

/* 견적 전체상세 품목입력: 수주관리 수정의 line-table/line-select-box 규격 재사용 */
.inline-quote-editor{margin-top:13px;font-size:var(--ui-font-size)}
.inline-quote-head{align-items:center;gap:12px;margin-bottom:10px}
.inline-quote-head h4{margin:0 0 3px;font-size:var(--ui-title-size);line-height:1.4;color:var(--navy)}
.inline-quote-head span{font-size:var(--ui-help-size);line-height:1.45;color:var(--muted)}
.inline-quote-head>div:last-child{gap:7px;flex-wrap:wrap}
.inline-quote-head .primary,.inline-quote-head .light{font-size:var(--ui-button-size)}
.order-style-item-editor .inline-quote-head{align-items:center}

.quote-inline-line-table{font-size:var(--ui-font-size);border-collapse:collapse;table-layout:fixed}
.quote-inline-line-table thead th{height:var(--ui-table-row-height);padding:5px;background:#eaf1f8;color:#15324f;text-align:center;border-bottom:1px solid #cbd5e1;font-size:var(--ui-font-size)}
.quote-inline-line-table tbody td{height:var(--ui-table-row-height);padding:4px 5px;border-bottom:1px solid #edf2f7;font-size:var(--ui-font-size);vertical-align:middle}
.quote-inline-line-table tfoot td{height:38px;padding:5px;background:#f8fafc;border-top:2px solid #cbd5e1;font-size:var(--ui-font-size)}
.quote-inline-line-table input,.quote-inline-line-table select{height:31px;min-height:31px;padding:0 7px;border:1px solid #cbd5e1;border-radius:8px;background:#fff;font-size:var(--ui-font-size)}
.quote-inline-line-table input:focus,.quote-inline-line-table select:focus{border-color:var(--blue);box-shadow:0 0 0 3px rgba(30,91,143,.1);outline:none}
.quote-inline-line-table .item-line-search{min-width:245px;gap:5px}
.quote-inline-line-table .item-line-search-input{height:31px;font-size:var(--ui-font-size)}
.quote-inline-line-table .item-line-search-button{height:31px;padding:0 9px;font-size:var(--ui-font-size);border-radius:8px}
.quote-inline-line-table .line-quantity-input{width:54px!important;min-width:54px!important;max-width:54px!important;height:31px;text-align:center}
.quote-inline-line-table .line-select-box{width:54px;height:31px}
.quote-inline-line-table .line-select-box input{width:16px!important;height:16px!important;min-height:16px;padding:0}
.quote-inline-line-table .line-remove{width:28px;height:28px;font-size:14px}
.quote-inline-line-table .calculated-money{font-size:var(--ui-font-size)}

/* 할인카드 역시 공통 카드/버튼/입력 규격 사용 */
.inline-discount-card{margin:0 0 10px;padding:var(--ui-card-padding);border-radius:var(--ui-card-radius)}
.inline-discount-card-head{gap:10px;margin-bottom:8px}
.inline-discount-card-head b{font-size:var(--ui-title-size);line-height:1.4}
.inline-discount-card-head span,.inline-discount-card-head em{font-size:var(--ui-help-size);line-height:1.45}
.inline-discount-card-body{gap:7px}
.inline-discount-card .discount-preset{min-width:54px;height:var(--ui-small-control-height);padding:0 9px;font-size:10px;border-radius:8px}
.inline-discount-card .discount-manual label{font-size:var(--ui-help-size)}
.inline-discount-card .discount-manual input{width:78px;height:var(--ui-small-control-height);font-size:var(--ui-font-size)}
.inline-discount-card .discount-manual .light{height:var(--ui-small-control-height);font-size:var(--ui-button-size)}

/* 견적 비교/요청 카드도 기존 ERP 카드 제목 및 보조문구 크기로 통일 */
.request-reference-card,.quote-comparison-card{padding:12px;border-radius:12px}
.request-reference-card b,.quote-comparison-head b{font-size:var(--ui-title-size)}
.request-reference-card span,.quote-comparison-head span{font-size:var(--ui-help-size)}
.request-reference-grid strong{font-size:var(--ui-font-size)}
.request-reference-grid p{font-size:var(--ui-font-size)}
.quote-option-tab b{font-size:var(--ui-font-size)}
.quote-option-tab span,.quote-option-actions button,.quote-option-period{font-size:var(--ui-help-size)}

@media(max-width:900px){
  .order-style-item-editor .inline-quote-head{align-items:flex-start}
}


/* v1.11.28 견적 전체상세 품목표 실제 규격 통일
   수주관리 수정의 행/입력/버튼 크기를 그대로 사용하고 견적 계산열은 하단 합계카드로 분리한다. */
.quote-inline-line-table{width:100%;min-width:1080px;table-layout:fixed}
.quote-inline-table-scroll{max-width:100%}
.quote-inline-line-table col.quote-col-select{width:54px}
.quote-inline-line-table col.quote-col-item{width:300px}
.quote-inline-line-table col.quote-col-spec{width:105px}
.quote-inline-line-table col.quote-col-qty{width:54px}
.quote-inline-line-table col.quote-col-month{width:62px}
.quote-inline-line-table col.quote-col-price{width:115px}
.quote-inline-line-table col.quote-col-discount{width:88px}
.quote-inline-line-table col.quote-col-supply{width:120px}
.quote-inline-line-table col.quote-col-note{width:160px}
.quote-inline-line-table col.quote-col-delete{width:52px}
.quote-inline-line-table th,.quote-inline-line-table td{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.quote-inline-line-table .item-line-search{min-width:0;width:100%;grid-template-columns:minmax(0,1fr) 46px}
.quote-inline-line-table .quote-item-spec{color:var(--muted);text-align:left}
.quote-inline-line-table .quote-month-input{width:100%;text-align:center}
.quote-inline-line-table .quote-price-input{width:100%;text-align:right}
.quote-inline-line-table .line-discount-input{display:grid;grid-template-columns:minmax(0,1fr) 14px;align-items:center;gap:2px}
.quote-inline-line-table .line-discount-input input{width:100%;text-align:right}
.quote-inline-line-table .quote-note-input{width:100%}
.quote-inline-total-card{display:grid;grid-template-columns:repeat(5,minmax(120px,1fr));gap:8px;margin-top:10px;padding:10px;border:1px solid #dbe3ee;border-radius:var(--ui-card-radius);background:#f8fafc}
.quote-inline-total-card>div{display:grid;gap:4px;padding:8px 10px;border-right:1px solid #e2e8f0}
.quote-inline-total-card>div:last-child{border-right:0}
.quote-inline-total-card span{font-size:var(--ui-help-size);color:var(--muted)}
.quote-inline-total-card b{font-size:var(--ui-title-size);text-align:right;color:var(--text)}
.quote-inline-total-card .quote-total-final{background:#eaf1f8;border-radius:8px;border-right:0}
.quote-inline-total-card .quote-total-final b{color:var(--navy);font-size:14px}
@media(max-width:1100px){.quote-inline-total-card{grid-template-columns:repeat(2,minmax(0,1fr))}.quote-inline-total-card>div{border-right:0}}

/* v1.16 대시보드 카드 모아보기 + 부가설명 폰트 표준화 */
.summary-card.drill-card{cursor:pointer;transition:box-shadow .12s,transform .12s}
.summary-card.drill-card:hover{box-shadow:0 6px 18px rgba(15,23,42,.14);transform:translateY(-1px)}
.summary-card.drill-card:focus-visible{outline:2px solid var(--navy);outline-offset:2px}
.dashboard-drill-body{max-height:60vh;overflow-y:auto;display:flex;flex-direction:column;gap:8px;padding:4px 2px}
.drill-item{display:flex;justify-content:space-between;align-items:center;gap:12px;width:100%;text-align:left;border:1px solid #e2e8f0;border-radius:10px;background:#fff;padding:12px 14px;cursor:pointer}
.drill-item:hover{background:#f1f6fc;border-color:#c7d7ea}
.drill-item-main{display:flex;flex-direction:column;gap:3px;min-width:0}
.drill-item-main b{font-size:13px;color:#1f2937}
.drill-item-main span{font-size:12px;color:#64748b}
.drill-item-status{flex:none}
.drill-table tbody tr.drill-row{cursor:pointer}
.drill-table tbody tr.drill-row:hover{background:#f1f6fc}
.dashboard-drill-body .table-scroll{max-height:60vh;overflow-y:auto}
/* 부가설명(보조 설명) 표준 폰트: '수주관리 수정과 동일한 …' 안내문(.inline-quote-head span)과 동일 규격 */
.field-note-standard{font-size:12px;color:var(--muted);font-weight:400;line-height:1.5}
.detail-financial-note{margin-top:8px}
/* v1.18 판매·렌탈 기간 품목내역 = 청구 워크시트(견적서식 자유편집) */
.modal-dialog.large-dialog{width:min(1180px,100%)}
.site-period-item-modal-body{padding:16px 18px}
.site-period-item-modal-body .inline-quote-editor{margin:0}
.site-period-worksheet .period-service-flag{display:inline-block;margin-top:3px;font-size:10px;color:#b45309;font-weight:700}
.site-period-worksheet .quote-price-input[disabled],.site-period-worksheet .quote-month-input[disabled],.site-period-worksheet .line-discount-input input[disabled]{background:#f1f5f9;color:#94a3b8}
/* v1.19 추가납품 = 청구 워크시트(견적서식): 검색·다중선택·할인 프리셋·합계 카드 */
#siteOpDiscountToolbar:empty{display:none}
#siteOpDiscountToolbar{margin:0 0 10px}
.site-operation-table td.line-select-col,.site-operation-table th.line-select-col{min-width:34px!important;width:34px;text-align:center}
.site-operation-table td.line-select-col input{width:auto!important;min-width:0}
.site-operation-table .item-line-search{min-width:250px}
.site-operation-table .period-service-flag{display:inline-block;margin-top:3px;font-size:10px;color:#b45309;font-weight:700}
.site-operation-table .quote-price-input[disabled],.site-operation-table .quote-month-input[disabled],.site-operation-table .line-discount-input input[disabled]{background:#f1f5f9;color:#94a3b8}
.site-operation-totals .quote-inline-total-card{margin-top:10px}

/* ===== 2단계: 구인·스태프 관리 콘솔 ===== */
.recruit-tabs{display:flex;gap:6px;margin-bottom:14px;border-bottom:2px solid var(--line)}
.recruit-tab{height:40px;padding:0 18px;border:0;background:none;color:#64748b;font-size:13px;font-weight:900;cursor:pointer;border-bottom:3px solid transparent;margin-bottom:-2px;position:relative}
.recruit-tab.active{color:#184f7e;border-bottom-color:#184f7e}
.recruit-badge{display:inline-flex;align-items:center;justify-content:center;min-width:17px;height:17px;padding:0 4px;border-radius:9px;background:#dc2626;color:#fff;font-size:10px;font-weight:900;margin-left:2px}
.recruit-toolbar{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;margin-bottom:14px}
.recruit-summary{display:flex;gap:10px;flex-wrap:wrap}
.recruit-summary .summary-card{min-width:130px}
.recruit-hint{font-size:12px;color:#64748b;background:#f1f5f9;border-radius:9px;padding:10px 13px;line-height:1.6;flex:1}
.recruit-list{display:flex;flex-direction:column;gap:10px}
.recruit-card{display:flex;align-items:center;justify-content:space-between;gap:14px;background:#fff;border:1px solid var(--line);border-radius:12px;padding:14px 16px;box-shadow:0 1px 4px rgba(24,47,84,.05)}
.recruit-card-main{flex:1;min-width:0}
.recruit-card-head{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-bottom:7px}
.recruit-card-head b{font-size:14.5px;color:#1b2432}
.recruit-no{font-size:11px;color:#94a3b8;font-weight:700}
.recruit-card-meta{display:flex;gap:6px 16px;flex-wrap:wrap;font-size:12.5px;color:#5b6b7c}
.recruit-wage{color:#184f7e;font-weight:900}
.recruit-card-actions{display:flex;gap:6px;flex-shrink:0;flex-wrap:wrap;justify-content:flex-end}
.recruit-card-actions .recruit-badge{margin-left:4px}
.chip-mini{display:inline-block;font-size:10px;font-weight:800;padding:2px 7px;border-radius:12px;background:#eaf1fb;color:#184f7e}
.applicants-body{max-height:60vh;overflow-y:auto;padding:4px 2px}
.applicant-row{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;padding:13px 6px;border-bottom:1px solid var(--line)}
.applicant-row:last-child{border-bottom:0}
.applicant-info{flex:1;min-width:0}
.applicant-name{display:flex;align-items:center;gap:7px;font-size:14px;margin-bottom:4px}
.applicant-sub{font-size:12px;color:#64748b}
.applicant-memo{font-size:12.5px;color:#48525f;margin-top:6px;background:#f8fafc;border-radius:8px;padding:7px 10px}
.applicant-actions{display:flex;gap:6px;flex-shrink:0}
.applicant-done{font-size:12px;color:#64748b;font-weight:800;padding:6px 4px}
@media(max-width:720px){
  .recruit-card{flex-direction:column;align-items:stretch}
  .recruit-card-actions{justify-content:flex-start}
}

/* ===== 기본 비밀번호 보안 경고 배너 ===== */
.default-pw-banner{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin:0 0 12px;padding:11px 14px;background:#fee2e2;border:1px solid #fca5a5;color:#991b1b;border-radius:10px;font-size:12.5px;font-weight:700}
.default-pw-banner button{margin-left:auto}
.default-pw-banner button + button{margin-left:6px}
