:root{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,sans-serif;line-height:1.5;font-weight:400;color-scheme:dark;color:#ffffffde;background-color:#0f0f0f;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;--color-bg-primary: #1a1a1a;--color-bg-secondary: #242424;--color-bg-tertiary: #2a2a2a;--color-canvas-surround: #1a1a1a;--color-text-primary: #e8e8e8;--color-text-secondary: #b8b8b8;--color-text-tertiary: #888888;--color-text-inverse: #1a1a1a;--color-accent-primary: #4a9eff;--color-accent-hover: #6bb0ff;--color-accent-active: #3a8eef;--color-accent-focus: #4a9eff;--color-neon-pink: #ff00ff;--color-neon-green: #00ff00;--color-neon-purple: #9d00ff;--color-border: #333333;--color-border-light: #2a2a2a;--color-border-hover: #4a4a4a;--color-border-focus: #4a9eff;--color-hover: rgba(255, 255, 255, .05);--color-active: rgba(255, 255, 255, .1);--color-disabled: #2a2a2a;--color-disabled-text: #555555;--color-slider-track: #333333;--color-slider-thumb: #d0d0d0;--color-slider-thumb-hover: #e8e8e8;--color-slider-thumb-active: #4a9eff;--color-slider-fill: #4a9eff;--color-input-bg: #2a2a2a;--color-input-border: #333333;--color-input-border-focus: #4a9eff;--color-scrollbar: #444444;--color-scrollbar-hover: #555555;--color-scrollbar-track: #242424;--color-success: #4caf50;--color-success-bg: rgba(76, 175, 80, .1);--color-warning: #ff9800;--color-warning-bg: rgba(255, 152, 0, .1);--color-error: #f44336;--color-error-bg: rgba(244, 67, 54, .1);--color-info: #2196f3;--color-info-bg: rgba(33, 150, 243, .1);--spacing-xs: 4px;--spacing-sm: 8px;--spacing-md: 12px;--spacing-lg: 16px;--spacing-xl: 24px;--spacing-xxl: 32px;--font-size-xs: 11px;--font-size-sm: 13px;--font-size-md: 14px;--font-size-lg: 16px;--font-size-xl: 18px;--font-size-2xl: 24px;--size-sidebar-width: 260px;--size-editing-panel-width: 300px;--size-header-height: 56px;--size-control-height: 36px;--size-slider-height: 3px;--size-slider-thumb: 14px;--size-border-radius-sm: 6px;--size-border-radius-md: 8px;--size-border-radius-lg: 12px;--border-radius-sm: var(--size-border-radius-sm);--border-radius-md: var(--size-border-radius-md);--border-radius-lg: var(--size-border-radius-lg);--color-accent: var(--color-accent-primary);--color-accent-hover: var(--color-accent-hover);--color-bg-hover: var(--color-hover);--transition-fast: .15s;--transition-normal: .25s;--transition-slow: .35s;--z-index-base: 1;--z-index-dropdown: 100;--z-index-modal: 1000;--z-index-tooltip: 2000}a{font-weight:500;color:#646cff;text-decoration:inherit}a:hover{color:#535bf2}body{margin:0;padding:0;min-width:320px;min-height:100vh;overflow:hidden;background-color:var(--color-bg-primary)}h1{font-size:3.2em;line-height:1.1}button{border-radius:var(--border-radius-sm);border:1px solid var(--color-border);padding:var(--spacing-sm) var(--spacing-md);font-size:13px;font-weight:500;font-family:inherit;background-color:var(--color-bg-tertiary);color:var(--color-text-primary);cursor:pointer;transition:all var(--transition-fast);user-select:none;letter-spacing:.2px}button:hover:not(:disabled){background-color:var(--color-hover);border-color:var(--color-border-hover)}button:active:not(:disabled){background-color:var(--color-active);transform:scale(.98)}button:focus-visible{outline:2px solid var(--color-accent-focus);outline-offset:2px}button:disabled{opacity:.4;cursor:not-allowed;background-color:var(--color-disabled);color:var(--color-disabled-text)}button.button-primary{background-color:var(--color-accent-primary);border-color:var(--color-accent-primary);color:#fff;font-weight:600}button.button-primary:hover:not(:disabled){background-color:var(--color-accent-hover);border-color:var(--color-accent-hover);box-shadow:0 2px 8px #4a9eff4d}button.button-primary:active:not(:disabled){background-color:var(--color-accent-active);border-color:var(--color-accent-active)}button.button-secondary{background-color:transparent;border-color:var(--color-border);color:var(--color-text-primary)}button.button-secondary:hover:not(:disabled){background-color:var(--color-hover);border-color:var(--color-border-hover)}input[type=text],input[type=number],input[type=email],input[type=password],textarea,select{padding:var(--spacing-sm) var(--spacing-md);font-size:14px;font-family:inherit;background-color:var(--color-input-bg);color:var(--color-text-primary);border:1px solid var(--color-input-border);border-radius:var(--size-border-radius-sm);transition:border-color var(--transition-fast),box-shadow var(--transition-fast)}input:focus,textarea:focus,select:focus{outline:none;border-color:var(--color-input-border-focus);box-shadow:0 0 0 3px #4a9eff1a}input:disabled,textarea:disabled,select:disabled{opacity:.5;cursor:not-allowed;background-color:var(--color-disabled)}input::placeholder,textarea::placeholder{color:var(--color-text-tertiary)}label{font-size:13px;font-weight:500;color:var(--color-text-primary);display:block;margin-bottom:var(--spacing-xs)}*:focus-visible{outline:2px solid var(--color-accent-focus);outline-offset:2px}a:focus-visible,button:focus-visible,input:focus-visible,textarea:focus-visible,select:focus-visible,[role=button]:focus-visible,[role=tab]:focus-visible,[tabindex]:focus-visible{outline:2px solid var(--color-accent-focus);outline-offset:2px}input[type=range]:focus-visible{outline:2px solid var(--color-accent-focus);outline-offset:4px}input[type=checkbox]:focus-visible,input[type=radio]:focus-visible{outline:2px solid var(--color-accent-focus);outline-offset:2px}canvas:focus-visible{outline:2px solid var(--color-accent-focus);outline-offset:-2px}.app-sidebar *:focus-visible,.app-editing-panel *:focus-visible{outline-color:var(--color-accent-focus)}.keyboard-navigation *:focus{outline:2px solid var(--color-accent-focus);outline-offset:2px}:focus:not(:focus-visible){outline:none}.skip-to-content{position:absolute;top:-40px;left:0;background:var(--color-accent-primary);color:var(--color-text-inverse);padding:var(--spacing-sm) var(--spacing-lg);text-decoration:none;z-index:10000;border-radius:0 0 var(--size-border-radius-sm) 0}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}}@media(prefers-contrast:high){:root{--color-text-primary: #ffffff;--color-text-secondary: #e0e0e0;--color-border: #ffffff;--color-accent-focus: #ffffff}button,input,select,textarea{border-width:2px}*:focus-visible{outline-width:3px}}.crop-tool{position:relative;width:100%;height:100%}.crop-tool__overlay-container{position:fixed;z-index:1000;pointer-events:none}.crop-tool__overlay{position:absolute;pointer-events:all;cursor:move;border:2px solid rgba(255,255,255,.9);box-shadow:0 0 0 9999px #00000080}.crop-tool__mask{position:absolute;background-color:#00000080;pointer-events:none}.crop-tool__mask--top{top:-100vh;left:-100vw;right:-100vw;height:100vh}.crop-tool__mask--right{top:0;left:100%;width:100vw;height:100%}.crop-tool__mask--bottom{top:100%;left:-100vw;right:-100vw;height:100vh}.crop-tool__mask--left{top:0;right:100%;width:100vw;height:100%}.crop-tool__border{position:absolute;inset:0;border:2px solid #ffffff;box-shadow:0 0 0 9999px #00000080;pointer-events:none}.crop-tool__grid{position:absolute;inset:0;pointer-events:none}.crop-tool__grid-line{position:absolute;background-color:#ffffff80}.crop-tool__grid-line--v1{left:33.333%;top:0;bottom:0;width:1px}.crop-tool__grid-line--v2{left:66.666%;top:0;bottom:0;width:1px}.crop-tool__grid-line--h1{top:33.333%;left:0;right:0;height:1px}.crop-tool__grid-line--h2{top:66.666%;left:0;right:0;height:1px}.crop-tool__handle{position:absolute;width:12px;height:12px;background-color:#fff;border:2px solid #000000;border-radius:50%;pointer-events:all;z-index:10}.crop-tool__handle--nw{top:-6px;left:-6px;cursor:nw-resize}.crop-tool__handle--n{top:-6px;left:50%;transform:translate(-50%);cursor:n-resize}.crop-tool__handle--ne{top:-6px;right:-6px;cursor:ne-resize}.crop-tool__handle--e{top:50%;right:-6px;transform:translateY(-50%);cursor:e-resize}.crop-tool__handle--se{bottom:-6px;right:-6px;cursor:se-resize}.crop-tool__handle--s{bottom:-6px;left:50%;transform:translate(-50%);cursor:s-resize}.crop-tool__handle--sw{bottom:-6px;left:-6px;cursor:sw-resize}.crop-tool__handle--w{top:50%;left:-6px;transform:translateY(-50%);cursor:w-resize}.crop-tool__move-area{position:absolute;inset:12px;cursor:move;pointer-events:all}.crop-tool__controls{position:absolute;top:20px;right:20px;background-color:#1e1e1ef2;backdrop-filter:blur(10px);border:1px solid #444;border-radius:8px;padding:16px;min-width:240px;max-width:280px;z-index:100;box-shadow:0 4px 12px #00000080}.crop-tool__section{margin-bottom:16px}.crop-tool__section:last-child{margin-bottom:0}.crop-tool__section-title{font-size:16px;font-weight:600;color:#fff;margin:0 0 8px}.crop-tool__section-subtitle{font-size:13px;font-weight:600;color:#aaa;margin:0 0 8px;text-transform:uppercase;letter-spacing:.5px}.crop-tool__dimensions{font-size:13px;color:#888;margin:4px 0 0}.crop-tool__preset-buttons{display:flex;flex-wrap:wrap;gap:6px}.crop-tool__preset-button{padding:6px 12px;background-color:#2a2a2a;color:#fff;border:1px solid #444;border-radius:4px;font-size:12px;cursor:pointer;transition:all .2s}.crop-tool__preset-button:hover{background-color:#3a3a3a;border-color:#666}.crop-tool__preset-button--active{background-color:#06c;border-color:#06c}.crop-tool__checkbox{display:flex;align-items:center;gap:8px;color:#fff;font-size:14px;cursor:pointer;user-select:none}.crop-tool__checkbox input[type=checkbox]{width:16px;height:16px;cursor:pointer}.crop-tool__actions{display:flex;gap:8px;margin-top:16px;padding-top:16px;border-top:1px solid #444}.crop-tool__button{flex:1;padding:8px 16px;border:none;border-radius:4px;font-size:14px;font-weight:500;cursor:pointer;transition:all .2s}.crop-tool__button--primary{background-color:#06c;color:#fff}.crop-tool__button--primary:hover{background-color:#0052a3}.crop-tool__button--secondary{background-color:#2a2a2a;color:#fff;border:1px solid #444}.crop-tool__button--secondary:hover{background-color:#3a3a3a;border-color:#666}._notification_1l8fs_9{position:fixed;top:20px;right:20px;max-width:400px;padding:16px 20px;border-radius:8px;box-shadow:0 4px 12px #00000026;background:#fff;border-left:4px solid;z-index:10000;animation:_slideIn_1l8fs_1 .3s ease-out}@keyframes _slideIn_1l8fs_1{0%{transform:translate(100%);opacity:0}to{transform:translate(0);opacity:1}}._notification_1l8fs_9._fatal_1l8fs_59{border-left-color:#d32f2f;background:#ffebee}._notification_1l8fs_9._error_1l8fs_69{border-left-color:#f57c00;background:#fff3e0}._notification_1l8fs_9._warning_1l8fs_79{border-left-color:#fbc02d;background:#fffde7}._notification_1l8fs_9._info_1l8fs_89{border-left-color:#1976d2;background:#e3f2fd}._content_1l8fs_99{display:flex;flex-direction:column;gap:8px}._header_1l8fs_111{display:flex;align-items:center;gap:8px;font-weight:600;font-size:14px}._icon_1l8fs_127{font-size:18px;line-height:1}._title_1l8fs_137{color:#333}._message_1l8fs_145{font-size:14px;line-height:1.5;color:#555;margin-left:26px}._fallbackInfo_1l8fs_159{display:flex;align-items:center;gap:8px;margin-left:26px;padding:8px 12px;background:#0000000d;border-radius:4px;font-size:13px;color:#666}._fallbackIcon_1l8fs_183{font-size:16px;line-height:1}._recovery_1l8fs_193{margin-left:26px;font-size:12px;color:#777;font-style:italic}._dismissButton_1l8fs_207{position:absolute;top:12px;right:12px;background:none;border:none;font-size:18px;line-height:1;color:#999;cursor:pointer;padding:4px;transition:color .2s}._dismissButton_1l8fs_207:hover{color:#333}._dismissButton_1l8fs_207:focus{outline:2px solid #1976d2;outline-offset:2px;border-radius:2px}@media(max-width:768px){._notification_1l8fs_9{top:10px;right:10px;left:10px;max-width:none}}._container_f75h6_9{position:relative;width:100%;height:100%;background-color:var(--color-canvas-surround);display:flex;align-items:center;justify-content:center;overflow:hidden;transition:background-color .2s ease}._dragOver_f75h6_33{background-color:#4a9eff1a;outline:2px dashed rgba(74,158,255,.5);outline-offset:-10px}._canvas_f75h6_45{display:block;max-width:95%;max-height:95%;width:auto;height:auto;transform-origin:center center;transition:transform .1s ease-out;box-shadow:0 4px 20px #00000080;image-rendering:auto;image-rendering:high-quality}._controls_f75h6_77{position:absolute;bottom:20px;right:20px;display:flex;gap:8px;align-items:center;background-color:#000000b3;padding:8px 12px;border-radius:6px;backdrop-filter:blur(4px)}._controlButton_f75h6_103{background-color:#ffffff1a;border:1px solid rgba(255,255,255,.2);color:#fff;padding:6px 12px;border-radius:4px;cursor:pointer;font-size:12px;font-weight:500;transition:background-color var(--transition-fast),border-color var(--transition-fast),transform var(--transition-fast)}._controlButton_f75h6_103:hover{background-color:#fff3;border-color:#ffffff4d}._controlButton_f75h6_103:focus-visible{outline:2px solid var(--color-accent-focus);outline-offset:2px}._controlButton_f75h6_103:active{transform:scale(.95)}._zoomDisplay_f75h6_159{color:#fff;font-size:12px;font-weight:500;min-width:45px;text-align:center}._placeholder_f75h6_175{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);text-align:center;color:#fff9;pointer-events:none}._placeholder_f75h6_175 p{margin:0;font-size:18px;font-weight:500}._placeholderHint_f75h6_207{margin-top:8px!important;font-size:14px!important;font-weight:400!important;opacity:.7}._comparisonControls_f75h6_221{position:absolute;top:20px;right:20px;display:flex;gap:8px;background-color:#000000b3;padding:8px 12px;border-radius:6px;backdrop-filter:blur(4px)}._controlButton_f75h6_103._active_f75h6_245{background-color:#3b82f680;border-color:#3b82f6b3;box-shadow:0 0 20px #3b82f6cc,inset 0 2px 8px #0000004d}._controlButtonSmall_f75h6_259{background-color:#ffffff1a;border:1px solid rgba(255,255,255,.2);color:#fff;padding:4px 8px;border-radius:4px;cursor:pointer;font-size:11px;font-weight:500;transition:background-color var(--transition-fast),border-color var(--transition-fast),transform var(--transition-fast)}._controlButtonSmall_f75h6_259:hover{border-color:#fff6}._controlButtonSmall_f75h6_259:focus-visible{outline:2px solid var(--color-accent-focus);outline-offset:2px}._controlButtonSmall_f75h6_259:active{transform:scale(.95)}._controlButtonSmall_f75h6_259._active_f75h6_245{background-color:#3b82f680;border-color:#3b82f6b3;box-shadow:0 0 20px #3b82f6cc,inset 0 2px 8px #0000004d}._splitDivider_f75h6_325{position:absolute;top:0;bottom:0;width:2px;background-color:#fffc;pointer-events:none;z-index:10}._splitHandle_f75h6_345{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:40px;height:40px;background-color:#ffffffe6;border-radius:50%;box-shadow:0 2px 8px #0000004d;display:flex;align-items:center;justify-content:center}._splitHandle_f75h6_345:before{content:"⟷";font-size:20px;color:#000}._histogramContainer_f75h6_387{position:absolute;bottom:20px;left:15px;width:220px;z-index:10;animation:_fadeIn_f75h6_1 .3s ease}@keyframes _fadeIn_f75h6_1{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.tools-panel{display:flex;flex-direction:row-reverse;height:100%;background-color:var(--color-bg-secondary);position:relative;z-index:1001}.tools-panel__icons{width:48px;background-color:var(--color-bg-primary);border-left:1px solid var(--color-border);display:flex;flex-direction:column;align-items:center;padding:var(--spacing-md) 0;gap:var(--spacing-sm);order:2}.tools-panel__icon-button{width:36px;height:36px;padding:0;background-color:transparent;border:none;border-radius:var(--border-radius-sm);color:var(--color-text-secondary);cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all var(--transition-fast);position:relative}.tools-panel__icon-button:hover:not(:disabled){background-color:var(--color-hover);color:var(--color-text-primary)}.tools-panel__icon-button:hover:not(:disabled):after{content:attr(title);position:absolute;right:100%;margin-right:8px;padding:6px 10px;background-color:#000000e6;color:var(--color-text-primary);font-size:12px;white-space:nowrap;border-radius:var(--border-radius-sm);border:1px solid var(--color-border);pointer-events:none;z-index:1000;box-shadow:0 2px 8px #0000004d}.tools-panel__icon-button:disabled{opacity:.3;cursor:not-allowed}.tools-panel__icon-button--active{background-color:var(--color-accent-primary);color:#fff}.tools-panel__icon-button--active:hover:not(:disabled){background-color:var(--color-accent-hover)}.tools-panel__content{width:300px;background-color:var(--color-bg-secondary);border-right:1px solid var(--color-border);display:flex;flex-direction:column;overflow:hidden;order:1;position:relative;z-index:1001}.tools-panel__content--wide{width:320px;z-index:1001}.tools-panel__header{display:flex;align-items:center;justify-content:space-between;padding:var(--spacing-lg);border-bottom:1px solid var(--color-border)}.tools-panel__title{margin:0;font-size:13px;font-weight:600;color:var(--color-text-primary);text-transform:uppercase;letter-spacing:.5px}.tools-panel__close{width:24px;height:24px;padding:0;background:transparent;border:none;color:var(--color-text-secondary);font-size:24px;line-height:1;cursor:pointer;transition:color var(--transition-fast)}.tools-panel__close:hover{color:var(--color-text-primary)}.tools-panel__body{flex:1;overflow-y:auto;overflow-x:hidden;padding:var(--spacing-lg)}.tools-panel__body::-webkit-scrollbar{width:6px}.tools-panel__body::-webkit-scrollbar-track{background:transparent}.tools-panel__body::-webkit-scrollbar-thumb{background:var(--color-scrollbar);border-radius:3px}.tools-panel__body::-webkit-scrollbar-thumb:hover{background:var(--color-scrollbar-hover)}.lens-blur-tool{padding:var(--spacing-md)}.lens-blur-tool__description{margin:0 0 var(--spacing-lg) 0;font-size:13px;color:var(--color-text-secondary);line-height:1.5}.lens-blur-tool__button{width:100%;padding:var(--spacing-md);background-color:var(--color-bg-tertiary);border:1px solid var(--color-border);color:var(--color-text-primary);font-size:13px;font-weight:500;border-radius:var(--border-radius-sm);cursor:not-allowed;opacity:.6}.lens-blur-tool__note{margin:var(--spacing-lg) 0 0 0;font-size:11px;color:var(--color-text-tertiary);font-style:italic;line-height:1.4}.photo-library{display:flex;flex-direction:column;background-color:transparent;margin-bottom:var(--spacing-lg)}.photo-library__header{display:flex;align-items:center;justify-content:space-between;padding:var(--spacing-sm) 0 var(--spacing-sm);border-bottom:1px solid var(--color-border);margin-bottom:var(--spacing-md)}.photo-library__title{margin:0;font-size:11px;font-weight:600;color:var(--color-text-tertiary);text-transform:uppercase;letter-spacing:.8px}.photo-library__import-btn{display:flex;align-items:center;gap:4px;padding:4px 8px;font-size:11px;font-weight:500;color:var(--color-text-secondary);background-color:var(--color-bg-tertiary);border:1px solid var(--color-border);border-radius:var(--border-radius-sm);cursor:pointer;transition:all var(--transition-fast)}.photo-library__import-btn:hover:not(:disabled){background-color:var(--color-hover);border-color:var(--color-accent-primary);color:var(--color-text-primary)}.photo-library__import-btn:active:not(:disabled){transform:translateY(1px)}.photo-library__import-btn:disabled{opacity:.5;cursor:not-allowed}.photo-library__import-btn svg{width:14px;height:14px}.photo-library__empty{padding:var(--spacing-xl) var(--spacing-md);text-align:center;color:var(--color-text-tertiary);font-size:13px}.photo-library__empty p{margin:0}.photo-library__grid{display:grid;grid-template-columns:repeat(2,1fr);gap:var(--spacing-sm);overflow-y:auto;max-height:400px}.photo-library__item{position:relative;cursor:pointer;border-radius:var(--border-radius-sm);overflow:hidden;background-color:var(--color-bg-tertiary);transition:all var(--transition-fast);border:2px solid transparent}.photo-library__item:hover{border-color:var(--color-border-hover)}.photo-library__item:focus-visible{outline:none;border-color:var(--color-accent-primary);box-shadow:0 0 0 2px #3b82f64d}.photo-library__item--active{border-color:var(--color-accent-primary);box-shadow:0 0 0 2px #3b82f633}.photo-library__thumbnail-wrapper{position:relative;width:100%;padding-bottom:100%;overflow:hidden;background-color:var(--bg-primary)}.photo-library__thumbnail{position:absolute;top:0;left:0;width:100%;height:100%;object-fit:cover;transition:opacity .2s ease}.photo-library__item:hover .photo-library__thumbnail{opacity:.9}.photo-library__active-indicator{position:absolute;top:8px;left:8px;width:24px;height:24px;background-color:var(--accent-color);border-radius:50%;display:flex;align-items:center;justify-content:center;color:#fff;box-shadow:0 2px 4px #0000004d}.photo-library__remove-btn{position:absolute;top:8px;right:8px;width:28px;height:28px;background-color:#000000b3;border:none;border-radius:50%;color:#fff;cursor:pointer;display:flex;align-items:center;justify-content:center;opacity:0;transition:all .2s ease;padding:0}.photo-library__item:hover .photo-library__remove-btn,.photo-library__remove-btn:focus{opacity:1}.photo-library__remove-btn:hover{background-color:var(--error-color);transform:scale(1.1)}.photo-library__remove-btn:focus{outline:none;box-shadow:0 0 0 2px #ef444480}.photo-library__info{padding:8px;background-color:var(--bg-primary);border-top:1px solid var(--border-color)}.photo-library__dimensions{font-size:11px;color:var(--text-secondary);display:block;text-align:center}.photo-library__grid::-webkit-scrollbar{width:8px}.photo-library__grid::-webkit-scrollbar-track{background:var(--bg-primary)}.photo-library__grid::-webkit-scrollbar-thumb{background:var(--border-color);border-radius:4px}.photo-library__grid::-webkit-scrollbar-thumb:hover{background:var(--text-tertiary)}@media(max-width:768px){.photo-library__grid{grid-template-columns:repeat(auto-fill,minmax(100px,1fr));gap:8px;padding:12px}.photo-library__header{padding:10px 12px}}.export-dialog-overlay{position:fixed;inset:0;background-color:#000000bf;display:flex;align-items:center;justify-content:center;z-index:10000;animation:fadeIn .2s ease}.export-dialog{background-color:var(--color-bg-secondary);border-radius:var(--border-radius-lg);box-shadow:0 20px 60px #00000080;width:90%;max-width:500px;max-height:90vh;overflow:auto;animation:slideIn .3s ease}@keyframes slideIn{0%{transform:scale(.95) translateY(-20px);opacity:0}to{transform:scale(1) translateY(0);opacity:1}}.export-dialog__header{display:flex;align-items:center;justify-content:space-between;padding:var(--spacing-lg);border-bottom:1px solid var(--color-border)}.export-dialog__title{margin:0;font-size:18px;font-weight:600;color:var(--color-text-primary)}.export-dialog__close{background:none;border:none;color:var(--color-text-secondary);font-size:24px;cursor:pointer;padding:4px;line-height:1;transition:color var(--transition-fast)}.export-dialog__close:hover{color:var(--color-text-primary)}.export-dialog__content{padding:var(--spacing-lg)}.export-dialog__info{padding:var(--spacing-md);background-color:var(--color-bg-tertiary);border-radius:var(--border-radius-sm);margin-bottom:var(--spacing-lg)}.export-dialog__info p{margin:var(--spacing-xs) 0;font-size:13px;color:var(--color-text-secondary)}.export-dialog__info strong{color:var(--color-text-primary);font-weight:500}.export-dialog__field{margin-bottom:var(--spacing-lg)}.export-dialog__label{display:block;margin-bottom:var(--spacing-sm);font-size:13px;font-weight:500;color:var(--color-text-primary)}.export-dialog__presets{display:grid;grid-template-columns:repeat(4,1fr);gap:var(--spacing-sm)}.export-dialog__preset{padding:var(--spacing-sm) var(--spacing-md);background-color:var(--color-bg-tertiary);border:1px solid var(--color-border);border-radius:var(--border-radius-sm);color:var(--color-text-secondary);font-size:13px;cursor:pointer;transition:all var(--transition-fast)}.export-dialog__preset:hover{background-color:var(--color-hover);border-color:var(--color-accent-primary);color:var(--color-text-primary)}.export-dialog__preset--active{background-color:var(--color-accent-primary);border-color:var(--color-accent-primary);color:#fff}.export-dialog__select{width:100%;padding:var(--spacing-sm) var(--spacing-md);background-color:var(--color-bg-tertiary);border:1px solid var(--color-border);border-radius:var(--border-radius-sm);color:var(--color-text-primary);font-size:13px;cursor:pointer;transition:all var(--transition-fast)}.export-dialog__select:hover{border-color:var(--color-accent-primary)}.export-dialog__select:focus{outline:none;border-color:var(--color-accent-primary);box-shadow:0 0 0 2px #3b82f633}.export-dialog__slider{width:100%;height:4px;-webkit-appearance:none;appearance:none;background:var(--color-bg-tertiary);border-radius:2px;outline:none}.export-dialog__slider::-webkit-slider-thumb{-webkit-appearance:none;appearance:none;width:16px;height:16px;background:var(--color-accent-primary);border-radius:50%;cursor:pointer;transition:all var(--transition-fast)}.export-dialog__slider::-webkit-slider-thumb:hover{transform:scale(1.2)}.export-dialog__slider::-moz-range-thumb{width:16px;height:16px;background:var(--color-accent-primary);border:none;border-radius:50%;cursor:pointer;transition:all var(--transition-fast)}.export-dialog__slider::-moz-range-thumb:hover{transform:scale(1.2)}.export-dialog__slider-labels{display:flex;justify-content:space-between;margin-top:var(--spacing-xs);font-size:11px;color:var(--color-text-tertiary)}.export-dialog__input{width:calc(100% - 60px);padding:var(--spacing-sm) var(--spacing-md);background-color:var(--color-bg-tertiary);border:1px solid var(--color-border);border-radius:var(--border-radius-sm);color:var(--color-text-primary);font-size:13px;transition:all var(--transition-fast)}.export-dialog__input:hover{border-color:var(--color-accent-primary)}.export-dialog__input:focus{outline:none;border-color:var(--color-accent-primary);box-shadow:0 0 0 2px #3b82f633}.export-dialog__filename-ext{margin-left:var(--spacing-xs);font-size:13px;color:var(--color-text-tertiary)}.export-dialog__footer{display:flex;align-items:center;justify-content:space-between;padding:var(--spacing-lg);border-top:1px solid var(--color-border)}.export-dialog__footer-right{display:flex;gap:var(--spacing-sm)}.export-dialog__button{padding:var(--spacing-sm) var(--spacing-lg);border:none;border-radius:var(--border-radius-sm);font-size:13px;font-weight:500;cursor:pointer;transition:all var(--transition-fast)}.export-dialog__button:disabled{opacity:.5;cursor:not-allowed}.export-dialog__button--primary{background-color:var(--color-accent-primary);color:#fff}.export-dialog__button--primary:hover:not(:disabled){background-color:var(--color-accent-hover);transform:translateY(-1px);box-shadow:0 2px 8px #3b82f64d}.export-dialog__button--secondary{background-color:var(--color-bg-tertiary);color:var(--color-text-primary);border:1px solid var(--color-border)}.export-dialog__button--secondary:hover:not(:disabled){background-color:var(--color-hover);border-color:var(--color-accent-primary)}.export-dialog__button--tertiary{background-color:transparent;color:var(--color-text-secondary)}.export-dialog__button--tertiary:hover:not(:disabled){background-color:var(--color-bg-tertiary);color:var(--color-text-primary)}@media(max-width:500px){.export-dialog{width:95%}.export-dialog__presets{grid-template-columns:repeat(2,1fr)}.export-dialog__footer{flex-direction:column;gap:var(--spacing-sm)}.export-dialog__button--secondary,.export-dialog__footer-right{width:100%}.export-dialog__footer-right .export-dialog__button{flex:1}}.history-indicator{display:flex;align-items:center;gap:var(--spacing-sm);padding:var(--spacing-sm) var(--spacing-md);background:var(--color-bg-tertiary);border:1px solid var(--color-border);border-radius:var(--size-border-radius-md);color:var(--color-text-primary)}.history-button{display:flex;align-items:center;justify-content:center;width:32px;height:32px;padding:0;background:transparent;border:1px solid var(--color-border);border-radius:var(--size-border-radius-sm);color:var(--color-text-primary);cursor:pointer;transition:background-color var(--transition-fast),border-color var(--transition-fast),transform var(--transition-fast)}.history-button:hover:not(:disabled){background:var(--color-hover);border-color:var(--color-accent-primary)}.history-button:focus-visible{outline:2px solid var(--color-accent-focus);outline-offset:2px}.history-button:active:not(:disabled){transform:scale(.95)}.history-button:disabled{opacity:.3;cursor:not-allowed;color:var(--color-disabled-text)}.history-button.before-button{width:auto;padding:0 12px;font-size:11px;font-weight:500;text-transform:uppercase;letter-spacing:.5px}.history-button.before-button.active{background:var(--color-accent-primary);border-color:var(--color-accent-primary);color:#fff}.history-position{font-size:12px;font-family:monospace;color:var(--color-text-secondary);min-width:60px;text-align:center}.export-button{display:flex;align-items:center;gap:6px;padding:6px 12px;background:var(--color-bg-tertiary);border:1px solid var(--color-border);border-radius:var(--size-border-radius-sm);color:var(--color-text-primary);font-size:12px;font-weight:500;cursor:pointer;transition:all var(--transition-fast);box-shadow:0 0 #3b82f600}.export-button:hover{background:var(--color-hover);border-color:#3b82f680;color:#3b82f6;box-shadow:0 0 12px #3b82f64d}.export-button:focus-visible{outline:2px solid var(--color-accent-focus);outline-offset:2px}.export-button:active{transform:scale(.98)}.export-button svg{flex-shrink:0}.file-uploader{width:100%;max-width:600px;margin:0 auto}.file-uploader__input{display:none}.file-uploader__dropzone{border:2px dashed var(--color-border);border-radius:var(--size-border-radius-lg);padding:48px 24px;text-align:center;cursor:pointer;transition:border-color var(--transition-normal),background-color var(--transition-normal),transform var(--transition-fast);background-color:var(--color-bg-tertiary)}.file-uploader__dropzone:hover{border-color:var(--color-border-hover);background-color:var(--color-hover)}.file-uploader__dropzone:focus-visible{outline:2px solid var(--color-accent-focus);outline-offset:2px;border-color:var(--color-accent-focus)}.file-uploader__dropzone--dragging{border-color:var(--color-accent-primary);background-color:#4a9eff1a;transform:scale(1.02)}.file-uploader__content{display:flex;flex-direction:column;align-items:center;gap:16px}.file-uploader__icon{color:var(--color-text-secondary);transition:color var(--transition-normal)}.file-uploader__dropzone:hover .file-uploader__icon,.file-uploader__dropzone--dragging .file-uploader__icon{color:var(--color-accent-primary)}.file-uploader__text{margin:0;font-size:18px;font-weight:500;color:var(--color-text-primary)}.file-uploader__hint{margin:0;font-size:14px;color:var(--color-text-secondary)}.file-uploader__error{margin-top:var(--spacing-lg);padding:var(--spacing-md) var(--spacing-lg);background-color:var(--color-error-bg);border:1px solid var(--color-error);border-radius:var(--size-border-radius-md);color:var(--color-error);font-size:14px;text-align:center}.ad-container{display:flex;align-items:center;justify-content:center;background-color:var(--color-bg-tertiary);border:1px solid var(--color-border);border-radius:var(--size-border-radius-sm);overflow:hidden;flex-shrink:0}.ad-container--sidebar-bottom{margin:var(--spacing-lg);margin-top:auto}.ad-container--bottom-bar{margin:var(--spacing-md)}.ad-container__content{position:relative;display:flex;align-items:center;justify-content:center;background-color:var(--color-bg-secondary)}.ad-container__placeholder{display:flex;align-items:center;justify-content:center;width:100%;height:100%;background:linear-gradient(135deg,var(--color-bg-secondary) 0%,var(--color-bg-tertiary) 100%);border:1px dashed var(--color-border)}.ad-container__label{font-size:12px;color:var(--color-text-tertiary);text-transform:uppercase;letter-spacing:.5px;font-weight:500}.ad-container{pointer-events:auto;user-select:none}@media(max-width:1024px){.ad-container--sidebar-bottom{margin:var(--spacing-md)}}@media(max-width:768px){.ad-container--bottom-bar{display:none}.ad-container--sidebar-bottom{margin:var(--spacing-sm)}}.error-boundary{display:flex;align-items:center;justify-content:center;min-height:100vh;background-color:var(--color-bg-primary);padding:var(--spacing-lg)}.error-boundary__content{max-width:600px;text-align:center;background-color:var(--color-bg-secondary);border:1px solid var(--color-border);border-radius:var(--border-radius-lg);padding:var(--spacing-xl)}.error-boundary__icon{font-size:64px;margin-bottom:var(--spacing-md)}.error-boundary__title{font-size:var(--font-size-2xl);font-weight:600;color:var(--color-text-primary);margin:0 0 var(--spacing-md) 0}.error-boundary__message{font-size:var(--font-size-md);color:var(--color-text-secondary);margin:0 0 var(--spacing-lg) 0;line-height:1.6}.error-boundary__details{text-align:left;margin:var(--spacing-lg) 0;padding:var(--spacing-md);background-color:var(--color-bg-tertiary);border:1px solid var(--color-border);border-radius:var(--border-radius-md)}.error-boundary__details summary{cursor:pointer;color:var(--color-text-secondary);font-size:var(--font-size-sm);user-select:none}.error-boundary__details summary:hover{color:var(--color-text-primary)}.error-boundary__stack{margin:var(--spacing-md) 0 0 0;padding:var(--spacing-md);background-color:var(--color-bg-primary);border-radius:var(--border-radius-sm);font-family:Courier New,monospace;font-size:var(--font-size-xs);color:var(--color-error);overflow-x:auto;white-space:pre-wrap;word-break:break-word}.error-boundary__actions{display:flex;gap:var(--spacing-md);justify-content:center;margin-top:var(--spacing-lg)}.error-boundary__button{padding:var(--spacing-sm) var(--spacing-lg);font-size:var(--font-size-md);font-weight:500;border:none;border-radius:var(--border-radius-md);cursor:pointer;transition:all .2s ease}.error-boundary__button--primary{background-color:var(--color-accent);color:var(--color-text-primary)}.error-boundary__button--primary:hover{background-color:var(--color-accent-hover);transform:translateY(-1px)}.error-boundary__button--secondary{background-color:var(--color-bg-tertiary);color:var(--color-text-secondary);border:1px solid var(--color-border)}.error-boundary__button--secondary:hover{background-color:var(--color-bg-hover);color:var(--color-text-primary);transform:translateY(-1px)}.error-boundary__button:active{transform:translateY(0)}.loading-spinner{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--spacing-md)}.loading-spinner__spinner{position:relative;display:inline-block}.loading-spinner__spinner--small{width:24px;height:24px}.loading-spinner__spinner--medium{width:48px;height:48px}.loading-spinner__spinner--large{width:64px;height:64px}.loading-spinner__circle{width:100%;height:100%;border:3px solid var(--color-border);border-top-color:var(--color-accent);border-radius:50%;animation:loading-spinner-rotate .8s linear infinite}.loading-spinner__spinner--small .loading-spinner__circle{border-width:2px}.loading-spinner__spinner--large .loading-spinner__circle{border-width:4px}@keyframes loading-spinner-rotate{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.loading-spinner__message{font-size:var(--font-size-sm);color:var(--color-text-secondary);margin:0;text-align:center}.progress-bar{width:100%}.progress-bar__header{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--spacing-sm)}.progress-bar__message{font-size:var(--font-size-sm);color:var(--color-text-primary);font-weight:500}.progress-bar__time{font-size:var(--font-size-xs);color:var(--color-text-secondary)}.progress-bar__track{width:100%;height:8px;background-color:var(--color-bg-tertiary);border-radius:var(--border-radius-sm);overflow:hidden;position:relative}.progress-bar__fill{height:100%;background:linear-gradient(90deg,var(--color-accent) 0%,var(--color-accent-hover) 100%);border-radius:var(--border-radius-sm);transition:width .3s ease;position:relative}.progress-bar__fill:after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,transparent 0%,rgba(255,255,255,.2) 50%,transparent 100%);animation:progress-bar-shimmer 1.5s infinite}@keyframes progress-bar-shimmer{0%{transform:translate(-100%)}to{transform:translate(100%)}}.progress-bar__percentage{font-size:var(--font-size-xs);color:var(--color-text-secondary);text-align:right;margin-top:var(--spacing-xs)}.loading-overlay{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;background-color:#000000b3;backdrop-filter:blur(4px);z-index:1000}.loading-overlay--fullscreen{position:fixed;z-index:9999}.loading-overlay--inline{position:absolute;border-radius:var(--border-radius-md)}.loading-overlay__content{background-color:var(--color-bg-secondary);border:1px solid var(--color-border);border-radius:var(--border-radius-lg);padding:var(--spacing-xl);min-width:300px;max-width:500px;box-shadow:0 8px 32px #0006}.toast{display:flex;align-items:center;gap:var(--spacing-sm);min-width:300px;max-width:500px;padding:var(--spacing-md);background-color:var(--color-bg-secondary);border:1px solid var(--color-border);border-radius:var(--border-radius-md);box-shadow:0 4px 12px #0000004d;animation:toast-slide-in .3s ease-out;margin-bottom:var(--spacing-sm)}.toast--exiting{animation:toast-slide-out .3s ease-in forwards}@keyframes toast-slide-in{0%{transform:translate(100%);opacity:0}to{transform:translate(0);opacity:1}}@keyframes toast-slide-out{0%{transform:translate(0);opacity:1}to{transform:translate(100%);opacity:0}}.toast__icon{flex-shrink:0;width:24px;height:24px;display:flex;align-items:center;justify-content:center;border-radius:50%;font-weight:700;font-size:var(--font-size-md)}.toast--success{border-left:4px solid var(--color-success)}.toast--success .toast__icon{background-color:var(--color-success);color:var(--color-bg-primary)}.toast--error{border-left:4px solid var(--color-error)}.toast--error .toast__icon{background-color:var(--color-error);color:var(--color-bg-primary)}.toast--warning{border-left:4px solid var(--color-warning)}.toast--warning .toast__icon{background-color:var(--color-warning);color:var(--color-bg-primary)}.toast--info{border-left:4px solid var(--color-info)}.toast--info .toast__icon{background-color:var(--color-info);color:var(--color-bg-primary)}.toast__message{flex:1;font-size:var(--font-size-sm);color:var(--color-text-primary);line-height:1.4}.toast__close{flex-shrink:0;width:24px;height:24px;display:flex;align-items:center;justify-content:center;background:none;border:none;color:var(--color-text-secondary);font-size:24px;line-height:1;cursor:pointer;padding:0;transition:color .2s ease}.toast__close:hover{color:var(--color-text-primary)}.toast__close:focus{outline:2px solid var(--color-accent);outline-offset:2px;border-radius:var(--border-radius-sm)}.toast-container{position:fixed;top:var(--spacing-lg);right:var(--spacing-lg);z-index:10000;display:flex;flex-direction:column;pointer-events:none}.toast-container>*{pointer-events:auto}@media(max-width:768px){.toast-container{top:var(--spacing-md);right:var(--spacing-md);left:var(--spacing-md)}}.webgl-warning{display:flex;align-items:flex-start;gap:var(--spacing-md);padding:var(--spacing-md);background-color:var(--color-warning-bg);border:1px solid var(--color-warning);border-radius:var(--border-radius-md);margin:var(--spacing-md)}.webgl-warning--error{background-color:var(--color-error-bg);border-color:var(--color-error)}.webgl-warning__icon{flex-shrink:0;font-size:24px;line-height:1}.webgl-warning__content{flex:1}.webgl-warning__message{margin:0 0 var(--spacing-xs) 0;font-size:var(--font-size-sm);font-weight:600;color:var(--color-text-primary)}.webgl-warning__details{margin:0;font-size:var(--font-size-xs);color:var(--color-text-secondary);line-height:1.4}.webgl-warning__dismiss{flex-shrink:0;width:24px;height:24px;display:flex;align-items:center;justify-content:center;background:none;border:none;color:var(--color-text-secondary);font-size:24px;line-height:1;cursor:pointer;padding:0;transition:color .2s ease}.webgl-warning__dismiss:hover{color:var(--color-text-primary)}.webgl-warning__dismiss:focus{outline:2px solid var(--color-accent);outline-offset:2px;border-radius:var(--border-radius-sm)}.browser-warning{position:fixed;top:0;left:0;right:0;z-index:var(--z-index-modal);padding:var(--spacing-md);background-color:var(--color-warning-bg);border-bottom:2px solid var(--color-warning);animation:slideDown .3s ease-out}.browser-warning--error{background-color:var(--color-error-bg);border-bottom-color:var(--color-error)}.browser-warning__content{display:flex;align-items:center;gap:var(--spacing-md);max-width:1200px;margin:0 auto}.browser-warning__icon{font-size:24px;flex-shrink:0}.browser-warning__message{flex:1;color:var(--color-text-primary);font-size:14px;line-height:1.5}.browser-warning__dismiss{background:none;border:none;color:var(--color-text-primary);font-size:28px;line-height:1;cursor:pointer;padding:0;width:32px;height:32px;display:flex;align-items:center;justify-content:center;border-radius:var(--border-radius);transition:background-color .2s ease;flex-shrink:0}.browser-warning__dismiss:hover{background-color:#ffffff1a}.browser-warning__dismiss:focus{outline:2px solid var(--color-accent);outline-offset:2px}@keyframes slideDown{0%{transform:translateY(-100%);opacity:0}to{transform:translateY(0);opacity:1}}@media(max-width:768px){.browser-warning{padding:var(--spacing-sm)}.browser-warning__content{gap:var(--spacing-sm)}.browser-warning__message{font-size:13px}.browser-warning__icon{font-size:20px}}.shortcut-panel-overlay{position:fixed;inset:0;background-color:#000000bf;display:flex;align-items:center;justify-content:center;z-index:10000;animation:fadeIn .2s ease-out}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.shortcut-panel{background-color:var(--color-bg-secondary, #1e1e1e);border:1px solid var(--color-border, #3a3a3a);border-radius:8px;max-width:600px;width:90%;max-height:80vh;display:flex;flex-direction:column;box-shadow:0 8px 32px #00000080;animation:slideIn .2s ease-out}@keyframes slideIn{0%{transform:translateY(-20px);opacity:0}to{transform:translateY(0);opacity:1}}.shortcut-panel__header{display:flex;align-items:center;justify-content:space-between;padding:1.5rem;border-bottom:1px solid var(--color-border, #3a3a3a)}.shortcut-panel__title{margin:0;font-size:1.25rem;font-weight:600;color:var(--color-text-primary, #ffffff)}.shortcut-panel__close{background:none;border:none;color:var(--color-text-secondary, #b0b0b0);font-size:2rem;line-height:1;cursor:pointer;padding:0;width:32px;height:32px;display:flex;align-items:center;justify-content:center;border-radius:4px;transition:background-color .2s,color .2s}.shortcut-panel__close:hover{background-color:var(--color-bg-hover, #2a2a2a);color:var(--color-text-primary, #ffffff)}.shortcut-panel__close:focus{outline:2px solid var(--color-accent, #4a9eff);outline-offset:2px}.shortcut-panel__content{flex:1;overflow-y:auto;padding:1.5rem}.shortcut-panel__category{margin-bottom:2rem}.shortcut-panel__category:last-child{margin-bottom:0}.shortcut-panel__category-title{margin:0 0 1rem;font-size:.875rem;font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:var(--color-text-secondary, #b0b0b0)}.shortcut-panel__shortcuts{display:flex;flex-direction:column;gap:.75rem}.shortcut-panel__item{display:flex;align-items:center;justify-content:space-between;gap:1rem}.shortcut-panel__description{color:var(--color-text-primary, #ffffff);font-size:.9375rem}.shortcut-panel__keys{background-color:var(--color-bg-tertiary, #2a2a2a);border:1px solid var(--color-border, #3a3a3a);border-radius:4px;padding:.25rem .5rem;font-family:SF Mono,Monaco,Inconsolata,Fira Code,Droid Sans Mono,Source Code Pro,monospace;font-size:.875rem;color:var(--color-text-primary, #ffffff);white-space:nowrap;box-shadow:0 1px 2px #0003}.shortcut-panel__footer{padding:1rem 1.5rem;border-top:1px solid var(--color-border, #3a3a3a);background-color:var(--color-bg-tertiary, #1a1a1a)}.shortcut-panel__hint{margin:0;font-size:.875rem;color:var(--color-text-secondary, #b0b0b0);text-align:center}.shortcut-panel__hint kbd{background-color:var(--color-bg-secondary, #2a2a2a);border:1px solid var(--color-border, #3a3a3a);border-radius:3px;padding:.125rem .375rem;font-family:inherit;font-size:.875rem}.shortcut-panel__content::-webkit-scrollbar{width:8px}.shortcut-panel__content::-webkit-scrollbar-track{background:var(--color-bg-secondary, #1e1e1e)}.shortcut-panel__content::-webkit-scrollbar-thumb{background:var(--color-border, #3a3a3a);border-radius:4px}.shortcut-panel__content::-webkit-scrollbar-thumb:hover{background:var(--color-text-secondary, #4a4a4a)}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border-width:0}.skip-to-content{position:absolute;top:-40px;left:0;background:var(--color-accent);color:var(--color-text-primary);padding:var(--spacing-sm) var(--spacing-md);text-decoration:none;z-index:var(--z-index-modal);border-radius:0 0 var(--border-radius) 0;font-weight:600;transition:top .2s ease}.skip-to-content:focus{top:0}#root{width:100vw;height:100vh;overflow:hidden}.app{display:flex;flex-direction:column;width:100%;height:100%;background-color:var(--color-bg-primary);color:var(--color-text-primary);overflow:hidden}.app-header{height:var(--size-header-height);background-color:var(--color-bg-secondary);border-bottom:1px solid var(--color-border);flex-shrink:0;z-index:var(--z-index-base)}.app-header__content{display:flex;align-items:center;justify-content:space-between;height:100%;padding:0 var(--spacing-lg)}.app-brand{display:flex;align-items:center;gap:8px}.app-logo{width:28px;height:28px;object-fit:contain;border-radius:6px}.app-title{margin:0;font-size:18px;font-weight:500;color:var(--color-text-primary);letter-spacing:.5px;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,system-ui,sans-serif}.app-header__controls{display:flex;align-items:center;gap:var(--spacing-lg)}.app-main{display:grid;grid-template-columns:var(--size-sidebar-width) 1fr auto;grid-template-rows:1fr;flex:1;overflow:hidden;min-height:0}.app-sidebar{background-color:var(--color-bg-secondary);border-right:1px solid var(--color-border);overflow-y:auto;overflow-x:hidden;display:flex;flex-direction:column;gap:var(--spacing-lg);padding:var(--spacing-lg)}.app-sidebar::-webkit-scrollbar{width:6px}.app-sidebar::-webkit-scrollbar-track{background:transparent}.app-sidebar::-webkit-scrollbar-thumb{background:var(--color-scrollbar);border-radius:3px}.app-sidebar::-webkit-scrollbar-thumb:hover{background:var(--color-scrollbar-hover)}.app-canvas-area{background-color:var(--color-canvas-surround);display:flex;align-items:center;justify-content:center;overflow:hidden;position:relative}.app-editing-panel{background-color:var(--color-bg-secondary);border-left:1px solid var(--color-border);overflow:hidden}@media(max-width:1280px){.app-main{grid-template-columns:240px 1fr auto}.app-title{font-size:20px}}@media(max-width:1024px){.app-main{grid-template-columns:200px 1fr auto}.app-header__content{padding:0 var(--spacing-md)}.app-title{font-size:18px}.app-sidebar{padding:var(--spacing-sm)}.app-tools-panel{display:none}}@media(max-width:768px){.app-main{grid-template-columns:1fr;grid-template-rows:auto 1fr auto}.app-sidebar{border-right:none;border-bottom:1px solid var(--color-border);max-height:200px;overflow-y:auto}.app-editing-panel{border-left:none;border-top:1px solid var(--color-border);max-height:300px;overflow-y:auto}.app-canvas-area{order:2}.app-bottom-bar{display:none}.app-header__content{padding:0 var(--spacing-sm)}}@media(max-width:480px){.app-title{font-size:16px}.app-sidebar{max-height:150px}.app-editing-panel{max-height:250px}button,input[type=range],select{min-height:44px;min-width:44px}.app-header{height:48px}}@media(hover:none)and (pointer:coarse){button,.slider-control,.preset-item{min-height:44px;padding:var(--spacing-sm) var(--spacing-md)}button:hover,.preset-item:hover{transform:none}button:active,.preset-item:active{transform:scale(.98);opacity:.9}}@media(-webkit-min-device-pixel-ratio:2),(min-resolution:192dpi){.app{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}}@media(max-width:768px)and (orientation:landscape){.app-sidebar{max-height:120px}.app-editing-panel{max-height:180px}}@media print{.app-sidebar,.app-editing-panel,.app-header,.app-bottom-bar{display:none}.app-main{grid-template-columns:1fr}.app-canvas-area{background-color:#fff}}.app-bottom-bar{background-color:var(--color-bg-secondary);border-top:1px solid var(--color-border);display:flex;align-items:center;justify-content:center;flex-shrink:0;min-height:110px}.app-tools-panel{background-color:var(--color-bg-secondary);overflow:hidden;display:flex}button:not(:disabled){transition:background-color .15s ease,transform .1s ease,box-shadow .15s ease,border-color .15s ease}button:not(:disabled):hover{transform:translateY(-1px);box-shadow:0 2px 8px #0003}button:not(:disabled):active{transform:translateY(0);box-shadow:0 1px 3px #0003}*:focus-visible{outline:2px solid var(--color-accent-primary, #4a9eff);outline-offset:2px;border-radius:2px}input[type=checkbox],input[type=radio],select{transition:border-color .15s ease,background-color .15s ease}button.loading{position:relative;color:transparent;pointer-events:none}button.loading:after{content:"";position:absolute;width:16px;height:16px;top:50%;left:50%;margin-left:-8px;margin-top:-8px;border:2px solid rgba(255,255,255,.3);border-radius:50%;border-top-color:#fff;animation:spin .6s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}@keyframes pulse{0%,to{opacity:1}50%{opacity:.7}}.pulse{animation:pulse 2s ease-in-out infinite}.fade-in{animation:fadeIn .3s ease-out}@keyframes fadeIn{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.slide-in-right{animation:slideInRight .3s ease-out}@keyframes slideInRight{0%{opacity:0;transform:translate(20px)}to{opacity:1;transform:translate(0)}}.slide-in-left{animation:slideInLeft .3s ease-out}@keyframes slideInLeft{0%{opacity:0;transform:translate(-20px)}to{opacity:1;transform:translate(0)}}.scale-in{animation:scaleIn .2s ease-out}@keyframes scaleIn{0%{opacity:0;transform:scale(.95)}to{opacity:1;transform:scale(1)}}.ripple{position:relative;overflow:hidden}.ripple:after{content:"";position:absolute;top:50%;left:50%;width:0;height:0;border-radius:50%;background:#ffffff80;transform:translate(-50%,-50%);transition:width .6s,height .6s}.ripple:active:after{width:200px;height:200px}.skeleton{background:linear-gradient(90deg,#ffffff0d 25%,#ffffff1a,#ffffff0d 75%);background-size:200% 100%;animation:skeleton-loading 1.5s ease-in-out infinite}@keyframes skeleton-loading{0%{background-position:200% 0}to{background-position:-200% 0}}*:disabled{cursor:not-allowed;opacity:.5}.smooth-color{transition:color .2s ease,background-color .2s ease,border-color .2s ease}.hover-lift{transition:transform .2s ease,box-shadow .2s ease}.hover-lift:hover{transform:translateY(-2px);box-shadow:0 4px 12px #00000026}.success-flash{animation:successFlash .6s ease-out}@keyframes successFlash{0%,to{background-color:transparent}50%{background-color:#4caf5033}}.error-shake{animation:errorShake .4s ease-out}@keyframes errorShake{0%,to{transform:translate(0)}25%{transform:translate(-8px)}75%{transform:translate(8px)}}
