*{box-sizing:border-box}html,body,#root{height:100%;margin:0}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Helvetica,Arial,sans-serif;background:#26282c;color:#e8e8ea;overscroll-behavior:none}.app{height:100%;display:flex;flex-direction:column}.toolbar{display:flex;align-items:center;gap:8px;padding:8px 14px;background:#17181b;border-bottom:1px solid #000;flex:0 0 auto;-webkit-user-select:none;user-select:none}.toolbar-brand{font-weight:700;font-size:15px;letter-spacing:.3px;color:#7fd0a7;margin-right:8px}.toolbar-group{display:flex;align-items:center;gap:2px}.toolbar-divider{width:1px;height:26px;background:#3a3d43;margin:0 6px}.toolbar-spacer{flex:1}.tool-btn{display:inline-flex;align-items:center;justify-content:center;width:36px;height:36px;border:none;border-radius:7px;background:transparent;color:#c9cbd1;cursor:pointer}.tool-btn.small{width:28px;height:28px;font-size:11px;font-weight:700}.tool-btn:hover:not(:disabled){background:#2b2e34;color:#fff}.tool-btn.active{background:#7fd0a7;color:#10231a}.tool-btn:disabled{opacity:.35;cursor:default}.sub-picker{background:#202226;border-radius:8px;padding:3px}.swatch-btn{width:36px;height:36px;border:none;border-radius:7px;background:transparent;display:inline-flex;align-items:center;justify-content:center;cursor:pointer}.swatch-btn:hover:not(:disabled){background:#2b2e34}.swatch-btn:disabled{opacity:.35;cursor:default}.swatch{width:20px;height:20px;border-radius:50%;border:2px solid rgba(255,255,255,.7);box-shadow:0 0 0 1px #0009}.popover{position:absolute;top:42px;left:0;z-index:30;background:#232529;border:1px solid #3a3d43;border-radius:10px;box-shadow:0 10px 32px #00000080;padding:10px}.preset-grid{display:grid;grid-template-columns:repeat(3,28px);gap:8px}.preset{width:28px;height:28px;border-radius:50%;border:2px solid rgba(255,255,255,.25);cursor:pointer;padding:0}.preset:hover{transform:scale(1.12)}.preset.chosen{border-color:#7fd0a7;box-shadow:0 0 0 2px #7fd0a766}.custom-color{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-top:10px;font-size:12px;color:#b6b8bf}.custom-color input[type=color]{width:40px;height:26px;border:none;background:none;padding:0;cursor:pointer}.size-control label{display:flex;align-items:center;gap:7px;font-size:12px;color:#b6b8bf}.size-control input[type=range]{width:90px;accent-color:#7fd0a7}.size-label{font-weight:700}.size-value{min-width:20px;text-align:right;font-variant-numeric:tabular-nums}.export-btn{display:inline-flex;align-items:center;gap:7px;padding:8px 14px;border:none;border-radius:8px;background:#7fd0a7;color:#10231a;font-weight:700;font-size:13px;cursor:pointer}.export-btn:hover:not(:disabled){background:#93dcb6}.export-btn:disabled{opacity:.35;cursor:default}.export-popover{right:0;left:auto;display:flex;flex-direction:column;min-width:190px;padding:6px}.export-popover button{display:flex;justify-content:space-between;align-items:center;gap:12px;border:none;background:transparent;color:#e8e8ea;text-align:left;padding:9px 10px;border-radius:7px;font-size:13px;cursor:pointer}.export-popover button:hover{background:#2f3237}.shortcut-hint{color:#8a8d94;font-size:11px}.export-note{font-size:12px;color:#7fd0a7;margin-right:8px}.canvas-area{flex:1;min-height:0;display:flex;align-items:center;justify-content:center;overflow:hidden;background:linear-gradient(45deg,#2c2e33 25%,transparent 25%,transparent 75%,#2c2e33 75%),linear-gradient(45deg,#2c2e33 25%,transparent 25%,transparent 75%,#2c2e33 75%),#292b2f;background-size:24px 24px;background-position:0 0,12px 12px}.stage{position:relative;box-shadow:0 6px 40px #0000008c}.base-canvas{display:block;width:100%;height:100%}.overlay{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;touch-action:none}.overlay .selection-box{fill:none;stroke:#4da3ff;stroke-width:1.5;stroke-dasharray:5 4;pointer-events:none}.overlay .handle,.crop-overlay .handle{fill:#fff;stroke:#4da3ff;stroke-width:1.5;vector-effect:non-scaling-stroke;pointer-events:auto}.crop-overlay{z-index:10}.crop-actions{position:absolute;transform:translate(-50%);display:flex;align-items:center;gap:8px;z-index:11;background:#141518eb;border:1px solid #3a3d43;border-radius:9px;padding:6px 8px}.crop-dims{font-size:11px;color:#b6b8bf;font-variant-numeric:tabular-nums;padding:0 4px}.crop-actions button{border:none;border-radius:6px;padding:6px 12px;font-size:12px;font-weight:700;cursor:pointer}.crop-apply{background:#7fd0a7;color:#10231a}.crop-cancel{background:#3a3d43;color:#e8e8ea}.text-editor{position:absolute;background:transparent;border:1px dashed rgba(77,163,255,.8);border-radius:2px;outline:none;padding:0;margin:0;resize:none;overflow:hidden;white-space:pre-wrap;word-break:break-word;caret-color:#4da3ff;z-index:12;text-shadow:-1px -1px 0 rgba(255,255,255,.75),1px -1px 0 rgba(255,255,255,.75),-1px 1px 0 rgba(255,255,255,.75),1px 1px 0 rgba(255,255,255,.75)}.text-editor::placeholder{color:#80808099;text-shadow:none}.empty-state{flex:1;display:flex;align-items:center;justify-content:center;padding:24px}.drop-hint{text-align:center;border:2px dashed #4a4e56;border-radius:18px;padding:56px 72px;color:#b6b8bf;max-width:560px}.drop-hint h1{font-size:22px;margin:18px 0 8px;color:#e8e8ea}.drop-hint p{margin:0 0 20px;font-size:14px;line-height:1.55}.choose-file-btn{border:none;border-radius:9px;background:#7fd0a7;color:#10231a;font-size:14px;font-weight:700;padding:11px 22px;cursor:pointer}.choose-file-btn:hover{background:#93dcb6}.privacy-note{margin-top:22px!important;font-size:12px!important;color:#7d818a}.drop-veil{position:fixed;top:0;right:0;bottom:0;left:0;z-index:50;background:#1c785040;border:3px dashed #7fd0a7;display:flex;align-items:center;justify-content:center;pointer-events:none}.drop-veil-inner{background:#17181b;border-radius:12px;padding:16px 28px;font-size:17px;font-weight:700;color:#7fd0a7}.error-toast{position:fixed;bottom:24px;left:50%;transform:translate(-50%);z-index:60;background:#b3261e;color:#fff;border-radius:10px;padding:12px 20px;font-size:13px;box-shadow:0 8px 24px #00000073}.sr-status{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
