.contract-app{--bg:#f6f7f9;--panel:#fff;--ink:#15171a;--muted:#6b7280;--line:#d9dde5;--accent:#1f2937;--accent2:#2563eb;--danger:#b91c1c;--warn-bg:#fff7ed;--warn-line:#fed7aa;--ok-bg:#f0fdf4;--ok-line:#bbf7d0;--shadow:0 12px 35px #0f172a14;background:var(--bg);color:var(--ink);min-height:100vh;font-family:system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;line-height:1.45}.contract-app *{box-sizing:border-box}.contract-app .app-header{z-index:10;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-bottom:1px solid var(--line);background:#f6f7f9e6;position:sticky;top:0}.contract-app .app-header-inner{justify-content:space-between;align-items:center;gap:16px;max-width:1280px;margin:0 auto;padding:16px 20px;display:flex}.contract-app .brand h1{letter-spacing:-.02em;margin:0;font-size:20px}.contract-app .brand p{color:var(--muted);margin:3px 0 0;font-size:13px}.contract-app .top-actions{flex-wrap:wrap;justify-content:flex-end;gap:8px;display:flex}.contract-app button{appearance:none;border:1px solid var(--accent);background:var(--accent);color:#fff;cursor:pointer;border-radius:10px;padding:10px 14px;font-size:14px;font-weight:700}.contract-app button.secondary{color:var(--accent);border-color:var(--line);background:#fff}.contract-app button:hover{filter:brightness(.97)}.contract-app .layout{grid-template-columns:380px 1fr;align-items:start;gap:22px;max-width:1280px;margin:22px auto;padding:0 20px 40px;display:grid}.contract-app .panel{background:var(--panel);border:1px solid var(--line);box-shadow:var(--shadow);border-radius:18px}.contract-app .controls{max-height:calc(100vh - 100px);padding:18px;position:sticky;top:86px;overflow-y:auto}.contract-app .controls h2{margin:0 0 12px;font-size:18px}.contract-app .help{color:var(--muted);margin:0 0 18px;font-size:13px}.contract-app .field-group{border-top:1px solid var(--line);margin-top:16px;padding-top:16px}.contract-app .field-group:first-of-type{border-top:0;margin-top:0;padding-top:0}.contract-app .field-group h3{color:#111827;margin:0 0 10px;font-size:14px}.contract-app label{margin:11px 0 5px;font-size:13px;font-weight:700;display:block}.contract-app input,.contract-app select,.contract-app textarea{border:1px solid var(--line);width:100%;color:var(--ink);background:#fff;border-radius:10px;padding:10px 11px;font-size:14px}.contract-app input:focus,.contract-app textarea:focus,.contract-app select:focus{border-color:var(--accent2);outline:2px solid #2563eb33}.contract-app .two-col{grid-template-columns:1fr 1fr;gap:10px;display:grid}.contract-app .radio-row{gap:10px;display:flex}.contract-app .radio{border:1px solid var(--line);cursor:pointer;border-radius:10px;flex:1;justify-content:center;align-items:center;gap:6px;margin:0;padding:10px;font-size:13px;font-weight:700;display:flex}.contract-app .radio input{width:auto}.contract-app label.check{align-items:center;gap:7px;margin:12px 0 5px;font-weight:600;display:flex}.contract-app label.check input{width:auto}.contract-app .weekday-row{grid-template-columns:repeat(7,1fr);gap:5px;display:grid}.contract-app .weekday{border:1px solid var(--line);cursor:pointer;border-radius:8px;flex-direction:column;align-items:center;gap:3px;margin:0;padding:6px 0;font-size:12px;font-weight:700;display:flex}.contract-app .weekday.on{border-color:var(--accent2);color:var(--accent2);background:#eff6ff}.contract-app .weekday input{width:auto}.contract-app .hint{color:var(--muted);margin:5px 0 0;font-size:12px}.contract-app details{border-top:1px solid var(--line);margin-top:15px;padding-top:15px}.contract-app summary{cursor:pointer;font-size:14px;font-weight:800}.contract-app .warning,.contract-app .ok-box{border-radius:12px;margin-top:12px;padding:12px 13px;font-size:13px}.contract-app .warning{background:var(--warn-bg);border:1px solid var(--warn-line);color:#7c2d12}.contract-app .warning.critical{color:var(--danger);background:#fef2f2;border-color:#fecaca}.contract-app .ok-box{background:var(--ok-bg);border:1px solid var(--ok-line);color:#166534}.contract-app .minwage-formula{opacity:.85;border-top:1px dashed;margin-top:8px;padding-top:8px;font-size:12px}.contract-app .preview-wrap{padding:18px;overflow-x:auto}.contract-app .contract-page{color:#111;width:210mm;height:297mm;box-shadow:var(--shadow);background:#fff;border:1px solid #cfd5df;margin:0 auto 18px;padding:18mm;font-family:Malgun Gothic,Apple SD Gothic Neo,Noto Sans KR,sans-serif;font-size:10.5pt;line-height:1.5;overflow:hidden}.contract-app .contract-page.measure{height:auto;overflow:visible}.contract-measure{visibility:hidden;pointer-events:none;position:absolute;top:0;left:-9999px}.contract-app .contract-title{text-align:center;letter-spacing:.06em;margin:0 0 15px;font-size:19pt;font-weight:800}.contract-app .contract-page p{margin:0 0 5px}.contract-app .contract-page .indent{margin-bottom:6px}.contract-app .info-table,.contract-app .contract-table,.contract-app .wage-table{border-collapse:collapse;table-layout:fixed;width:100%;margin:6px 0 9px}.contract-app .info-table th,.contract-app .info-table td,.contract-app .contract-table th,.contract-app .contract-table td,.contract-app .wage-table th,.contract-app .wage-table td{vertical-align:middle;border:1px solid #222;padding:5px 6px}.contract-app .info-table th,.contract-app .contract-table th,.contract-app .wage-table th{text-align:center;background:#f3f4f6;font-weight:800}.contract-app .info-table td{text-align:center}.contract-app .wage-table{font-size:9.2pt}.contract-app .wage-table th,.contract-app .wage-table td{word-break:keep-all;padding:4px 5px}.contract-app .wage-table td.small-text{white-space:pre-line}.contract-app .wage-table td:first-child,.contract-app .wage-table th:first-child{white-space:nowrap}.contract-app .contract-table td,.contract-app .contract-table th{word-break:keep-all}.contract-app .contract-table .bigo{font-size:8.8pt;line-height:1.35}.contract-app .contract-page .section-title{margin:3.6em 0 .5em;font-size:11pt;font-weight:900}.contract-app .indent{padding-left:12px}.contract-app .fill{text-align:center;border-bottom:1px solid #333;min-width:62px;padding:0 3px;font-weight:700;display:inline-block}.contract-app .fill.long{min-width:160px}.contract-app .fill.mid{min-width:100px}.contract-app .right{text-align:right}.contract-app .center{text-align:center}.contract-app .signature-row{grid-template-columns:1fr 1fr;gap:18px;margin-top:22px;font-size:11pt;display:grid}.contract-app .sign-cell{align-items:center;gap:4px;display:flex}.contract-app .sign-cell.worker{justify-content:flex-end}.contract-app .stamp-mark{margin-left:2px}.contract-app .stamp-anchor{align-items:center;display:inline-flex;position:relative}.contract-app .stamp-overlay{object-fit:contain;pointer-events:none;width:45px;max-width:none;height:45px;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.contract-app .sign-line{vertical-align:middle;text-align:center;border-bottom:1px solid #111;min-width:130px;height:20px;display:inline-block}.contract-app .sign-line.rep{min-width:84px}.contract-app .small-text{font-size:9.4pt}.contract-app .screen-only{display:block}.contract-app .print-only{display:none}@media (max-width:1000px){.contract-app .layout{grid-template-columns:1fr}.contract-app .controls{max-height:none;position:static;overflow:visible}.contract-app .contract-page{transform-origin:0 0}}.contract-app .special-input{resize:vertical;margin-top:8px;font-family:inherit;line-height:1.6}.contract-app .special-terms{white-space:pre-wrap;line-height:1.7}.contract-app .special-blank div{border-bottom:1px solid #999;height:2.2em;margin:0 2mm 2mm}@media print{@page{size:A4;margin:0}html,body{background:#fff;margin:0;padding:0}.site-header,.tool-bar,.footer,.contract-app .app-header,.contract-app .controls,.contract-app .screen-only,.contract-measure{display:none!important}.contract-app .layout{max-width:none;margin:0;padding:0;display:block}.contract-app .preview-wrap{padding:0;overflow:visible}.contract-app .contract-page{width:210mm;height:297mm;box-shadow:none;page-break-after:always;border:0;margin:0;overflow:hidden}.contract-app .contract-page:last-child{page-break-after:auto}}.contract-page .clause-list{margin:.2em 0 .4em;padding-left:2.1em;list-style:decimal}.contract-page .clause-list li{word-break:keep-all;margin:.15em 0;line-height:1.6}.contract-page .agree-line{text-align:right;margin:.35em 0 .6em}
