body{font-family:system-ui,Arial,sans-serif;margin:0;background:#f6f7fb;color:#222}
.container{max-width:1200px;margin:0 auto;padding:16px}
header{text-align:center;margin-bottom:24px}
header h1{margin:0;font-size:28px}
header p{margin:4px 0 0;color:#555}
.editor{display:flex;gap:16px;flex-wrap:wrap}
.card-pane{flex:1 1 360px;background:#fff;border:1px solid #ddd;border-radius:8px;padding:16px;box-shadow:0 2px 6px rgba(0,0,0,.06)}
.card-pane h2{margin:0 0 12px;font-size:18px}
.drop-area{min-height:80px;border:2px dashed #bbb;border-radius:6px;display:flex;align-items:center;justify-content:center;cursor:pointer;margin-bottom:12px;transition:.2s}
.drop-area:hover{border-color:#444;background:#fafafa}
.drop-area.dragover{border-color:#00a2ff;background:#f0f8ff}
.drop-area .hint{color:#777}
.status-msg{margin:8px 0;font-size:13px;padding:8px 12px;border-radius:4px;display:none}
.status-msg.warning{display:block;background:#fff3cd;color:#856404;border:1px solid #ffeaa7}
.status-msg.success{display:block;background:#d4edda;color:#155724;border:1px solid #c3e6cb}
.expand-control{display:flex;align-items:center;gap:8px;margin-bottom:8px;padding:6px 8px;background:#f8f9fa;border-radius:4px;font-size:13px}
.expand-control label{flex:0 0 auto;display:flex;align-items:center;gap:4px;color:#555}
.expand-control span{font-weight:600;min-width:35px}
.expand-control input[type=range]{flex:1;min-width:80px;height:4px;cursor:pointer}
.canvas-wrap{position:relative;border:1px solid #ccc;border-radius:4px;overflow:hidden;margin-bottom:12px}
#frontCanvas,#backCanvas{display:block;width:100%;height:400px;background:#fafafa;cursor:grab;user-select:none;touch-action:none}
#frontCanvas.can-grab:hover,#backCanvas.can-grab:hover{cursor:grab}
#frontCanvas.grab-corner:hover,#backCanvas.grab-corner:hover{cursor:pointer}
#frontCanvas:active,#backCanvas:active{cursor:grabbing}
.zoom-bar{position:absolute;bottom:8px;right:8px;display:flex;gap:4px;align-items:center;background:#fff;border:1px solid #ccc;border-radius:4px;padding:4px 8px;font-size:14px}
.zoom-bar button{width:24px;height:24px;border:1px solid #999;background:#fff;border-radius:4px;cursor:pointer;font-size:16px;line-height:1;text-align:center}
.zoom-bar button:hover{background:#eee}
.controls{display:flex;gap:12px;align-items:center;margin-bottom:12px}
.controls label{display:flex;gap:6px;align-items:center;font-size:14px}
.controls input[type=range]{width:120px}
.controls button{padding:10px 18px;border:1px solid #444;background:#222;color:#fff;border-radius:10px;cursor:pointer;font-size:16px}
.controls button:hover{background:#444}
.controls .btn-secondary{padding:8px 14px;background:#fff;color:#222;border-color:#666;font-size:14px}
.controls .btn-secondary:hover{background:#f0f0f0}
.card-pane img{max-width:100%;display:block;border:1px solid #ddd;border-radius:4px;margin-top:12px}
.preview-pane{background:#fff;border:1px solid #ddd;border-radius:8px;padding:16px;box-shadow:0 2px 6px rgba(0,0,0,.06);text-align:center}
.preview-pane h2{margin:0 0 12px;font-size:18px}
.a4-wrap{display:inline-block;border:1px solid #aaa;border-radius:4px;background:#fff;position:relative}
#a4Canvas{display:block;width:248px;height:350px;background:#fafafa}
.preview-pane .actions button{padding:12px 22px;border:1px solid #444;background:#222;color:#fff;border-radius:10px;cursor:pointer;font-size:18px;width:100%;max-width:320px}
.preview-pane .actions button:hover{background:#444}
.preview-pane .actions button:disabled{opacity:0.5;cursor:not-allowed}

.watermark-panel{background:#f8f9fa;border:1px solid #ddd;border-radius:8px;padding:12px;margin-bottom:16px;font-size:14px}
.watermark-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px;padding-bottom:8px;border-bottom:1px solid #ddd}
.watermark-header label{display:flex;align-items:center;gap:8px;font-weight:600;color:#333;cursor:pointer}
.watermark-header input[type=checkbox]{width:18px;height:18px;cursor:pointer}
.btn-small{padding:6px 12px;border:1px solid #666;background:#fff;color:#333;border-radius:6px;cursor:pointer;font-size:13px;transition:.2s}
.btn-small:hover{background:#f0f0f0;border-color:#444}

.watermark-controls{display:none}
.watermark-controls.active{display:block}
.watermark-controls.disabled{opacity:0.5;pointer-events:none}

.watermark-row{display:flex;align-items:center;justify-content:space-between;margin-bottom:10px;gap:12px}
.watermark-row:last-child{margin-bottom:0}
.watermark-row label{flex:0 0 120px;color:#555;font-size:13px}
.watermark-row input[type=text]{flex:1;padding:6px 10px;border:1px solid #ccc;border-radius:4px;font-size:13px}
.watermark-row input[type=range]{flex:1;height:4px;cursor:pointer}
.watermark-row select{flex:1;padding:6px 10px;border:1px solid #ccc;border-radius:4px;font-size:13px;background:#fff;cursor:pointer}
.watermark-row input[type=color]{width:50px;height:32px;border:1px solid #ccc;border-radius:4px;cursor:pointer;padding:0}
.watermark-row span{font-weight:600;color:#333;min-width:24px;text-align:right;display:inline-block}

footer.footer{margin-top:24px;padding:16px;color:#555;font-size:14px}
footer.footer a{color:#0066cc;text-decoration:none}
footer.footer a:hover{text-decoration:underline}
footer.footer .changelog{margin-top:8px}
footer.footer .changelog ul{margin:6px 0 0 18px;padding:0}
footer.footer .changelog li{margin:4px 0}