
*{box-sizing:border-box} body{margin:0;font-family:-apple-system,'Apple SD Gothic Neo','Noto Sans KR',sans-serif;color:#1f2937;background:#f4f5f7;line-height:1.65;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}
.wrap{max-width:980px;margin:0 auto;padding:24px}
header.top{background:#113967;color:#fff;padding:20px 0}
header.top .wrap{padding-top:0;padding-bottom:0}
header.top a{color:#cdd9ea;text-decoration:none}
h1{font-size:22px;margin:.2em 0} h2{font-size:18px;border-bottom:2px solid #e5e7eb;padding-bottom:6px;margin-top:1.6em}
h3{font-size:15px;color:#374151}
.card{background:#fff;border:1px solid #eef0f3;border-radius:14px;padding:22px 26px;margin:16px 0;box-shadow:0 1px 2px rgba(16,24,40,.04),0 8px 20px -12px rgba(16,24,40,.10)}
table{border-collapse:collapse;width:100%;font-size:13px}
th,td{padding:11px 12px;text-align:left;vertical-align:top;border-bottom:1px solid #eef0f3}
th{font-weight:600;color:#6b7280;font-size:12px}
tbody tr:last-child td{border-bottom:0} tbody tr:hover td{background:#f8fafc}
.vlist td{vertical-align:middle} .vlist td,.vlist th{padding:12px 12px} .vlist th{border-bottom:2px solid #e5e7eb}
.b-clean{color:#067647;font-weight:600} .b-remediated{color:#1d4ed8;font-weight:600} .b-infected{color:#b42318;font-weight:700}
.pill{display:inline-block;font-size:11px;padding:1px 8px;border-radius:99px;background:#eef2ff;color:#3730a3}
.muted{color:#6b7280;font-size:13px} ul{padding-left:20px} .foot{color:#9ca3af;font-size:12px;margin-top:30px}
a.btn,button.btn{display:inline-block;background:#113967;color:#fff;padding:9px 16px;border:0;border-radius:8px;text-decoration:none;font-size:13px;font-weight:600;line-height:1.2;cursor:pointer;font-family:inherit}
a.btn:hover,button.btn:hover{background:#0f2c50}
.btn-ghost{background:#eef2ff!important;color:#1d4ed8!important}
.mail{background:#fcfcfd;border:1px dashed #c7d2fe;border-radius:8px;padding:14px 18px;margin:8px 0 4px}
.mail h3{margin-top:0} .nav{margin:4px 0 14px} .nav a{margin-right:14px}
.mainnav{background:#0f2c50;position:sticky;top:0;z-index:30;box-shadow:0 2px 8px rgba(16,24,40,.12)} .mainnav .wrap{padding:0 24px;display:flex;gap:2px;flex-wrap:wrap}
.mainnav a{color:#cdd9ea;text-decoration:none;padding:12px 18px;font-size:14px;border-bottom:3px solid transparent}
.mainnav a:hover{color:#fff;background:rgba(255,255,255,.07)}
.mainnav a.active{color:#fff;border-bottom-color:#60a5fa;font-weight:700}
.mainnav .navbadge{display:inline-block;min-width:17px;height:17px;line-height:17px;text-align:center;background:#e5484d;color:#fff;border-radius:9px;font-size:10px;font-weight:700;margin-left:5px;padding:0 4px;vertical-align:middle}
.mainnav .navsep{color:#6b86a8;font-size:10px;padding:0 4px 0 16px;align-self:center;letter-spacing:.5px;border-left:1px solid rgba(255,255,255,.12);margin-left:8px}
.crumb{font-size:13px;margin:18px 0 10px} .crumb a{color:#6b7280;text-decoration:none;font-weight:600} .crumb a:hover{color:#113967}
.dl{display:inline-flex;align-items:center;gap:6px;background:#eef2ff;color:#1d4ed8;padding:9px 14px;border-radius:8px;text-decoration:none;font-size:13px;margin:4px 8px 4px 0;font-weight:600}
.dl:hover{background:#e0e7ff} .docimg{max-width:300px;width:100%;border:1px solid #e5e7eb;border-radius:8px;margin:8px 12px 8px 0}
.grid2{display:flex;gap:18px;flex-wrap:wrap} .grid2>div{flex:1;min-width:260px}
.tabs>input{position:absolute;opacity:0;pointer-events:none}
.tabs>label{display:inline-block;padding:11px 18px;cursor:pointer;border:1px solid #eef0f3;border-bottom:none;border-radius:10px 10px 0 0;background:#eef0f3;margin-right:4px;font-size:13px;font-weight:600;color:#6b7280;transition:background .15s,color .15s}
.tabs>label:hover{color:#113967;background:#e4e8ee}
.tabs>input:checked+label{background:#113967;color:#fff}
.tabs .panels{border:1px solid #eef0f3;border-radius:0 14px 14px 14px;background:#fff;padding:24px;margin-top:-1px;box-shadow:0 8px 20px -12px rgba(16,24,40,.10)}
.tabs .panel{display:none} .tabs .panel h3{margin-top:0}
.tabs>#t-contract:checked~.panels #p-contract,.tabs>#t-service:checked~.panels #p-service,.tabs>#t-maint:checked~.panels #p-maint,.tabs>#t-notice:checked~.panels #p-notice,.tabs>#t-ticket:checked~.panels #p-ticket{display:block}
.subhead{margin:26px 0 4px;padding-top:18px;border-top:1px solid #eef0f3;font-size:16px;color:#113967}
.subhead:first-child{border-top:0;padding-top:0;margin-top:0}
.tk{border:1px solid #e5e7eb;border-radius:10px;margin:14px 0;overflow:hidden}.tk h3{margin:0;padding:12px 16px;background:#f7f8fa;font-size:15px;border-bottom:1px solid #eaecef}
.msg{padding:10px 16px;border-bottom:1px solid #f1f2f4}.msg.admin{background:#eef4ff}.msg .who{font-size:12px;color:#6b7280;margin-bottom:2px}
.mlog{border-left:3px solid #1d4ed8;padding:4px 0 4px 14px;margin:12px 0} .mlog.auto{border-color:#067647}
.tg{display:inline-block;font-size:11px;padding:1px 8px;border-radius:99px;background:#eef2ff;color:#3730a3;margin-left:6px}
.tg.auto{background:#ecfdf3;color:#067647}
@media print{header.top,.mainnav,.nav,.no-print,.foot,.subhead{box-shadow:none}header.top,.mainnav,.nav,.no-print,.foot{display:none!important}.wrap{max-width:100%}.card{box-shadow:none;border:1px solid #ddd}body{background:#fff}}
.ic{width:1em;height:1em;stroke:currentColor;fill:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;vertical-align:-.15em;margin-right:.3em;flex:none}
/* 청구서 (고객 발송용) — 정돈된 청구서 레이아웃 */
.invoice h1{font-size:24px;letter-spacing:-.5px;margin:0 0 2px}
.invoice h2{font-size:15px;margin-top:1.8em;border-bottom:1px solid #e5e7eb;padding-bottom:7px;color:#113967}
.invoice .inv-sub{margin:0 0 16px}
.invoice .inv-meta{margin:6px 0 4px}
.invoice .inv-meta th{width:96px;white-space:nowrap;color:#6b7280;font-weight:600;font-size:13px;border-bottom:1px solid #eef0f3}
.invoice .inv-meta td{font-size:13px;border-bottom:1px solid #eef0f3}
.invoice .inv-lines th{background:#f8fafc;color:#374151;font-size:12px;border-bottom:2px solid #d1d5db}
.invoice .inv-lines td{font-size:13px}
.invoice .inv-lines tr:hover td{background:transparent}
.invoice .inv-lines .inv-subtotal td{border-top:1px solid #e5e7eb;padding-top:13px}
.invoice .inv-lines .inv-total td{border-top:2px solid #113967;border-bottom:0;color:#113967;padding:14px 12px}
.invoice .inv-lines .inv-total strong{font-size:18px}
.invoice ul.inv-feats{columns:2;column-gap:32px;padding-left:18px;margin:8px 0}
.invoice ul.inv-feats li{margin:4px 0;break-inside:avoid;font-size:13px}
.invoice .inv-pay{display:inline-block;background:#f8fafc;border:1px solid #eef0f3;border-radius:10px;padding:11px 16px;font-weight:600;font-size:14px;margin:4px 0}
@media(max-width:640px){.invoice ul.inv-feats{columns:1}}
/* 입력 포커스 링 + 전환 + 접근성 + 모바일 (UI 현대화 2026-06-15) */
input[type=text],input[type=email],input[type=password],input[type=date],textarea,select{transition:border-color .15s,box-shadow .15s}
input[type=text]:focus,input[type=email]:focus,input[type=password]:focus,input[type=date]:focus,textarea:focus,select:focus{outline:0;border-color:#2563eb!important;box-shadow:0 0 0 3px rgba(37,99,235,.15)}
a.btn,button.btn{transition:background .15s,transform .06s,box-shadow .15s;box-shadow:0 1px 2px rgba(16,24,40,.12)}
a.btn:active,button.btn:active{transform:translateY(1px)}
.dl{transition:background .15s} .card{transition:box-shadow .2s}
:focus-visible{outline:2px solid #2563eb;outline-offset:2px}
@media(max-width:640px){
.wrap{padding:16px} .card{padding:16px;border-radius:12px}
.mainnav .wrap{padding:0 6px;overflow-x:auto;flex-wrap:nowrap;-webkit-overflow-scrolling:touch}
.mainnav a{padding:11px 12px;font-size:13px;white-space:nowrap}
h1{font-size:20px} table{font-size:12px} th,td{padding:8px 8px}
.tabs>label{padding:9px 12px;font-size:12px;margin-right:2px} .tabs .panels{padding:16px}
header.top .wrap{padding:0 16px}
}
