:root{--_1:'Poppins','Segoe UI',sans-serif;--_2:8px;--_3:12px;--_4:16px;--_5l:#F4F7FC;--_6l:#FFFFFF;--_7l:#1A202C;--_8l:#718096;--border-color-light:#E2E8F0;--accent-primary-light:#6B46C1;--_11l:#805AD5;--_12l:rgba(128,90,213,0.2);--_13l:#38A169;--_14l:#E53E3E;--_15l:rgba(107,70,193,0.1);--_16l:linear-gradient(45deg,var(--_11l),var(--accent-primary-light));--_5d:#1A202C;--_6d:#2D3748;--_7d:#EDF2F7;--_8d:#A0AEC0;--border-color-dark:#4A5568;--accent-primary-dark:#9F7AEA;--_11d:#B794F4;--_12d:rgba(159,122,234,0.25);--_13d:#68D391;--_14d:#FC8181;--_15d:rgba(0,0,0,0.25);--_16d:linear-gradient(45deg,var(--_11d),var(--accent-primary-dark));--_5:var(--_5l);--_6:var(--_6l);--_7:var(--_7l);--_8:var(--_8l);--border-color:var(--border-color-light);--accent-primary:var(--accent-primary-light);--_11:var(--_11l);--_12:var(--_12l);--_13:var(--_13l);--_14:var(--_14l);--_15:var(--_15l);--_16:var(--_16l)}body.dark-mode{--_5:var(--_5d);--_6:var(--_6d);--_7:var(--_7d);--_8:var(--_8d);--border-color:var(--border-color-dark);--accent-primary:var(--accent-primary-dark);--_11:var(--_11d);--_12:var(--_12d);--_13:var(--_13d);--_14:var(--_14d);--_15:var(--_15d);--_16:var(--_16d)}*{margin:0;padding:0;box-sizing:border-box}html{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}body{font-family:var(--_1);background-color:var(--_5);color:var(--_7);line-height:1.6;transition:background-color .3s,color .3s;padding:20px}.app-container{width:100%;max-width:1200px;margin:0 auto}.app-header{display:flex;justify-content:space-between;align-items:center;padding:10px 0;margin-bottom:20px}.app-header .title h1{font-size:2em;font-weight:700;color:var(--_7)}.app-header .title p{font-size:.9em;color:var(--_8)}#darkModeToggle{background:var(--_6);border:1px solid var(--border-color);color:var(--_8);width:45px;height:45px;border-radius:50%;cursor:pointer;font-size:1.3em;display:flex;align-items:center;justify-content:center;transition:all .3s}#darkModeToggle:hover{color:var(--accent-primary);box-shadow:0 0 10px var(--_12)}.main-content{display:grid;grid-template-columns:1fr 1fr;gap:25px;align-items:flex-start}.panel{background-color:var(--_6);border-radius:var(--_4);padding:25px;box-shadow:0 10px 30px -5px var(--_15);border:1px solid var(--border-color);transition:background-color .3s,border-color .3s,box-shadow .3s}.image-panel .panel-section:not(:last-child){margin-bottom:25px}.panel-header{font-size:1.1em;font-weight:600;margin-bottom:0;padding-bottom:0;border-bottom:none}.upload-area{border:2px dashed var(--border-color);background-color:var(--_5);padding:40px 20px;border-radius:var(--_3);cursor:pointer;transition:all .3s ease;position:relative;text-align:center;min-height:190px;display:flex;flex-direction:column;align-items:center;justify-content:center}.upload-area.dragging-over{border-color:var(--accent-primary);box-shadow:0 0 0 4px var(--_12);transform:translateY(-2px)}.upload-area input[type=file]{display:none}.upload-area .upload-icon{font-size:3em;color:var(--accent-primary);margin-bottom:15px;transition:transform .3s ease}.upload-area:hover .upload-icon{transform:scale(1.1)}.upload-area .upload-text{font-weight:600;font-size:1.1em;display:block;margin-bottom:5px}#fileNameDisplay{font-size:.8em;color:var(--_8);word-break:break-all;margin-top:8px;min-height:1.2em}#cropPreviewImage{width:100%;height:auto;max-height:300px;object-fit:contain;border-radius:var(--_3);background:repeating-conic-gradient(var(--_5) 0% 25%,var(--border-color) 0% 50%) 50%/20px 20px}.image-details{font-size:.8em;color:var(--_8);margin-top:15px;text-align:center;background:var(--_5);padding:10px;border-radius:var(--_2)}.controls-form{display:flex;flex-direction:column;gap:20px}.control-group{text-align:left;position:relative}.control-group label{font-size:.9em;font-weight:500;margin-bottom:8px;display:block;color:var(--_8)}.control-group input,.control-group select{padding:12px 15px;border:1px solid var(--border-color);border-radius:var(--_2);font-size:.95em;width:100%;background-color:var(--_5);color:var(--_7);transition:all .2s ease-in-out;font-family:var(--_1)}input[type=number]::-webkit-outer-spin-button,input[type=number]::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}input[type=number]{-moz-appearance:textfield}.control-group select{-webkit-appearance:none;-moz-appearance:none;appearance:none;background-image:url('data:image/svg+xml;charset=US-ASCII,%3Csvg xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill="%23718096" viewBox="0 0 16 16"%3E%3Cpath fill-rule="evenodd" d="M1.646 4.646a.5.5 0 0 1 .708 0L8 10.293l5.646-5.647a.5.5 0 0 1 .708.708l-6 6a.5.5 0 0 1-.708 0l-6-6a.5.5 0 0 1 0-.708z"/%3E%3C/svg%3E');background-repeat:no-repeat;background-position:right 15px center;background-size:1em;padding-right:40px}.control-group input:focus,.control-group select:focus{outline:none;border-color:var(--accent-primary);box-shadow:0 0 0 3px var(--_12)}.dimension-controls,.target-size-controls{display:flex;gap:15px;align-items:flex-end}.dimension-controls .control-group,.target-size-controls .control-group{flex:1 1 auto}.dimension-controls .unit-selector{flex:0 0 80px}.target-size-controls .unit-selector{flex:0 0 80px}.checkbox-control{display:flex;align-items:center;text-align:left;gap:10px;cursor:pointer;user-select:none}.checkbox-control label{margin:0;font-weight:400;font-size:.95em;color:var(--_7)}.checkbox-control input{-webkit-appearance:none;appearance:none;width:20px;height:20px;border-radius:6px;border:1px solid var(--border-color);background-color:var(--_5);cursor:pointer;position:relative;transition:all .2s}.checkbox-control input:checked{background:var(--_16);border-color:var(--accent-primary)}.checkbox-control input:checked::after{content:'\f00c';font-family:'Font Awesome 6 Free';font-weight:900;color:#fff;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);font-size:12px}#togglePresetsButton{width:100%;text-align:left;padding:12px 15px;background:var(--_5);border:1px solid var(--border-color);border-radius:var(--_2);cursor:pointer;display:flex;justify-content:space-between;align-items:center;font-family:var(--_1);color:var(--_7);font-weight:500;transition:all .2s}#togglePresetsButton:hover{border-color:var(--accent-primary)}#togglePresetsButton.open .arrow-icon{transform:rotate(180deg)}#presetsGridContainer{display:none;padding-top:15px}.preset-buttons-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:8px}.preset-button{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:8px 4px;font-size:.75em;background-color:var(--_5);border:1px solid var(--border-color);border-radius:var(--_2);cursor:pointer;transition:all .2s;min-height:55px;color:var(--_8);text-align:center}.preset-button:hover{transform:translateY(-3px);border-color:var(--accent-primary);color:var(--accent-primary)}.preset-button.active{border-color:var(--accent-primary);box-shadow:0 0 0 3px var(--_12);color:var(--accent-primary);font-weight:600}.action-button{width:100%;padding:14px;font-size:1.05em;font-weight:600;color:#fff;border:none;border-radius:var(--_2);cursor:pointer;transition:all .2s ease;display:flex;align-items:center;justify-content:center;gap:10px;background:var(--_16);background-size:200% auto}.action-button:hover:not(:disabled){background-position:right center;box-shadow:0 5px 15px var(--_12);transform:translateY(-2px)}.action-button:disabled{background:var(--border-color);cursor:not-allowed;color:var(--_8)}#openCropModalButton{background:var(--_7);flex-grow:1}#openCropModalButton:hover:not(:disabled){background:var(--_7)}#downloadButtonElement{margin-top:15px}.preview-actions-wrapper{display:flex;gap:10px;margin-top:20px}#openCameraModalButton{flex-shrink:0;width:50px;background:var(--_8);font-size:1.2em;padding:14px}#openCameraModalButton:hover:not(:disabled){background:var(--_8)}.preview-box{border:1px solid var(--border-color);border-radius:var(--_3);padding:15px;text-align:center}.preview-box canvas{max-width:100%;border-radius:var(--_2)}hr{border:none;border-top:1px solid var(--border-color);margin:20px 0}.app-message{text-align:center;margin-top:15px;padding:12px;font-size:.9em;border-radius:var(--_2);display:none;border:1px solid transparent}.app-message.success{background-color:rgba(56,161,105,.1);color:var(--_13);border-color:var(--_13)}.app-message.error{background-color:rgba(229,62,62,.1);color:var(--_14);border-color:var(--_14)}.app-message.info{background-color:rgba(128,90,213,.1);color:var(--accent-primary);border-color:var(--accent-primary)}#smartCropButton{background-color:var(--_5);color:var(--_7);border:1px solid var(--border-color);padding:10px;border-radius:var(--_2);cursor:pointer;display:flex;align-items:center;justify-content:center;gap:8px;width:100%;font-family:var(--_1);font-size:.9em;font-weight:500;transition:all .2s}#smartCropButton:hover{border-color:var(--accent-primary);color:var(--accent-primary)}.adjustment-slider input[type=range],#qualityRangeSliderElement,#fontSizeInput{-webkit-appearance:none;appearance:none;width:100%;height:8px;background:var(--_5);border-radius:5px;outline:none;padding:0;margin:0;border:none;cursor:pointer}.adjustment-slider input[type=range]::-webkit-slider-thumb,#qualityRangeSliderElement::-webkit-slider-thumb,#fontSizeInput::-webkit-slider-thumb{-webkit-appearance:none;appearance:none;width:22px;height:22px;background:var(--accent-primary);cursor:pointer;border-radius:50%;border:3px solid var(--_6);box-shadow:0 2px 4px rgba(0,0,0,.2)}.adjustment-slider input[type=range]::-moz-range-thumb,#qualityRangeSliderElement::-moz-range-thumb,#fontSizeInput::-moz-range-thumb{width:22px;height:22px;background:var(--accent-primary);cursor:pointer;border-radius:50%;border:3px solid var(--_6);box-shadow:0 2px 4px rgba(0,0,0,.2)}body.modal-open{overflow:hidden}.crop-modal-overlay{position:fixed;top:0;left:0;width:100%;height:100%;background-color:rgba(0,0,0,.85);display:none;justify-content:center;align-items:center;z-index:1000;padding:10px}.crop-modal-overlay.visible{display:flex}.crop-modal-content{position:relative;background-color:var(--_6);color:var(--_7);padding:20px;padding-top:45px;border-radius:var(--_3);width:100%;height:95%;text-align:center;display:flex;flex-direction:column}#cropModal .crop-modal-content{max-width:1100px}#cameraModal .crop-modal-content{max-width:800px;height:auto}#cropOverlayModal .crop-modal-content{max-width:800px;height:auto}#closeCropModalButton,#closeOverlayCropModalButton,#closeCameraModalButton{position:absolute;top:10px;right:15px;background:none;border:none;font-size:2.2em;color:var(--_8);cursor:pointer;line-height:1;padding:5px;z-index:1010}.crop-modal-body{display:flex;gap:20px;flex:1;min-height:0}#cropImageContainer,#cropOverlayContainer{position:relative;flex-basis:70%;display:flex;justify-content:center;align-items:center;overflow:hidden;min-height:300px;touch-action:none}.snap-line{position:absolute;background-color:var(--accent-primary);display:none;z-index:9999;pointer-events:none}.snap-line-h{width:100%;height:1px;left:0}.snap-line-v{width:1px;height:100%;top:0}.cropper-point{width:15px!important;height:15px!important;opacity:.9!important;background-color:var(--accent-primary)!important}.cropper-point.point-e,.cropper-point.point-w{margin-top:-7.5px!important}.cropper-point.point-n,.cropper-point.point-s{margin-left:-7.5px!important}#textOverlayContainer{position:absolute;top:0;left:0;width:100%;height:100%;pointer-events:none;overflow:visible}.draggable-overlay{position:absolute;left:0;top:0;cursor:move;pointer-events:auto;border:1px dashed rgba(127,140,141,.9);border-radius:5px;white-space:nowrap;user-select:none;-webkit-user-select:none;display:flex;align-items:center;justify-content:center;touch-action:none}.draggable-overlay.active-overlay{border-style:solid;border-color:var(--accent-primary);box-shadow:0 0 5px var(--_12)}.overlay-content{outline:none;display:inline-block}.draggable-image .overlay-content{max-width:100%;max-height:100%;width:100%;height:100%;object-fit:contain}.overlay-close,.overlay-resizer,.overlay-rotator{position:absolute;width:20px;height:20px;border-radius:50%;opacity:.8;transition:opacity .2s;z-index:10;display:flex;align-items:center;justify-content:center;color:#fff}.overlay-close{top:-10px;right:-10px;font-family:sans-serif;font-size:16px;font-weight:700;cursor:pointer;background-color:var(--_14)}.overlay-resizer{bottom:-10px;right:-10px;cursor:nwse-resize;background-color:var(--accent-primary)}.overlay-rotator{bottom:-10px;left:-10px;cursor:alias;background-color:var(--_11);font-size:10px}.draggable-overlay:hover .overlay-close,.draggable-overlay:hover .overlay-resizer,.draggable-overlay:hover .overlay-rotator{opacity:1}#cropImageContainer img,#cropOverlayContainer img{max-width:100%;max-height:100%}.crop-controls-panel{flex-basis:30%;display:flex;flex-direction:column;text-align:left;min-height:0}.controls-scroller{flex:1;min-height:0;position:relative}.editor-tabs{display:flex;border-bottom:1px solid var(--border-color);margin-bottom:15px}.tab-button{flex:1;padding:10px 15px;cursor:pointer;background:none;border:none;border-bottom:3px solid transparent;font-size:1em;font-weight:600;color:var(--_8);transition:all .2s ease-in-out}.tab-button:hover{background-color:var(--_5)}.tab-button.active{color:var(--accent-primary);border-bottom-color:var(--accent-primary)}.tab-pane{display:none;height:100%;overflow-y:auto;padding:5px 10px 5px 5px}.tab-pane.active{display:block}.control-section{margin-bottom:20px}.control-section h4{margin-bottom:10px;border-bottom:1px solid var(--border-color);padding-bottom:5px;color:var(--_7)}.transform-buttons,.filter-buttons,.aspect-ratio-buttons{display:grid;grid-template-columns:1fr 1fr;gap:10px}.filter-buttons{grid-template-columns:repeat(3,1fr)}.aspect-ratio-buttons{grid-template-columns:repeat(3,1fr)}.custom-ratio-container{display:flex;gap:10px;align-items:flex-end}.custom-ratio-container .control-group{flex:1}.custom-ratio-container .action-button{flex:0 0 70px;padding:12px;font-size:.9em;background-color:var(--_13)}.control-section-button{background-color:var(--_5);color:var(--_7);border:1px solid var(--border-color);padding:8px;border-radius:var(--_2);cursor:pointer;display:flex;align-items:center;justify-content:center;gap:6px;width:100%;font-family:var(--_1)}.control-section-button.active{border-color:var(--accent-primary);color:var(--accent-primary);box-shadow:0 0 0 2px var(--_12)}.adjustment-slider .slider-label{display:flex;justify-content:space-between;font-size:.9em}.text-controls .control-group{margin-bottom:15px}.add-object-buttons{display:flex;gap:10px;margin-bottom:20px}.add-object-buttons .control-section-button{flex:1}.text-controls .color-input-wrapper{display:flex;align-items:center;gap:10px}.text-controls input[type=color]{padding:0;height:35px;width:45px;border-radius:var(--_2)}.color-palette{display:flex;gap:6px;margin-top:8px;flex-wrap:wrap}.color-swatch{width:22px;height:22px;border-radius:50%;cursor:pointer;border:2px solid var(--border-color);background-clip:content-box;padding:2px}.color-swatch.transparent{background-image:linear-gradient(45deg,#ccc 25%,transparent 25%),linear-gradient(-45deg,#ccc 25%,transparent 25%),linear-gradient(45deg,transparent 75%,#ccc 75%),linear-gradient(-45deg,transparent 75%,#ccc 75%);background-size:10px 10px;background-position:0 0,0 5px,5px -5px,-5px 0}.modal-action-buttons{margin-top:15px;padding-top:15px;border-top:1px solid var(--border-color);display:flex;flex-direction:row;gap:15px;justify-content:flex-end}.modal-action-buttons .action-button{width:auto;padding:10px 20px;font-size:1em;background-image:none;background-size:auto;background-position:initial}.modal-action-buttons .action-button:hover:not(:disabled){transform:none;box-shadow:none}#resetAdjustmentsButton{background-color:var(--_8)}#applyCropButton,#applyOverlayCropButton{background-color:var(--_13)}#applyCropButton:hover,#applyOverlayCropButton:hover{background-color:#2f855a}#captureImageButton{background-color:var(--_13)}#switchCameraButton{background-color:var(--_11)}.upload-loader-overlay{position:absolute;top:0;left:0;width:100%;height:100%;background-color:var(--_12);display:flex;flex-direction:column;align-items:center;justify-content:center;z-index:10;border-radius:var(--_3);color:var(--_7);backdrop-filter:blur(2px)}.loader-spinner{width:40px;height:40px;border:4px solid var(--border-color);border-top-color:var(--accent-primary);border-radius:50%;animation:spin 1s linear infinite;margin-bottom:10px}#cameraFeed{width:100%;max-height:60vh;border-radius:var(--_3);background-color:var(--_5);transform:scaleX(-1)}.panel-header-container{display:flex;justify-content:space-between;align-items:center;margin-bottom:20px;padding-bottom:10px;border-bottom:1px solid var(--border-color)}#pastResizesToggle{background:none;border:none;color:var(--_8);font-size:1.2em;cursor:pointer;transition:color .2s;padding:5px}#pastResizesToggle:hover{color:var(--accent-primary)}.past-resizes-panel{background-color:var(--_5);border-radius:var(--_2);padding:15px;margin-bottom:20px;border:1px solid var(--border-color)}.past-resizes-panel h4{margin-top:0;margin-bottom:10px;font-size:.9em;color:var(--_8)}#pastResizesList{list-style:none;padding:0;margin:0;max-height:150px;overflow-y:auto}#pastResizesList li{padding:10px;background-color:var(--_6);border:1px solid var(--border-color);border-radius:var(--_2);margin-bottom:8px;cursor:pointer;font-size:.85em;transition:all .2s;display:flex;justify-content:space-between;align-items:center}#pastResizesList li:hover{border-color:var(--accent-primary);color:var(--accent-primary);transform:translateX(3px)}#pastResizesList li .format-tag{background-color:var(--_11);color:#fff;padding:3px 6px;border-radius:var(--_2);font-size:.9em;font-weight:500}@keyframes spin{to{transform:rotate(360deg)}}@media (max-width:992px){.main-content{grid-template-columns:1fr}.app-header{flex-direction:column;align-items:flex-start;gap:10px}}@media (max-width:768px){body{padding:10px}.panel{padding:15px}.app-header .title h1{font-size:1.5em}.crop-modal-body{flex-direction:column}#cropImageContainer{min-height:250px;flex-basis:50%}.crop-controls-panel{flex-basis:50%}.modal-action-buttons{justify-content:space-between}.modal-action-buttons .action-button{flex-grow:1}}