*{margin:0;padding:0;box-sizing:border-box}:root{--bg: #1a1a2e;--bg-panel: #16213e;--bg-canvas: #0f0f23;--text: #e0e0e0;--text-dim: #888;--accent: #4fc3f7;--accent-hover: #29b6f6;--border: #2a2a4a;--overlay: rgba(0, 0, 0, .5);--radius: 6px}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;background:var(--bg);color:var(--text);height:100vh;overflow:hidden;-webkit-user-select:none;user-select:none}#app{display:flex;flex-direction:column;height:100vh}#toolbar{display:flex;align-items:center;justify-content:space-between;padding:8px 16px;background:var(--bg-panel);border-bottom:1px solid var(--border);flex-shrink:0;gap:12px;flex-wrap:wrap}.toolbar-left,.toolbar-right{display:flex;align-items:center;gap:8px}.divider{width:1px;height:24px;background:var(--border)}.ratio-group{display:flex;align-items:center;gap:4px}.ratio-group .label{font-size:13px;color:var(--text-dim);margin-right:4px}.btn{border:1px solid var(--border);background:var(--bg);color:var(--text);padding:6px 14px;border-radius:var(--radius);cursor:pointer;font-size:13px;transition:all .15s;white-space:nowrap}.btn:hover{background:var(--bg-panel);border-color:var(--accent)}.btn:active{transform:scale(.97)}.btn-primary{background:var(--accent);color:#0a0a1a;border-color:var(--accent);font-weight:600}.btn-primary:hover{background:var(--accent-hover)}.btn-primary:disabled{background:#555;border-color:#555;color:#999;cursor:not-allowed}.btn-sm{padding:4px 10px;font-size:12px}.btn-lg{padding:10px 28px;font-size:15px}.ratio-btn.active{background:var(--accent);color:#0a0a1a;border-color:var(--accent)}.icon{font-weight:700;font-size:16px}#canvas-container{flex:1;position:relative;background:var(--bg-canvas);display:flex;align-items:center;justify-content:center;overflow:hidden;min-height:0}#drop-zone{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;z-index:5;transition:background .2s}#drop-zone.drag-over{background:#4fc3f71a;border:2px dashed var(--accent)}#drop-zone.hidden{display:none}.drop-hint{text-align:center;padding:40px}.drop-icon{font-size:64px;margin-bottom:16px;filter:grayscale(.3)}.drop-hint p{font-size:16px;color:var(--text-dim);margin-bottom:8px}.drop-formats{font-size:12px!important;color:#666!important}#main-canvas{max-width:100%;max-height:100%;cursor:crosshair;image-rendering:auto}#main-canvas.moving{cursor:move}#main-canvas.resizing-nw,#main-canvas.resizing-se{cursor:nwse-resize}#main-canvas.resizing-ne,#main-canvas.resizing-sw{cursor:nesw-resize}#main-canvas.resizing-n,#main-canvas.resizing-s{cursor:ns-resize}#main-canvas.resizing-e,#main-canvas.resizing-w{cursor:ew-resize}#info-bar{position:absolute;bottom:8px;left:50%;transform:translate(-50%);display:flex;gap:16px;padding:6px 14px;background:var(--overlay);border-radius:var(--radius);font-size:12px;color:var(--text-dim);z-index:10}#info-bar:empty{display:none}#footer{display:flex;align-items:center;justify-content:center;gap:12px;padding:10px 16px;background:var(--bg-panel);border-top:1px solid var(--border);flex-shrink:0;position:relative}.export-panel{display:flex;align-items:center;gap:12px;padding:8px 14px;background:var(--bg);border:1px solid var(--border);border-radius:var(--radius)}.export-panel.hidden{display:none}.export-row{display:flex;align-items:center;gap:6px;font-size:13px}.export-row label{color:var(--text-dim)}#export-format{background:var(--bg-panel);color:var(--text);border:1px solid var(--border);border-radius:var(--radius);padding:4px 8px;font-size:13px}#export-quality{width:80px;accent-color:var(--accent)}#toast-container{position:fixed;top:20px;right:20px;z-index:1000;display:flex;flex-direction:column;gap:8px}.toast{padding:10px 18px;background:var(--bg-panel);border:1px solid var(--border);border-radius:var(--radius);color:var(--text);font-size:13px;box-shadow:0 4px 12px #0000004d;animation:toast-in .3s ease}.toast.error{border-color:#ef5350;color:#ef5350}.toast.success{border-color:#66bb6a;color:#66bb6a}@keyframes toast-in{0%{opacity:0;transform:translate(40px)}to{opacity:1;transform:translate(0)}}@media(max-width:768px){#toolbar{padding:6px 10px;gap:6px}.ratio-group .label{display:none}.btn{padding:4px 8px;font-size:11px}.btn-sm{padding:3px 6px;font-size:11px}}
