*{box-sizing:border-box}body{margin:0;font-family:system-ui,sans-serif;background:#f4f4f6}.app{display:flex;flex-direction:column;height:100vh}.access-screen{min-height:100vh;display:grid;place-items:center;padding:24px;background:#f4f4f6;color:#131b2e}.access-card{width:min(100%,420px);padding:30px;border:1px solid rgba(19,27,46,.12);border-radius:14px;background:#fbfaf6;box-shadow:0 18px 50px #131b2e24}.access-card h1{margin:0 0 8px;font-size:24px}.access-card p{color:#5d6472;line-height:1.5}.access-card label{display:block;margin:14px 0 6px;font-size:13px;font-weight:650}.access-card input,.access-card select{width:100%;border:1px solid #cdd2dc;border-radius:7px;padding:10px 11px;font:inherit}.coupon-breakdown{margin-top:14px;padding:12px;border:1px solid rgba(19,27,46,.14);border-radius:8px;background:#fff}.coupon-breakdown p{margin:5px 0}.access-primary,.access-secondary{width:100%;margin-top:16px;border-radius:7px;padding:10px 12px;cursor:pointer;font:inherit}.access-primary{border:1px solid #d8a000;background:#f5b301;color:#302300;font-weight:700}.access-primary:disabled{cursor:wait;opacity:.65}.access-secondary{border:1px solid #cdd2dc;background:transparent;color:#2b5e9e}.access-message{color:#a30000!important;font-size:14px}.access-message.access-success{color:#176b42!important}.subscription-status{display:flex;align-items:center;gap:12px;padding:8px 16px;background:#fbfaf6;color:#5d6472;border-bottom:1px solid rgba(19,27,46,.12);font-size:13px}.subscription-cancel{width:auto;margin-top:0}.subscription-message{color:#176b42}.toolbar{--navy: #131b2e;--paper: #fbfaf6;--paper-dim: #f1efe7;--amber: #f5b301;--teal: #2b9e96;--line: rgba(19, 27, 46, .12);display:flex;align-items:center;gap:10px;padding:8px 16px;background:var(--paper);color:var(--navy);border-bottom:1px solid var(--line)}.brand{font-weight:700;font-size:16px;letter-spacing:.02em;color:var(--navy);margin-right:6px;white-space:nowrap}.upload-btn,.pager button,.export-btn{cursor:pointer;border:1px solid var(--line);border-radius:7px;padding:8px 11px;font:inherit;font-size:13px;background:var(--paper);color:var(--navy);display:inline-flex;align-items:center;justify-content:center;gap:6px;white-space:nowrap;transition:border-color .14s ease,background-color .14s ease,color .14s ease,box-shadow .14s ease}.toolbar-icon,.tool-icon{display:block;flex:0 0 auto;fill:none;stroke:currentColor;stroke-linecap:round;stroke-linejoin:round}.toolbar-icon{width:18px;height:18px;stroke-width:1.8}.upload-btn:hover:not(:disabled),.pager button:hover:not(:disabled){border-color:#131b2e4d;background:var(--paper-dim);color:var(--teal)}.upload-btn:disabled,.pager button:disabled,.export-btn:disabled,.tools button:disabled{opacity:.48;cursor:not-allowed}.tools{display:flex;align-items:stretch;gap:5px;margin-left:4px;padding:0 10px;border-left:1px solid var(--line);border-right:1px solid var(--line)}.tools button{min-width:66px;min-height:58px;cursor:pointer;border:1px solid var(--line);border-radius:8px;padding:6px 8px 5px;font:inherit;font-size:11px;line-height:1.1;background:var(--paper);color:var(--navy);display:inline-flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;white-space:nowrap;transition:border-color .14s ease,background-color .14s ease,color .14s ease,box-shadow .14s ease}.tool-icon{width:21px;height:21px;stroke-width:1.7}.tools button:hover:not(:disabled){border-color:#131b2e4d;background:var(--paper-dim)}.tools button.active{border:1.5px solid var(--amber);background:#f5b30124;color:var(--navy);box-shadow:0 1px 4px #f5b3011f}.export-btn{margin-left:auto;border-color:var(--amber);background:var(--amber);color:#3a2900;font-weight:650}.export-btn:hover:not(:disabled){background:#ffc52e;border-color:#d99d00}.pager{display:flex;align-items:center;gap:10px;margin-left:4px;padding-left:14px;border-left:1px solid var(--line);color:var(--navy);font-size:12px;white-space:nowrap}.pager button{padding:7px 9px}@media (prefers-reduced-motion: reduce){.upload-btn,.tools button,.pager button,.export-btn{transition:none}}.error{background:#ffe4e4;color:#a30000;padding:8px 16px}.loading{padding:8px 16px;color:#555}.canvas-wrap{flex:1;overflow:auto;overscroll-behavior:contain;display:flex;justify-content:center;padding:24px}.page-stack{position:relative;box-shadow:0 2px 12px #00000026;background:#fff}.page-stack img{display:block;max-width:90vw}.overlay{position:absolute;top:0;left:0;touch-action:none}.empty-state{margin-top:80px;color:#888;font-size:16px}.hint{padding:6px 16px;background:#eef4ff;color:#2a4d8f;font-size:13px}.text-edit-box{position:absolute;border:2px solid #4f7cff;background:#fff;padding:0;margin:0;font-family:sans-serif;box-sizing:border-box;z-index:10}.selection-preview{position:absolute;background:#4f7cff47;border-radius:2px;pointer-events:none;z-index:9}.pos-toolbar{position:absolute;display:flex;align-items:center;gap:6px;background:#1f2430;border-radius:6px;padding:4px 6px;z-index:20;white-space:nowrap}.pos-toolbar button{background:#333a4d;color:#fff;border:none;border-radius:4px;width:22px;height:22px;font-size:12px;line-height:1;cursor:pointer;display:inline-flex;align-items:center;justify-content:center}.pos-toolbar button:disabled{opacity:.3;cursor:default}.pos-toolbar .drag-handle{cursor:grab;font-size:14px}.pos-toolbar .axis-toggle,.pos-toolbar .nudge-pad{display:flex;gap:2px}.pos-toolbar .axis-toggle button.active{background:#4f7cff}.pos-toolbar .confirm-btn{background:#2ecc71}.pos-toolbar .cancel-btn{background:#e53935}.pos-toolbar .delete-btn{background:#b71c1c}.pending-image{position:absolute;box-sizing:border-box;outline:2px dashed #4f7cff;z-index:10;user-select:none;pointer-events:none}.resize-handle{position:absolute;width:16px;height:16px;border-radius:50%;background:#4f7cff;border:2px solid white;cursor:nwse-resize;z-index:21;padding:0}.ruler-h{position:absolute;top:-16px;left:0;right:0;height:14px;background-color:#eef1f5;background-image:repeating-linear-gradient(to right,#b0b8c4 0,#b0b8c4 1px,transparent 1px,transparent 10px);z-index:15}.ruler-v{position:absolute;top:0;bottom:0;left:-16px;width:14px;background-color:#eef1f5;background-image:repeating-linear-gradient(to bottom,#b0b8c4 0,#b0b8c4 1px,transparent 1px,transparent 10px);z-index:15}.ruler-marker{position:absolute;top:0;bottom:0;width:2px;background:#e53935;transform:translate(-1px)}.ruler-marker-v{position:absolute;left:0;right:0;height:2px;background:#e53935;transform:translateY(-1px)}
