:root{font-family:Arial,'Noto Sans KR',sans-serif;color:#213c38;background:#f6f8f8;font-size:16px}*{box-sizing:border-box}body{margin:0}header{display:flex;justify-content:space-between;align-items:center;gap:16px;background:#243831;color:white;padding:20px 24px}h1{font-size:23px;margin:6px 0 0}h2{font-size:18px;margin:0 0 16px}.eyebrow{font-size:12px;letter-spacing:2px;color:#b9d7c9}.spec{margin:0;padding:16px 24px;border-bottom:1px solid #d5dfdc;background:white;font-size:14px;line-height:1.7}button{font:inherit;cursor:pointer;padding:10px 16px;border:1px solid #176449;background:#176449;color:#fff;border-radius:6px;font-weight:600;min-height:42px}button:hover{filter:brightness(.93)}button:disabled{opacity:.45;cursor:not-allowed}.secondary{background:white;color:#264d40;border-color:#afc4bb}select{font:inherit;padding:8px;max-width:100%;border:1px solid #b8c9c0;border-radius:4px;background:#fff;color:#213c38}input[type=checkbox]{width:18px;height:18px;vertical-align:middle;accent-color:#176449}.drop{margin:24px;padding:45px 20px;text-align:center;border:2px dashed #95aca3;background:#fff;border-radius:8px;cursor:pointer}.drop.drag{background:#e4f2ea;border-color:#176449}.drop p{line-height:1.8}.layout{display:grid;grid-template-columns:minmax(235px,32%) minmax(0,1fr);min-height:550px}aside{padding:22px;background:#eaf0ed;border-right:1px solid #d0dcd5;overflow-wrap:anywhere}.viewer{padding:18px;min-width:0}.toolbar{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-bottom:12px}.toolbar label{display:flex;align-items:center;gap:5px;font-size:14px;max-width:100%}.toolbar select{max-width:230px}.stage{height:330px;overflow:auto;background:#dce2e0;display:flex;align-items:flex-start;justify-content:flex-start;padding:18px;border-radius:5px;position:relative}.sheet{position:relative;flex:none;margin:auto;box-shadow:0 3px 14px #0003;background:white}.sheet canvas{display:block}.guide{position:absolute;border:1px dashed #e03968;pointer-events:none}.small,footer{font-size:13px;color:#546b62;line-height:1.7}.badge{padding:18px 14px;border-radius:6px;margin-bottom:16px;background:#d5eadd;color:#164c31;font-weight:bold}.badge.warn{background:#fff1d6;color:#7d4b08}.report-item{font-size:14px;line-height:1.7;border-bottom:1px solid #c5d5cc;padding:12px 0}.report-item strong{display:block}.issue{color:#8d3e12}.approve{margin-top:20px}.approve label{font-size:14px;line-height:1.7;display:block;margin-bottom:12px}.approve button{width:100%;margin-bottom:8px}#approved{font-size:14px;line-height:1.6}footer{padding:14px 24px;background:#fff;border-top:1px solid #d5dfdc}#progress{padding:30px}progress{width:100%;height:12px;accent-color:#176449}.thumbnails{display:flex;gap:10px;overflow-x:auto;padding:10px 0}.thumb{flex:none;width:95px;background:#fff;color:#264d40;border-color:#b9c9c1;font-size:12px;padding:6px}.thumb canvas{max-width:80px;max-height:80px;margin:auto;display:block}.thumb.active{outline:2px solid #176449}[hidden]{display:none!important}button:focus-visible,select:focus-visible,.drop:focus-visible{outline:3px solid #349bc1;outline-offset:2px}@media(max-width:660px){header{padding:16px}h1{font-size:20px}.layout{grid-template-columns:1fr}aside{border-right:0;border-bottom:1px solid #d0dcd5}.stage{height:300px}.spec{padding:12px 16px}.toolbar select{max-width:190px}}
