*{box-sizing:border-box}body{margin:0;background:#f3f5f1;color:#263e30;font:14px system-ui}header{display:flex;gap:20px;padding:24px 4%;background:white;border-bottom:1px solid #dde4dc;align-items:center}header strong{font-size:24px}header small{margin-left:auto;color:#738476}main{max-width:1440px;margin:30px auto;padding:0 28px}h1{font-size:29px}p{color:#768577;line-height:1.7}.workspace{display:grid;grid-template-columns:290px 1fr;gap:24px}section{background:white;border:1px solid #dde4dc;border-radius:12px;padding:20px;margin-bottom:16px}h3{font-size:14px}button,input,select{font:inherit;color:inherit;border:1px solid #d5dfd5;background:white;border-radius:7px;padding:9px}button{cursor:pointer}button:hover{background:#eaf3eb}button:disabled{opacity:.45;cursor:default}input,select{width:100%;margin-top:6px}label{display:block;font-size:12px;margin:12px 0}.primary{background:#285c43;color:white}.primary:hover{background:#184b32}.upload{padding:25px 8px;width:100%;border:2px dashed #9cb5a4;background:#f8fbf6}.pair{display:flex;gap:8px}.pair>*{flex:1;min-width:0}.hint{font-size:12px;color:#849084;line-height:1.7}.toolbar{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:12px;background:white;border-radius:10px}.toolbar button{padding:7px 9px}#pages{padding:24px;background:#e5eae2;min-height:650px;border-radius:0 0 12px 12px}.sheet{position:relative;max-width:720px;margin:0 auto 22px;background:white;box-shadow:0 5px 20px #243a2515}.layout-row{position:absolute;border:1px dashed #dce5db}.layout-row.selected{outline:2px solid #44845b}.tile{position:absolute;cursor:grab;border:1px solid #e6ece4;background:#fafcf9;touch-action:none}.tile img{width:100%;height:100%;object-fit:contain;pointer-events:none}.tile button{position:absolute;bottom:3px;left:3px;padding:4px 7px;font-size:11px}.tile .remove{left:auto;right:3px;top:3px;bottom:auto}.drop-zone{position:absolute;left:0;width:100%;height:12px;z-index:2}.drop-zone.over,.layout-row.over{background:#83d3a055;outline:3px solid #3d9d63}.empty{text-align:center;padding:120px 15px;color:#7c917e}.caption{text-align:center;margin:8px;color:#6b7e6e;font-size:12px}#status,#editStatus{font-size:12px;white-space:pre-line;margin:12px 0;line-height:1.6}dialog{border:0;border-radius:14px;width:min(1250px,96vw);max-height:95vh;overflow:auto;color:inherit}dialog::backdrop{background:#15291dd9}.edit-grid{display:grid;grid-template-columns:minmax(0,1fr) 250px;gap:22px;margin-top:15px}#viewport{height:59vh;overflow:auto;background:#dfe5db;position:relative}canvas{display:block}#editCanvas{touch-action:none}#result canvas{max-width:100%;height:auto;max-height:350px;object-fit:contain}#result{margin:15px 0}#pdfThumbs{display:grid;grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:12px;max-height:60vh;overflow:auto}#pdfThumbs canvas{width:100%}#pdfThumbs input{width:auto}#pdfThumbs label{border:1px solid #ddd;padding:8px}hr{border:0;border-top:1px solid #eee}@media(max-width:800px){.workspace,.edit-grid{grid-template-columns:1fr}main{padding:0 12px}#pages{padding:12px}header small{display:none}}
.edit-grid>*{min-width:0}#viewport{width:100%}.edit-grid .toolbar{flex-wrap:wrap}.edit-grid aside>button{margin:3px 0}dialog .pair{flex-wrap:wrap}
#viewport{overflow:hidden;touch-action:none;cursor:grab}#viewport:active{cursor:grabbing}#editCanvas{position:absolute;left:0;top:0;transform-origin:0 0;max-width:none}#result{min-height:160px;background:#e5eae2;border-radius:8px;padding:12px}#result canvas{margin:auto;max-height:46vh}
.tile>button:not(.remove){top:3px;bottom:auto;left:3px}#viewport,#viewport:active{cursor:default}#editCanvas{cursor:inherit}.task-switch{margin:12px 0}.task-switch button[aria-pressed=true],#handTool[aria-pressed=true]{background:#285c43;color:white;border-color:#285c43}
#editor>.toolbar{position:sticky;top:0;z-index:5;border-bottom:1px solid #dde4dc}.edit-grid aside{position:relative}#apply{position:sticky;bottom:0;z-index:4;width:100%;box-shadow:0 -5px 12px #ffffff}#batchStatus{white-space:pre-line}#draftStatus{font-size:12px;color:#4e725d}.layout-row.over{border-left:5px solid #298f54}.drop-zone.over{border-top:4px solid #298f54}
