body,html{color:#e0e0e0;background-color:#0d1110;width:100vw;height:100vh;margin:0;padding:0;font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica,Arial,sans-serif;overflow:hidden}#root{width:100%;height:100%}*{box-sizing:border-box}:root{--primary:#1ed760;--primary-hover:#1fdf64;--bg-panel:#141a18;--bg-floating:#141a18b3;--border-subtle:#ffffff14;--text-main:#fff;--text-muted:#a0a0a0;--radius-sm:6px;--radius-md:10px;--radius-lg:16px;--shadow-lg:0 10px 30px #00000080}.app-container{width:100%;height:100%;display:flex}.library-panel{border-right:1px solid var(--border-subtle);z-index:5;background-color:#0a0d0c;flex-direction:column;width:250px;min-width:200px;display:flex}.library-header{border-bottom:1px solid var(--border-subtle);justify-content:space-between;align-items:center;padding:24px 16px;display:flex}.library-header h2{color:var(--text-main);margin:0;font-size:1rem;font-weight:500}.library-list{flex-direction:column;flex:1;gap:8px;padding:12px;display:flex;overflow-y:auto}.preset-item{border-radius:var(--radius-sm);cursor:pointer;background:#ffffff08;border:1px solid #ffffff0d;grid-template-columns:64px minmax(0,1fr) auto auto;align-items:center;gap:10px;padding:10px;transition:all .2s;display:grid}.preset-item:hover{background:#ffffff14;border-color:#ffffff1a}.preset-item.active{border-color:var(--primary);background:#1ed7601a}.preset-info{flex-direction:column;gap:4px;min-width:0;display:flex}.preset-thumb{background:#050706;border:1px solid #ffffff14;border-radius:6px;justify-content:center;align-items:center;width:64px;height:48px;display:flex;overflow:hidden}.preset-thumb-canvas{object-fit:contain;width:100%;height:100%;display:block}.preset-name{color:var(--text-main);white-space:nowrap;text-overflow:ellipsis;font-size:.9rem;font-weight:500;overflow:hidden}.preset-date{color:var(--text-muted);font-size:.75rem}.preset-delete,.preset-default-toggle{color:var(--text-muted);cursor:pointer;background:0 0;border:none;border-radius:4px;justify-content:center;align-items:center;padding:4px;display:flex}.preset-default-toggle:hover{background:#1ed7601f}.preset-default-box{border:1px solid;border-radius:3px;justify-content:center;align-items:center;width:14px;height:14px;display:inline-flex}.preset-default-toggle.active{color:var(--primary)}.preset-default-toggle.active .preset-default-box{background:var(--primary);border-color:var(--primary);box-shadow:inset 0 0 0 2px #0a0d0c}.preset-delete:hover{color:#ff4d4d;background:#ff4d4d1a}.library-error{color:#ff8f8f;padding:4px 2px 0;font-size:.78rem}.save-dialog-backdrop{z-index:30;background:#00000073;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.save-dialog{width:min(92vw,360px);box-shadow:var(--shadow-lg);background:#141a18;border:1px solid #ffffff14;border-radius:12px;flex-direction:column;gap:12px;padding:20px;display:flex}.save-dialog h2{color:var(--text-main);margin:0;font-size:1rem}.save-dialog-label{color:var(--text-muted);font-size:.8rem}.save-dialog-input{width:100%;color:var(--text-main);background:#ffffff0d;border:1px solid #ffffff1f;border-radius:8px;padding:10px 12px;font-size:.92rem}.save-dialog-input:focus{outline:1px solid var(--primary);border-color:var(--primary)}.save-dialog-error{color:#ff8f8f;font-size:.8rem}.save-dialog-actions{justify-content:flex-end;gap:10px;display:flex}.save-dialog-btn{cursor:pointer;border:1px solid #ffffff1a;border-radius:8px;padding:8px 12px;font-size:.85rem}.save-dialog-btn.secondary{color:var(--text-main);background:0 0}.save-dialog-btn.primary{background:var(--primary);color:#08120b;border-color:#0000;font-weight:600}.control-panel{background-color:var(--bg-panel);border-right:1px solid var(--border-subtle);z-index:10;flex-direction:column;width:380px;min-width:350px;height:100%;display:flex;box-shadow:4px 0 15px #0003}.panel-header{border-bottom:1px solid var(--border-subtle);padding:24px}.panel-header h1{letter-spacing:-.02em;color:var(--primary);align-items:center;gap:10px;margin:0;font-size:1.25rem;font-weight:600;display:flex}.panel-content{flex-direction:column;flex:1;gap:28px;padding:24px;display:flex;overflow-y:auto}.control-group{flex-direction:column;gap:12px;display:flex}.control-group-title{text-transform:uppercase;letter-spacing:.05em;color:var(--text-muted);font-size:.8rem;font-weight:600}.input-row{justify-content:space-between;align-items:center;display:flex}.input-label{color:var(--text-main);font-size:.9rem}input[type=range]{-webkit-appearance:none;background:#ffffff1a;border-radius:2px;outline:none;width:60%;height:4px}input[type=range]::-webkit-slider-thumb{appearance:none;background:var(--primary);cursor:pointer;border-radius:50%;width:16px;height:16px;transition:transform .1s}input[type=range]::-webkit-slider-thumb:hover{transform:scale(1.2)}.segmented-control{border-radius:var(--radius-sm);background:#0000004d;flex-wrap:wrap;gap:4px;padding:4px;display:flex}.segment-btn{min-width:55px;color:var(--text-muted);cursor:pointer;white-space:nowrap;text-align:center;background:0 0;border:none;border-radius:4px;flex:auto;padding:7px 8px;font-size:.78rem;font-weight:500;transition:all .2s}.segment-btn.active{color:var(--text-main);background:#ffffff1a;box-shadow:0 2px 5px #0003}.segment-btn:hover:not(.active){color:var(--text-main)}button.action-btn{background:var(--primary);color:#000;border-radius:var(--radius-md);cursor:pointer;border:none;justify-content:center;align-items:center;gap:8px;width:100%;padding:14px 24px;font-size:.95rem;font-weight:600;transition:opacity .2s,transform .1s;display:flex}.action-group{flex-direction:column;gap:10px;display:flex}.export-row{gap:12px}.export-select,.export-number-input{color:var(--text-main);background:#ffffff14;border:1px solid #ffffff1f;border-radius:8px;padding:8px 10px;font-size:.85rem}.export-select{width:60%}.export-number-input{text-align:right;width:88px}.export-select:disabled,.export-number-input:disabled{opacity:.55}button.action-btn:hover{background:var(--primary-hover)}button.action-btn:active{transform:scale(.98)}button.action-btn.secondary{color:var(--text-main);background:#ffffff0f;border:1px solid #ffffff14}button.action-btn.secondary:hover{background:#ffffff1a}button.action-btn:disabled{opacity:.6;cursor:wait}.action-note{color:var(--text-muted);text-align:center;font-size:.75rem;line-height:1.4}.action-error{color:#ff8f8f;text-align:center;font-size:.78rem}.preview-panel{background-color:#111;background-image:linear-gradient(45deg,#1a1a1a 25%,#0000 25%),linear-gradient(-45deg,#1a1a1a 25%,#0000 25%),linear-gradient(45deg,#0000 75%,#1a1a1a 75%),linear-gradient(-45deg,#0000 75%,#1a1a1a 75%);background-position:0 0,0 20px,20px -20px,-20px 0;background-size:40px 40px;flex:1;justify-content:center;align-items:center;padding:40px;display:flex;position:relative}.canvas-container{max-width:100%;max-height:100%;box-shadow:var(--shadow-lg);background:0 0;border:1px solid #ffffff0d;border-radius:4px;justify-content:center;align-items:center;display:flex;overflow:hidden}canvas{object-fit:contain;max-width:100%;max-height:100%}.preview-info{background:var(--bg-floating);-webkit-backdrop-filter:blur(10px);border-radius:var(--radius-sm);border:1px solid var(--border-subtle);color:var(--text-muted);padding:8px 16px;font-family:monospace;font-size:.85rem;position:absolute;top:24px;left:24px}
