:root{color:#19212a;background:#f4f6f8;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased}*{box-sizing:border-box}body{margin:0;min-width:320px}button,a.button-link{align-items:center;background:#fff;border:1px solid #d6dde5;border-radius:7px;color:#202933;cursor:pointer;display:inline-flex;font:inherit;font-weight:650;gap:8px;justify-content:center;min-height:38px;padding:8px 12px;text-decoration:none;transition:background .15s ease,border-color .15s ease,box-shadow .15s ease,transform .15s ease}button:hover,a.button-link:hover{background:#f8fafc;border-color:#aeb9c6}button:disabled,.button-link.disabled{cursor:not-allowed;opacity:.45;pointer-events:none}.primary-button{background:#155eef;border-color:#155eef;color:#fff}.primary-button:hover{background:#0f4fd0;border-color:#0f4fd0}.app{min-height:100vh;padding:24px}.topbar{align-items:flex-start;display:flex;gap:24px;justify-content:space-between;margin:0 auto 18px;max-width:1500px}h1,h2,p{margin:0}h1{font-size:28px;line-height:1.15}h2{font-size:15px;line-height:1.2}.topbar p{color:#5d6b7a;font-size:14px;margin-top:7px}.toolbar{display:flex;flex-wrap:wrap;gap:10px;justify-content:flex-end}.hidden-input{display:none}.error-list{background:#fff5f4;border:1px solid #ffc7c0;border-radius:8px;color:#9f2d20;display:grid;gap:6px;margin:0 auto 16px;max-width:1500px;padding:12px 14px}.workspace{display:grid;gap:14px;grid-template-columns:minmax(220px,.75fr) minmax(420px,2fr) minmax(300px,1fr);margin:0 auto;max-width:1500px}.panel,.preview-panel{background:#fff;border:1px solid #dfe5ec;border-radius:8px;min-width:0}.panel{display:flex;flex-direction:column;min-height:650px}.panel-heading{align-items:center;border-bottom:1px solid #e5ebf1;display:flex;justify-content:space-between;gap:12px;padding:14px 16px}.panel-heading span{color:#697789;font-size:12px;white-space:nowrap}.file-panel,.output-panel,.source-panel{max-height:calc(100vh - 138px)}.source-scroll,.selected-list,.file-list{overflow:auto}.source-scroll{padding:14px}.file-list{display:grid;gap:10px;padding:14px}.file-item{align-items:start;border:1px solid #e5ebf1;border-radius:8px;display:grid;gap:8px;grid-template-columns:1fr auto;padding:11px}.file-item strong,.selected-copy strong,.pdf-group-title strong{display:block;overflow-wrap:anywhere}.file-item span,.selected-copy span,.stats,.empty-state span{color:#697789;font-size:12px}.file-item button,.selected-page>button,.drag-handle{min-height:30px;padding:5px}.empty-upload,.empty-state{align-items:center;color:#697789;display:flex;flex:1;flex-direction:column;gap:9px;justify-content:center;margin:14px;min-height:180px;text-align:center}.empty-upload{border:1px dashed #b9c4d1;width:calc(100% - 28px)}.stats{border-top:1px solid #e5ebf1;display:grid;gap:8px;margin-top:auto;padding:14px 16px}.pdf-group+.pdf-group{margin-top:22px}.pdf-group-title{align-items:center;display:flex;gap:12px;justify-content:space-between;margin-bottom:10px}.pdf-group-title span{color:#697789;font-size:12px}.page-grid{display:grid;gap:12px;grid-template-columns:repeat(auto-fill,minmax(118px,1fr))}.page-thumb{align-items:stretch;border-color:#dce3eb;display:grid;gap:0;justify-content:stretch;min-height:176px;padding:0;text-align:left}.page-thumb.selected{border-color:#155eef;box-shadow:0 0 0 2px #155eef29}.image-card{background:#fff;border:1px solid #dce3eb;overflow:hidden}.image-card-actions{border-top:1px solid #e5ebf1;display:grid;gap:8px;grid-template-columns:1fr 1fr;padding:8px}.image-card-actions button{min-height:32px;padding:6px 8px}.thumb-canvas{align-items:center;background:#f7f9fb;border-bottom:1px solid #e5ebf1;display:flex;height:140px;justify-content:center;overflow:hidden}.thumb-canvas canvas{display:block;max-height:132px;max-width:100%}.thumb-canvas img{display:block;max-height:132px;max-width:100%;object-fit:contain}.image-thumb{background:linear-gradient(45deg,#eef2f6 25%,transparent 25%),linear-gradient(-45deg,#eef2f6 25%,transparent 25%),linear-gradient(45deg,transparent 75%,#eef2f6 75%),linear-gradient(-45deg,transparent 75%,#eef2f6 75%);background-color:#fff;background-position:0 0,0 8px,8px -8px,-8px 0;background-size:16px 16px}.mini-image-page{background:#fff;box-shadow:0 4px 12px #1b27331f;max-height:132px;max-width:calc(100% - 14px);overflow:hidden;pointer-events:none;position:relative;width:92px}.thumb-meta{align-items:center;display:flex;font-size:12px;justify-content:space-between;min-height:34px;padding:7px 9px}.thumb-meta strong{color:#155eef}.image-editor-group{border:1px solid #e3e9f0;border-radius:8px;padding:12px}.image-editor{align-items:start;display:grid;gap:14px;grid-template-columns:minmax(180px,.75fr) minmax(220px,1fr)}.image-page-wrap{align-items:center;background:#eef2f6;border:1px solid #dce3eb;border-radius:7px;display:flex;justify-content:center;min-height:260px;padding:14px}.image-page{background:linear-gradient(45deg,#edf1f5 25%,transparent 25%),linear-gradient(-45deg,#edf1f5 25%,transparent 25%),linear-gradient(45deg,transparent 75%,#edf1f5 75%),linear-gradient(-45deg,transparent 75%,#edf1f5 75%);background-color:#fff;background-position:0 0,0 8px,8px -8px,-8px 0;background-size:16px 16px;box-shadow:0 10px 28px #1b273324;container-type:inline-size;max-height:360px;max-width:100%;overflow:hidden;position:relative;width:100%}.image-page.selected{box-shadow:0 0 0 2px #155eef,0 10px 28px #1b273324}.image-page-asset{display:block;height:100%;object-fit:fill;position:absolute;width:100%}.image-crop-frame{cursor:move;overflow:hidden;position:absolute;touch-action:none;-webkit-user-select:none;user-select:none}.canvas-text{cursor:move;font-family:Arial,Helvetica,sans-serif;line-height:1.15;min-width:20px;padding:2px 4px;position:absolute;touch-action:none;transform:translateY(-100%);-webkit-user-select:none;user-select:none;white-space:pre-wrap}.canvas-text.selected{outline:2px solid #155eef}.modal-backdrop{align-items:center;background:#0f172a85;display:flex;top:0;right:0;bottom:0;left:0;justify-content:center;padding:24px;position:fixed;z-index:20}.image-modal{background:#fff;border-radius:8px;box-shadow:0 24px 70px #0f172a47;display:grid;grid-template-rows:auto minmax(0,1fr);max-height:calc(100vh - 48px);max-width:1360px;overflow:hidden;width:min(1360px,100%)}.modal-heading{align-items:center;border-bottom:1px solid #e5ebf1;display:flex;justify-content:space-between;gap:16px;padding:14px 16px}.modal-heading span{color:#697789;font-size:12px}.modal-body{display:grid;gap:0;grid-template-columns:minmax(520px,1fr) 360px;min-height:0}.modal-canvas-wrap{background:#dfe6ee;min-height:0;overflow:auto;padding:24px}.image-page-wrap.large{min-height:calc(100vh - 150px);padding:24px}.image-page-wrap.large .image-page{max-height:calc(100vh - 198px);max-width:min(100%,900px)}.modal-controls{border-left:1px solid #e5ebf1;display:grid;gap:14px;max-height:calc(100vh - 105px);overflow:auto;padding:16px}.control-section{border-top:1px solid #e5ebf1;display:grid;gap:10px;padding-top:14px}.control-section.compact{gap:8px}.control-title,.text-control-row{align-items:center;display:flex;gap:10px;justify-content:space-between}.control-title span,.crop-slider>span,.text-control-row span{color:#697789;font-size:12px}.control-title button,.text-control-row button{min-height:32px;padding:6px 8px}.crop-slider{align-items:center;display:grid;gap:8px;grid-template-columns:28px 1fr 76px}.crop-slider input[type=range]{accent-color:#155eef;min-width:0}.crop-slider input[type=number],.text-control-row input[type=number],.text-control-row select{border:1px solid #d6dde5;border-radius:7px;color:#202933;font:inherit;min-height:34px;padding:6px 8px;width:100%}.orientation-toggle{display:grid;gap:8px;grid-template-columns:1fr 1fr}.orientation-toggle button.active{border-color:#155eef;color:#155eef;box-shadow:0 0 0 2px #155eef1f}.text-editor-controls{display:grid;gap:10px}.text-editor-controls textarea{border:1px solid #d6dde5;border-radius:7px;color:#202933;font:inherit;min-height:82px;padding:8px;resize:vertical;width:100%}.text-control-row label{display:grid;gap:5px}.text-control-row input[type=color]{min-height:34px;width:48px}.empty-mini{color:#697789;font-size:12px;padding:6px 0}.image-editor-controls{display:grid;gap:12px;min-width:0}.image-editor-row{align-items:center;display:flex;gap:10px;justify-content:space-between}.image-editor-row span,.zoom-control span{color:#697789;font-size:12px;white-space:nowrap}.selected-toggle.active{border-color:#155eef;color:#155eef}.zoom-control{display:grid;gap:8px}.zoom-control input{accent-color:#155eef;width:100%}.preset-grid{display:grid;gap:8px;grid-template-columns:repeat(3,minmax(0,1fr))}.preset-grid button{min-height:34px;padding:7px 8px}.selected-list{display:grid;gap:9px;padding:14px}.selected-page{align-items:center;background:#fff;border:1px solid #e0e7ef;border-radius:8px;display:grid;gap:9px;grid-template-columns:auto 32px 1fr auto;padding:8px}.selected-page.dragging{box-shadow:0 14px 30px #1e293b29;position:relative;z-index:3}.drag-handle{cursor:grab}.selected-index{align-items:center;background:#eef4ff;border-radius:6px;color:#155eef;display:flex;font-weight:750;height:32px;justify-content:center;width:32px}.selected-copy{min-width:0}.preview-panel{margin:16px auto 0;max-width:1500px;overflow:hidden}.preview-panel iframe{border:0;display:block;height:72vh;width:100%}.inline-error{background:#fff5f4;border:1px solid #ffc7c0;border-radius:8px;color:#9f2d20;padding:12px}.spin{animation:spin .85s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}@media (max-width: 1100px){.topbar{display:grid}.toolbar{justify-content:flex-start}.workspace{grid-template-columns:1fr}.panel,.file-panel,.source-panel,.output-panel{max-height:none;min-height:auto}.source-scroll,.selected-list,.file-list{overflow:visible}.image-editor,.modal-body{grid-template-columns:1fr}.modal-controls{border-left:0;border-top:1px solid #e5ebf1;max-height:none}.modal-canvas-wrap{padding:14px}.image-page-wrap.large{min-height:58vh}}@media (max-width: 640px){.app{padding:14px}h1{font-size:23px}.toolbar{display:grid;grid-template-columns:1fr 1fr;width:100%}.toolbar button,.toolbar a{width:100%}.page-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.image-page-wrap{min-height:220px}.preset-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.modal-backdrop{padding:8px}.image-modal{max-height:calc(100vh - 16px)}.crop-slider{grid-template-columns:24px 1fr 68px}.text-control-row{align-items:stretch;display:grid;grid-template-columns:1fr 1fr}}
