*{box-sizing:border-box}html,body,#root{height:100%;width:100%;margin:0;padding:0}:root{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,sans-serif;line-height:1.5;font-weight:400;color-scheme:dark;color:#fff;background-color:#121218;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}button{font-family:inherit}.crop-controls{position:fixed;bottom:32px;left:50%;transform:translate(-50%);background:linear-gradient(180deg,#1e1e2e,#181825);border-radius:12px;padding:16px 24px;box-shadow:0 8px 32px #0006;z-index:1000;display:flex;flex-direction:column;gap:12px;min-width:300px}.crop-instructions{color:#a6adc8;font-size:13px;text-align:center;font-weight:500}.crop-buttons{display:flex;gap:12px}.crop-button{flex:1;padding:10px 20px;border:none;border-radius:8px;font-size:14px;font-weight:600;cursor:pointer;transition:all .2s ease;display:flex;align-items:center;justify-content:center;gap:6px}.crop-confirm{background:linear-gradient(135deg,#89b4fa,#74c7ec);color:#1e1e2e;box-shadow:0 4px 12px #89b4fa40}.crop-confirm:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 6px 16px #89b4fa59}.crop-confirm:disabled{opacity:.4;cursor:not-allowed}.crop-cancel{background:#ffffff0d;color:#f38ba8;border:1px solid rgba(243,139,168,.3)}.crop-cancel:hover{background:#f38ba826;border-color:#f38ba880;transform:translateY(-2px)}.crop-button:active{transform:translateY(0)}.zoom-controls{position:fixed;bottom:32px;right:32px;background:linear-gradient(180deg,#1e1e2e,#181825);border-radius:12px;padding:8px;box-shadow:0 8px 32px #0006;z-index:1000;display:flex;align-items:center;gap:4px}.zoom-button{width:36px;height:36px;border:none;border-radius:8px;background:#ffffff0d;color:#a6adc8;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .2s ease}.zoom-button:hover:not(:disabled){background:#ffffff1a;color:#cdd6f4;transform:translateY(-1px)}.zoom-button:disabled{opacity:.3;cursor:not-allowed}.zoom-reset{height:36px;padding:0 12px;border:none;border-radius:8px;background:#ffffff0d;color:#a6adc8;cursor:pointer;display:flex;align-items:center;justify-content:center;gap:6px;transition:all .2s ease;min-width:80px}.zoom-reset:hover{background:#ffffff1a;color:#cdd6f4;transform:translateY(-1px)}.zoom-label{font-size:13px;font-weight:600;font-variant-numeric:tabular-nums}.toolbar{width:240px;min-width:240px;background:linear-gradient(180deg,#1e1e2e,#181825);color:#fff;padding:20px;display:flex;flex-direction:column;gap:24px;overflow-y:auto;overflow-x:hidden;box-shadow:2px 0 12px #0000004d}.toolbar-header{padding-bottom:16px;border-bottom:1px solid rgba(255,255,255,.1)}.toolbar-logo{display:flex;align-items:center;gap:10px;color:#fff}.toolbar-logo svg{color:#89b4fa}.toolbar-brand{font-size:20px;font-weight:700;letter-spacing:.5px}.toolbar-section{display:flex;flex-direction:column;gap:10px}.toolbar-section h3{font-size:11px;text-transform:uppercase;color:#6c7086;margin:0 0 4px;letter-spacing:1px;font-weight:600}.tool-group{display:grid;grid-template-columns:repeat(4,1fr);gap:6px}.tool-button{width:100%;aspect-ratio:1;border:none;border-radius:10px;background:#ffffff0d;color:#a6adc8;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .2s ease}.tool-button:hover:not(:disabled){background:#ffffff1a;color:#cdd6f4;transform:translateY(-1px)}.tool-button.active{background:linear-gradient(135deg,#89b4fa,#74c7ec);color:#1e1e2e;box-shadow:0 4px 12px #89b4fa4d}.tool-button:disabled{opacity:.3;cursor:not-allowed}.color-picker{display:flex;align-items:center;gap:10px}.color-picker label{font-size:13px;color:#a6adc8;min-width:40px}.color-picker-inline{display:flex;align-items:center;gap:6px;flex:1}.color-picker input[type=color]{width:36px;height:36px;border:none;border-radius:8px;cursor:pointer;background:none;padding:0;flex-shrink:0}.color-picker input[type=color]::-webkit-color-swatch-wrapper{padding:3px}.color-picker input[type=color]::-webkit-color-swatch{border-radius:6px;border:2px solid rgba(255,255,255,.1)}.color-swatches{display:flex;gap:4px;flex-wrap:wrap}.color-swatch{width:22px;height:22px;border:2px solid rgba(255,255,255,.2);border-radius:6px;cursor:pointer;padding:0;transition:all .2s ease;flex-shrink:0}.color-swatch:hover{transform:scale(1.15);border-color:#ffffff80;box-shadow:0 2px 8px #0000004d}.color-swatch:active{transform:scale(1.05)}.stroke-width-control,.font-size-control{display:flex;align-items:center;gap:8px;flex-wrap:nowrap;min-width:0}.stroke-width-control label,.font-size-control label{font-size:13px;color:#a6adc8;min-width:40px;flex-shrink:0}.stroke-width-control input[type=range],.font-size-control input[type=range]{flex:1;min-width:60px;height:6px;background:#ffffff1a;border-radius:3px;appearance:none;cursor:pointer}.stroke-width-control input[type=range]::-webkit-slider-thumb,.font-size-control input[type=range]::-webkit-slider-thumb{appearance:none;width:16px;height:16px;background:linear-gradient(135deg,#89b4fa,#74c7ec);border-radius:50%;cursor:pointer;box-shadow:0 2px 6px #89b4fa66}.stroke-width-control span,.font-size-control span{font-size:12px;color:#6c7086;min-width:38px;flex-shrink:0;text-align:right}.font-family-control{display:flex;align-items:center;gap:8px}.font-family-control label{font-size:13px;color:#a6adc8;min-width:55px;flex-shrink:0}.font-family-control select{flex:1;padding:8px 10px;background:#ffffff0d;color:#cdd6f4;border:none;border-radius:8px;font-size:13px;cursor:pointer;transition:background .2s ease}.font-family-control select:hover{background:#ffffff1a}.font-family-control select:focus{outline:none;box-shadow:0 0 0 2px #89b4fa4d}.font-family-control select option{background:#1e1e2e;color:#cdd6f4}.export-button{width:100%;padding:14px 16px;background:linear-gradient(135deg,#89b4fa,#74c7ec);color:#1e1e2e;border:none;border-radius:10px;font-size:14px;font-weight:600;cursor:pointer;transition:all .2s ease;box-shadow:0 4px 12px #89b4fa40}.export-button:hover{transform:translateY(-2px);box-shadow:0 6px 16px #89b4fa59}.export-button:active{transform:translateY(0)}.export-button:disabled{opacity:.5;cursor:not-allowed;transform:none;box-shadow:none}.export-button:disabled:hover,.export-button:disabled:active{opacity:.5;transform:none;box-shadow:none}.clear-image-button{width:100%;padding:10px 16px;margin-top:8px;background:#ffffff0d;color:#f38ba8;border:1px solid rgba(243,139,168,.3);border-radius:8px;font-size:13px;font-weight:500;cursor:pointer;transition:all .2s ease;display:flex;align-items:center;justify-content:center;gap:8px}.clear-image-button:hover{background:#f38ba826;border-color:#f38ba880;transform:translateY(-1px)}.clear-image-button:active{transform:translateY(0)}.clear-confirm{display:flex;align-items:center;gap:8px;margin-top:8px;padding:8px;background:#f38ba81a;border:1px solid rgba(243,139,168,.3);border-radius:8px}.clear-confirm-text{font-size:13px;color:#f38ba8;flex:1}.clear-confirm-button{padding:6px 12px;border:none;border-radius:6px;font-size:12px;font-weight:500;cursor:pointer;transition:all .2s ease}.clear-confirm-button.confirm{background:#f38ba8;color:#1e1e2e}.clear-confirm-button.confirm:hover{background:#eba0ac}.clear-confirm-button.cancel{background:#ffffff1a;color:#cdd6f4}.clear-confirm-button.cancel:hover{background:#ffffff26}.toolbar-info{margin-top:auto;padding-top:16px;border-top:1px solid rgba(255,255,255,.05)}.toolbar-info p{margin:4px 0;font-size:12px;color:#6c7086}.toolbar-info strong{color:#89b4fa}.image-upload{flex:1;display:flex;align-items:center;justify-content:center;background:#1e1e2e;border:2px dashed #444;border-radius:12px;margin:20px;cursor:pointer;transition:all .2s ease}.image-upload:hover,.image-upload.dragging{border-color:#6b8cff;background:#252535}.upload-content{text-align:center;color:#888}.upload-content svg{margin-bottom:16px;color:#666}.upload-content p{margin:0 0 8px;font-size:16px;color:#aaa}.upload-content span{font-size:13px;color:#666}.export-dialog-overlay{position:fixed;inset:0;background:#0009;display:flex;align-items:center;justify-content:center;z-index:1000}.export-dialog{background:#1a1a2e;border-radius:12px;padding:24px;min-width:320px;color:#fff;box-shadow:0 10px 40px #00000080}.export-dialog h2{margin:0 0 20px;font-size:18px;font-weight:600}.export-option{margin-bottom:16px}.export-option label{display:block;font-size:13px;color:#aaa;margin-bottom:8px}.format-buttons{display:flex;gap:8px}.format-buttons button{flex:1;padding:10px 16px;border:2px solid #444;border-radius:6px;background:#2a2a4e;color:#ccc;cursor:pointer;transition:all .15s ease;font-size:14px;font-weight:500}.format-buttons button:hover{background:#3a3a6e;border-color:#666}.format-buttons button.active{background:#4a90d9;border-color:#4a90d9;color:#fff;font-weight:600}.export-option input[type=range]{width:100%;height:4px;background:#444;border-radius:2px;appearance:none;cursor:pointer}.export-option input[type=range]::-webkit-slider-thumb{appearance:none;width:16px;height:16px;background:#6b8cff;border-radius:50%;cursor:pointer}.export-actions{display:flex;gap:12px;margin-top:24px}.export-actions button{flex:1;padding:12px 20px;border:none;border-radius:6px;font-size:14px;font-weight:500;cursor:pointer;transition:background .15s ease}.export-actions .cancel-btn{background:#333;color:#aaa}.export-actions .cancel-btn:hover:not(:disabled){background:#444}.export-actions .export-btn{background:#4a90d9;color:#fff}.export-actions .export-btn:hover:not(:disabled){background:#3a7fc9}.export-actions button:disabled{opacity:.6;cursor:not-allowed}.app{display:flex;height:100vh;width:100vw;overflow:hidden;background:#121218}.canvas-area{flex:1;display:flex;overflow:auto;background:#1e1e2e}.canvas-wrapper{flex:1;display:flex;align-items:safe center;justify-content:center;padding:20px;overflow:auto}.canvas-wrapper>div{box-shadow:0 4px 20px #0006;border-radius:4px}
