@font-face{font-family:Mona Sans Variable;font-style:normal;font-display:swap;font-weight:200 900;src:url(/assets/mona-sans-vietnamese-wght-normal-DsUdksa4.woff2) format("woff2-variations");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Mona Sans Variable;font-style:normal;font-display:swap;font-weight:200 900;src:url(/assets/mona-sans-latin-ext-wght-normal-BqSk0Z3x.woff2) format("woff2-variations");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Mona Sans Variable;font-style:normal;font-display:swap;font-weight:200 900;src:url(/assets/mona-sans-latin-wght-normal-Pz49MTQZ.woff2) format("woff2-variations");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html,body{height:100%}body{font-family:Mona Sans Variable,Mona Sans,-apple-system,BlinkMacSystemFont,sans-serif;font-size:15px;color:#181d27;background:#fff;-webkit-font-smoothing:antialiased}#root{min-height:100%}@keyframes marching-ants{0%{background-position:0 0,0 100%,0 0,100% 0}to{background-position:20px 0,-20px 100%,0 -20px,100% 20px}}:root{--rc-drag-handle-size: 12px;--rc-drag-handle-mobile-size: 24px;--rc-drag-handle-bg-colour: rgba(0, 0, 0, .2);--rc-drag-bar-size: 6px;--rc-border-color: rgba(255, 255, 255, .7);--rc-focus-color: #0088ff}.ReactCrop{position:relative;display:inline-block;cursor:crosshair;max-width:100%}.ReactCrop *,.ReactCrop *:before,.ReactCrop *:after{box-sizing:border-box}.ReactCrop--disabled,.ReactCrop--locked{cursor:inherit}.ReactCrop__child-wrapper{overflow:hidden;max-height:inherit}.ReactCrop__child-wrapper>img,.ReactCrop__child-wrapper>video{display:block;max-width:100%;max-height:inherit}.ReactCrop:not(.ReactCrop--disabled) .ReactCrop__child-wrapper>img,.ReactCrop:not(.ReactCrop--disabled) .ReactCrop__child-wrapper>video{touch-action:none}.ReactCrop:not(.ReactCrop--disabled) .ReactCrop__crop-selection{touch-action:none}.ReactCrop__crop-mask{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;width:calc(100% + .5px);height:calc(100% + .5px)}.ReactCrop__crop-selection{position:absolute;top:0;left:0;transform:translateZ(0);cursor:move}.ReactCrop--disabled .ReactCrop__crop-selection{cursor:inherit}.ReactCrop--circular-crop .ReactCrop__crop-selection{border-radius:50%}.ReactCrop--circular-crop .ReactCrop__crop-selection:after{pointer-events:none;content:"";position:absolute;top:-1px;right:-1px;bottom:-1px;left:-1px;border:1px solid var(--rc-border-color);opacity:.3}.ReactCrop--no-animate .ReactCrop__crop-selection{outline:1px dashed white}.ReactCrop__crop-selection:not(.ReactCrop--no-animate .ReactCrop__crop-selection){animation:marching-ants 1s;background-image:linear-gradient(to right,#fff 50%,#444 50%),linear-gradient(to right,#fff 50%,#444 50%),linear-gradient(to bottom,#fff 50%,#444 50%),linear-gradient(to bottom,#fff 50%,#444 50%);background-size:10px 1px,10px 1px,1px 10px,1px 10px;background-position:0 0,0 100%,0 0,100% 0;background-repeat:repeat-x,repeat-x,repeat-y,repeat-y;color:#fff;animation-play-state:running;animation-timing-function:linear;animation-iteration-count:infinite}.ReactCrop__crop-selection:focus{outline:2px solid var(--rc-focus-color);outline-offset:-1px}.ReactCrop--invisible-crop .ReactCrop__crop-mask,.ReactCrop--invisible-crop .ReactCrop__crop-selection{display:none}.ReactCrop__rule-of-thirds-vt:before,.ReactCrop__rule-of-thirds-vt:after,.ReactCrop__rule-of-thirds-hz:before,.ReactCrop__rule-of-thirds-hz:after{content:"";display:block;position:absolute;background-color:#fff6}.ReactCrop__rule-of-thirds-vt:before,.ReactCrop__rule-of-thirds-vt:after{width:1px;height:100%}.ReactCrop__rule-of-thirds-vt:before{left:33.3333333333%}.ReactCrop__rule-of-thirds-vt:after{left:66.6666666667%}.ReactCrop__rule-of-thirds-hz:before,.ReactCrop__rule-of-thirds-hz:after{width:100%;height:1px}.ReactCrop__rule-of-thirds-hz:before{top:33.3333333333%}.ReactCrop__rule-of-thirds-hz:after{top:66.6666666667%}.ReactCrop__drag-handle{position:absolute;width:var(--rc-drag-handle-size);height:var(--rc-drag-handle-size);background-color:var(--rc-drag-handle-bg-colour);border:1px solid var(--rc-border-color)}.ReactCrop__drag-handle:focus{background:var(--rc-focus-color)}.ReactCrop .ord-nw{top:0;left:0;transform:translate(-50%,-50%);cursor:nw-resize}.ReactCrop .ord-n{top:0;left:50%;transform:translate(-50%,-50%);cursor:n-resize}.ReactCrop .ord-ne{top:0;right:0;transform:translate(50%,-50%);cursor:ne-resize}.ReactCrop .ord-e{top:50%;right:0;transform:translate(50%,-50%);cursor:e-resize}.ReactCrop .ord-se{bottom:0;right:0;transform:translate(50%,50%);cursor:se-resize}.ReactCrop .ord-s{bottom:0;left:50%;transform:translate(-50%,50%);cursor:s-resize}.ReactCrop .ord-sw{bottom:0;left:0;transform:translate(-50%,50%);cursor:sw-resize}.ReactCrop .ord-w{top:50%;left:0;transform:translate(-50%,-50%);cursor:w-resize}.ReactCrop__disabled .ReactCrop__drag-handle{cursor:inherit}.ReactCrop__drag-bar{position:absolute}.ReactCrop__drag-bar.ord-n{top:0;left:0;width:100%;height:var(--rc-drag-bar-size);transform:translateY(-50%)}.ReactCrop__drag-bar.ord-e{right:0;top:0;width:var(--rc-drag-bar-size);height:100%;transform:translate(50%)}.ReactCrop__drag-bar.ord-s{bottom:0;left:0;width:100%;height:var(--rc-drag-bar-size);transform:translateY(50%)}.ReactCrop__drag-bar.ord-w{top:0;left:0;width:var(--rc-drag-bar-size);height:100%;transform:translate(-50%)}.ReactCrop--new-crop .ReactCrop__drag-bar,.ReactCrop--new-crop .ReactCrop__drag-handle,.ReactCrop--fixed-aspect .ReactCrop__drag-bar,.ReactCrop--fixed-aspect .ReactCrop__drag-handle.ord-n,.ReactCrop--fixed-aspect .ReactCrop__drag-handle.ord-e,.ReactCrop--fixed-aspect .ReactCrop__drag-handle.ord-s,.ReactCrop--fixed-aspect .ReactCrop__drag-handle.ord-w{display:none}@media (pointer: coarse){.ReactCrop .ord-n,.ReactCrop .ord-e,.ReactCrop .ord-s,.ReactCrop .ord-w{display:none}.ReactCrop__drag-handle{width:var(--rc-drag-handle-mobile-size);height:var(--rc-drag-handle-mobile-size)}}.app{display:grid;grid-template-columns:380px 1fr;grid-template-rows:1fr auto;min-height:100vh;padding:40px 48px;gap:0 48px;max-width:1440px;margin:0 auto}.left-panel{grid-column:1;grid-row:1;display:flex;flex-direction:column;gap:0}.right-panel{grid-column:2;grid-row:1;display:flex;flex-direction:column;gap:16px}.app-footer{grid-column:1 / -1;grid-row:2;padding-top:32px;text-align:center;font-size:13px;color:#6b7280}.app-footer a{color:#6363f1;text-decoration:none;font-weight:600}.app-footer a:hover{text-decoration:underline}.app-title{font-size:28px;font-weight:800;letter-spacing:-.5px;margin-bottom:24px}.mode-toggle{display:flex;gap:24px;margin-bottom:28px}.controls-section{display:flex;flex-direction:column;gap:20px}.field-group{display:flex;flex-direction:column;gap:8px}.field-label{font-size:14px;font-weight:700;color:#181d27}.field-label-sm{font-size:12px;font-weight:600;color:#6b7280;text-transform:uppercase;letter-spacing:.5px}.label-row{display:flex;align-items:center;justify-content:space-between;gap:12px}.text-input{width:100%;height:42px;border:1.5px solid #E5E7EB;border-radius:8px;padding:0 14px;font-size:14px;font-family:inherit;color:#181d27;background:#fff;transition:border-color .15s;outline:none}.text-input:focus{border-color:#6363f1}.text-input::placeholder{color:#aaa}.slider{width:100%;accent-color:#6363F1;cursor:pointer}.slider-value{font-size:13px;color:#6b7280;font-variant-numeric:tabular-nums}.color-toggle{display:flex;gap:12px}.color-swatch{display:inline-block;width:10px;height:10px;border-radius:50%;flex-shrink:0}.color-swatch.blue{background:#6363f1}.color-swatch.dark{background:#181d27}.radio-label{display:flex;align-items:center;gap:6px;font-size:14px;cursor:pointer;-webkit-user-select:none;user-select:none}.radio-label input[type=radio]{accent-color:#6363F1;width:16px;height:16px;cursor:pointer;flex-shrink:0}.upload-box{border:1.5px dashed #D1D5DB;border-radius:10px;padding:24px 16px;display:flex;flex-direction:column;align-items:center;gap:8px;cursor:pointer;transition:border-color .15s,background .15s;color:#9ca3af;text-align:center}.upload-box:hover,.upload-box.drag-over{border-color:#6363f1;background:#f5f5ff;color:#6363f1}.upload-box p{font-size:13px;color:#6b7280}.upload-link{color:#6363f1;font-weight:600;cursor:pointer}.image-actions{display:flex;flex-wrap:wrap;gap:8px}.entity-block{border:1.5px solid #E5E7EB;border-radius:12px;padding:16px;display:flex;flex-direction:column;gap:12px}.entity-header{display:flex;align-items:center;justify-content:space-between}.entity-title{font-size:14px;font-weight:700}.entity-row{display:grid;grid-template-columns:1fr 1fr;gap:12px;align-items:start}.entity-fields{display:flex;flex-direction:column;gap:8px}.entity-upload{display:flex;flex-direction:column;gap:6px}.count-selector{display:flex;gap:8px}.count-btn{width:44px;height:44px;border:1.5px solid #E5E7EB;border-radius:8px;background:#fff;font-size:16px;font-weight:700;font-family:inherit;cursor:pointer;transition:all .15s;color:#6b7280}.count-btn:hover{border-color:#6363f1;color:#6363f1}.count-btn.active{border-color:#6363f1;background:#6363f1;color:#fff}.btn-primary{height:38px;padding:0 18px;background:#6363f1;color:#fff;border:none;border-radius:8px;font-size:14px;font-weight:600;font-family:inherit;cursor:pointer;transition:background .15s}.btn-primary:hover{background:#4f4fde}.btn-primary:disabled{background:#a5a5f5;cursor:not-allowed}.btn-secondary{height:36px;padding:0 14px;background:#fff;color:#181d27;border:1.5px solid #D1D5DB;border-radius:8px;font-size:13px;font-weight:600;font-family:inherit;cursor:pointer;transition:border-color .15s}.btn-secondary:hover{border-color:#6363f1;color:#6363f1}.btn-secondary:disabled{opacity:.5;cursor:not-allowed}.btn-danger{height:36px;padding:0 14px;background:#fff;color:#e53935;border:1.5px solid #FECACA;border-radius:8px;font-size:13px;font-weight:600;font-family:inherit;cursor:pointer;transition:all .15s}.btn-danger:hover{background:#fef2f2;border-color:#e53935}.btn-link-danger{background:none;border:none;padding:0;color:#e53935;font-size:12px;font-weight:600;font-family:inherit;cursor:pointer;text-decoration:underline}.btn-export{height:48px;padding:0 28px;background:#2563eb;color:#fff;border:none;border-radius:10px;font-size:15px;font-weight:700;font-family:inherit;cursor:pointer;transition:background .15s}.btn-export:hover{background:#1d4ed8}.export-area{margin-top:28px}.preview-header{display:flex;align-items:center;justify-content:space-between}.preview-label{font-size:15px;font-weight:600;color:#181d27}.preview-outer{width:100%;position:relative;overflow:hidden}.preview-scaler{position:absolute;top:0;left:0}.thumbnail-canvas{display:block;border-radius:12px}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#0000008c;display:flex;align-items:center;justify-content:center;z-index:1000;padding:20px}.modal-box{background:#fff;border-radius:16px;padding:0;max-width:700px;width:100%;display:flex;flex-direction:column;overflow:hidden;box-shadow:0 24px 64px #0003}.modal-header{display:flex;align-items:center;justify-content:space-between;padding:20px 24px 16px;border-bottom:1px solid #E5E7EB}.modal-header h3{font-size:17px;font-weight:700}.modal-close{width:32px;height:32px;background:none;border:none;font-size:22px;cursor:pointer;color:#6b7280;display:flex;align-items:center;justify-content:center;border-radius:6px;transition:background .15s}.modal-close:hover{background:#f3f4f6}.modal-body{padding:20px 24px;overflow:auto;display:flex;justify-content:center}.modal-footer{padding:16px 24px 20px;display:flex;justify-content:flex-end;gap:10px;border-top:1px solid #E5E7EB}@media (max-width: 900px){.app{grid-template-columns:1fr;grid-template-rows:auto auto auto;padding:24px 20px;gap:24px 0}.right-panel{grid-column:1;grid-row:2}.app-footer{grid-row:3}.entity-row{grid-template-columns:1fr}}
