:root{--ui-bg:#08080c;--ui-surface:#ffffff0a;--ui-surface-raised:#ffffff12;--ui-surface-solid:#111116;--ui-border:#ffffff14;--ui-border-subtle:#ffffff0d;--ui-border-strong:#ffffff24;--ui-accent:#5b8db8;--ui-accent-hover:#4a7aa6;--ui-accent-glow:#5b8db840;--ui-accent-subtle:#5b8db814;--ui-accent-muted:#5b8db826;--ui-danger:#f06068;--ui-danger-glow:#f0606833;--ui-success:#34d399;--ui-text:#e6e9ee;--ui-text-muted:#8790a0;--ui-text-subtle:#515c6a;--ui-radius-sm:6px;--ui-radius:10px;--ui-radius-lg:14px;--ui-font-sans:"Inter", system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--ui-font-mono:"JetBrains Mono", "Fira Code", "Cascadia Code", monospace;--ui-glass-blur:16px;--ui-glass-blur-heavy:24px;--ui-shadow:0 1px 3px #0006, 0 1px 2px #00000080;--ui-shadow-lg:0 8px 32px #00000080, 0 0 1px #ffffff0d;--ui-shadow-float:0 12px 40px #0009, 0 0 0 1px #ffffff0f;--ui-glass:#121218d1;--ui-glass-heavy:#121218e0;--ui-glass-bar:#08080cbf;--ui-backdrop:#00000080;--ui-ease:cubic-bezier(.4, 0, .2, 1);--ui-ease-spring:cubic-bezier(.34, 1.56, .64, 1)}[data-theme=light]{--ui-bg:#f5f5f7;--ui-surface:#00000008;--ui-surface-raised:#0000000f;--ui-surface-solid:#eaeaef;--ui-border:#0000001a;--ui-border-subtle:#0000000f;--ui-border-strong:#00000029;--ui-accent:#3d7ba5;--ui-accent-hover:#2f6b94;--ui-accent-glow:#3d7ba533;--ui-accent-subtle:#3d7ba514;--ui-accent-muted:#3d7ba51f;--ui-danger:#e84057;--ui-danger-glow:#e8405726;--ui-success:#22b573;--ui-text:#1a1e26;--ui-text-muted:#56606e;--ui-text-subtle:#8e97a3;--ui-glass:#ffffffd1;--ui-glass-heavy:#ffffffe6;--ui-glass-bar:#fffc;--ui-backdrop:#00000040;--ui-shadow:0 1px 3px #00000014, 0 1px 2px #0000000f;--ui-shadow-lg:0 8px 32px #0000001a, 0 0 1px #00000014;--ui-shadow-float:0 12px 40px #0000001f, 0 0 0 1px #0000000f}@media (prefers-color-scheme:light){:root:not([data-theme]){--ui-bg:#f5f5f7;--ui-surface:#00000008;--ui-surface-raised:#0000000f;--ui-surface-solid:#eaeaef;--ui-border:#0000001a;--ui-border-subtle:#0000000f;--ui-border-strong:#00000029;--ui-accent:#3d7ba5;--ui-accent-hover:#2f6b94;--ui-accent-glow:#3d7ba533;--ui-accent-subtle:#3d7ba514;--ui-accent-muted:#3d7ba51f;--ui-danger:#e84057;--ui-danger-glow:#e8405726;--ui-success:#22b573;--ui-text:#1a1e26;--ui-text-muted:#56606e;--ui-text-subtle:#8e97a3;--ui-glass:#ffffffd1;--ui-glass-heavy:#ffffffe6;--ui-glass-bar:#fffc;--ui-backdrop:#00000040;--ui-shadow:0 1px 3px #00000014, 0 1px 2px #0000000f;--ui-shadow-lg:0 8px 32px #0000001a, 0 0 1px #00000014;--ui-shadow-float:0 12px 40px #0000001f, 0 0 0 1px #0000000f}}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html{-webkit-text-size-adjust:100%;font-size:16px}body{background-color:var(--ui-bg);color:var(--ui-text);font-family:var(--ui-font-sans);min-height:100dvh;line-height:1.6}a{color:var(--ui-accent);text-decoration:none}a:hover{text-decoration:underline}button{cursor:pointer;font-family:inherit}input,textarea,select{font-family:inherit;font-size:inherit}img{max-width:100%;display:block}.sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.ui-btn{border-radius:var(--ui-radius);border:1px solid var(--ui-border);transition:all .2s var(--ui-ease);white-space:nowrap;-webkit-backdrop-filter:blur(var(--ui-glass-blur));backdrop-filter:blur(var(--ui-glass-blur));background:var(--ui-surface);justify-content:center;align-items:center;gap:.5rem;padding:.5rem 1.25rem;font-size:.85rem;font-weight:500;display:inline-flex}.ui-btn-primary{background:var(--ui-accent);color:#fff;box-shadow:0 0 16px var(--ui-accent-glow);border-color:#0000}.ui-btn-primary:hover{background:var(--ui-accent-hover);box-shadow:0 0 24px var(--ui-accent-glow);transform:translateY(-1px)}.ui-btn-ghost{background:var(--ui-surface);color:var(--ui-text-muted);border:1px solid var(--ui-border)}.ui-btn-ghost:hover{color:var(--ui-text);border-color:var(--ui-border-strong);background:var(--ui-surface-raised)}.ui-btn-danger{background:var(--ui-danger);color:#fff;border-color:#0000}.ui-btn-danger:hover{background:color-mix(in srgb, var(--ui-danger) 85%, #000);box-shadow:0 0 16px var(--ui-danger-glow)}.ui-btn-danger-ghost{color:var(--ui-danger);border-color:var(--ui-danger);background:0 0}.ui-btn-danger-ghost:hover{color:var(--ui-danger);border-color:var(--ui-danger);box-shadow:0 0 12px var(--ui-danger-glow);background:color-mix(in srgb, var(--ui-danger) 10%, transparent)}.ui-btn:disabled{opacity:.4;cursor:not-allowed;pointer-events:none}.ui-btn:active:not(:disabled){transition-duration:.1s;transform:scale(.97)}.ui-btn-primary:active:not(:disabled){transform:translateY(0)scale(.97)}.ui-btn-sm{padding:.25rem .6rem;font-size:.78rem}.ui-card{background:var(--ui-surface);-webkit-backdrop-filter:blur(var(--ui-glass-blur));backdrop-filter:blur(var(--ui-glass-blur));border:1px solid var(--ui-border);border-radius:var(--ui-radius-lg);padding:1.5rem}.ui-input{background:var(--ui-surface);-webkit-backdrop-filter:blur(var(--ui-glass-blur));backdrop-filter:blur(var(--ui-glass-blur));border:1px solid var(--ui-border);border-radius:var(--ui-radius);color:var(--ui-text);transition:border-color .2s var(--ui-ease), box-shadow .2s var(--ui-ease);outline:none;width:100%;padding:.5rem .75rem;font-size:.85rem}.ui-input:focus{border-color:var(--ui-accent);box-shadow:0 0 0 3px var(--ui-accent-subtle)}.ui-input::placeholder{color:var(--ui-text-subtle)}.ui-page{flex-direction:column;min-height:100dvh;display:flex}.ui-aurora{position:relative}.ui-aurora:before{content:"";pointer-events:none;z-index:0;background:radial-gradient(80% 60% at 15% 10%,#7c6cf015,#0000),radial-gradient(60% 50% at 85% 20%,#38bdf80e,#0000),radial-gradient(50% 60% at 40% 90%,#a855f712,#0000),radial-gradient(70% 40% at 75% 75%,#22d3990b,#0000),radial-gradient(40% 30%,#f472b607,#0000);animation:25s ease-in-out infinite alternate ui-aurora-drift;position:fixed;inset:-20%}@keyframes ui-aurora-drift{0%{transform:translate(0)rotate(0)}33%{transform:translate(2%,-1%)rotate(.5deg)}66%{transform:translate(-1%,2%)rotate(-.5deg)}to{transform:translate(1%,-2%)rotate(.3deg)}}.ui-aurora:after{content:"";opacity:.025;pointer-events:none;z-index:0;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 256 256' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");background-size:200px;position:fixed;inset:0}.ui-aurora>*{z-index:1;position:relative}@media (prefers-color-scheme:light){:root:not([data-theme]) .ui-aurora:before{background:radial-gradient(80% 60% at 15% 10%,#6c5ce714,#0000),radial-gradient(60% 50% at 85% 20%,#38bdf80f,#0000),radial-gradient(50% 60% at 40% 90%,#a855f712,#0000),radial-gradient(70% 40% at 75% 75%,#22d3990d,#0000),radial-gradient(40% 30%,#f472b60a,#0000)}:root:not([data-theme]) .ui-aurora:after{opacity:.015}}[data-theme=light] .ui-aurora:before{background:radial-gradient(80% 60% at 15% 10%,#6c5ce714,#0000),radial-gradient(60% 50% at 85% 20%,#38bdf80f,#0000),radial-gradient(50% 60% at 40% 90%,#a855f712,#0000),radial-gradient(70% 40% at 75% 75%,#22d3990d,#0000),radial-gradient(40% 30%,#f472b60a,#0000)}[data-theme=light] .ui-aurora:after{opacity:.015}.ui-panel{background:var(--ui-glass);-webkit-backdrop-filter:blur(var(--ui-glass-blur-heavy));backdrop-filter:blur(var(--ui-glass-blur-heavy));border:1px solid var(--ui-border);border-top-color:var(--ui-border-strong);border-radius:var(--ui-radius-lg);box-shadow:var(--ui-shadow-float);flex-direction:column;min-width:120px;display:flex}.ui-panel-titlebar{border-bottom:1px solid var(--ui-border);flex-shrink:0;justify-content:space-between;align-items:center;padding:.4rem .65rem;display:flex}.ui-panel-title{color:var(--ui-text-muted);text-transform:uppercase;letter-spacing:.06em;font-size:.7rem;font-weight:600}.ui-panel-actions{align-items:center;gap:.35rem;display:flex}.ui-panel-close{color:var(--ui-text-subtle);cursor:pointer;border-radius:var(--ui-radius-sm);background:0 0;border:none;padding:.1rem .2rem;font-size:.9rem;line-height:1;transition:color .15s,background .15s}.ui-panel-close:hover{color:var(--ui-text);background:var(--ui-surface-raised)}.ui-panel-tabs{border-bottom:1px solid var(--ui-border);flex-shrink:0;gap:2px;padding:0 .35rem;display:flex}.ui-panel-tab{color:var(--ui-text-subtle);text-transform:uppercase;letter-spacing:.05em;cursor:pointer;background:0 0;border:none;padding:.45rem .7rem;font-size:.7rem;font-weight:500;transition:color .15s;position:relative}.ui-panel-tab:after{content:"";height:2px;transition:background .2s var(--ui-ease);background:0 0;border-radius:1px;position:absolute;bottom:-1px;left:.35rem;right:.35rem}.ui-panel-tab:hover{color:var(--ui-text-muted)}.ui-panel-tab--active{color:var(--ui-accent)}.ui-panel-tab--active:after{background:var(--ui-accent)}.ui-panel-body{flex:1;min-height:0;padding:.5rem .65rem;overflow:auto}.ui-panel-body--flush{padding:0}.ui-ctx-menu{z-index:1000;background:var(--ui-glass);min-width:170px;max-width:calc(100vw - 1rem);-webkit-backdrop-filter:blur(var(--ui-glass-blur-heavy));backdrop-filter:blur(var(--ui-glass-blur-heavy));border:1px solid var(--ui-border);border-top-color:var(--ui-border-strong);border-radius:var(--ui-radius);box-shadow:var(--ui-shadow-float);animation:ui-ctx-in .12s var(--ui-ease);transform-origin:0 0;padding:4px;position:fixed}@keyframes ui-ctx-in{0%{opacity:0;transform:scaleY(.8)scaleX(.95)}to{opacity:1;transform:scaleY(1)scaleX(1)}}.ui-ctx-menu-item{width:100%;color:var(--ui-text);text-align:left;border-radius:var(--ui-radius-sm);cursor:pointer;background:0 0;border:none;padding:7px 12px;font-size:.82rem;transition:background .12s,color .12s;display:block}.ui-ctx-menu-item:hover{background:var(--ui-accent-muted);color:#fff}.ui-ctx-menu-item--danger:hover{background:var(--ui-danger-glow);color:var(--ui-danger)}.ui-ctx-menu-sep{background:var(--ui-border);height:1px;margin:4px 8px}.ui-lightbox-backdrop{z-index:200;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);cursor:pointer;animation:ui-lightbox-fade-in .2s var(--ui-ease);background:#000000d9;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}@keyframes ui-lightbox-fade-in{0%{opacity:0}to{opacity:1}}.ui-lightbox-content{cursor:default;max-width:90vw;max-height:90vh;animation:ui-lightbox-img-in .3s var(--ui-ease-spring);flex-direction:column;align-items:center;gap:1rem;display:flex}@keyframes ui-lightbox-img-in{0%{opacity:0;transform:scale(.94)}to{opacity:1;transform:scale(1)}}.ui-lightbox-img{object-fit:contain;border-radius:var(--ui-radius-lg);max-width:90vw;max-height:80vh;box-shadow:0 20px 80px #0009,0 0 1px #ffffff1a}.ui-lightbox-caption{color:var(--ui-text-muted);font-size:.85rem}.ui-lightbox-nav{background:var(--ui-glass);-webkit-backdrop-filter:blur(var(--ui-glass-blur));backdrop-filter:blur(var(--ui-glass-blur));border:1px solid var(--ui-border);color:var(--ui-text);cursor:pointer;width:44px;height:44px;transition:all .2s var(--ui-ease);border-radius:50%;justify-content:center;align-items:center;display:flex;position:fixed;top:50%;transform:translateY(-50%)}.ui-lightbox-nav:hover{background:var(--ui-glass-heavy);border-color:var(--ui-border-strong);box-shadow:0 0 20px #0006}.ui-lightbox-nav svg{width:20px;height:20px}.ui-lightbox-prev{left:1.5rem}.ui-lightbox-next{right:1.5rem}@media (width<=480px){.ui-lightbox-nav{width:36px;height:36px}.ui-lightbox-prev{left:.5rem}.ui-lightbox-next{right:.5rem}}.ui-dp-panel{z-index:30;background:var(--ui-glass);-webkit-backdrop-filter:blur(var(--ui-glass-blur-heavy));backdrop-filter:blur(var(--ui-glass-blur-heavy));border:1px solid var(--ui-border);border-top-color:var(--ui-border-strong);border-radius:var(--ui-radius);box-shadow:var(--ui-shadow-float);-webkit-user-select:none;user-select:none;flex-direction:column;min-width:120px;max-width:calc(100vw - 1rem);display:flex;position:absolute}.ui-dp-titlebar{cursor:grab;border-bottom:1px solid var(--ui-border);flex-shrink:0;justify-content:space-between;align-items:center;padding:.4rem .65rem;display:flex}.ui-dp-titlebar:active{cursor:grabbing}.ui-dp-title{color:var(--ui-text-muted);text-transform:uppercase;letter-spacing:.06em;font-size:.7rem;font-weight:600}.ui-dp-close{color:var(--ui-text-subtle);cursor:pointer;border-radius:var(--ui-radius-sm);background:0 0;border:none;padding:.1rem .2rem;font-size:.9rem;line-height:1;transition:color .15s,background .15s}.ui-dp-close:hover{color:var(--ui-text);background:var(--ui-surface-raised)}.ui-dp-body{flex:1;min-height:0}.ui-dp-resize-handle{cursor:ns-resize;border-top:1px solid var(--ui-border);background:0 0;flex-shrink:0;height:6px;transition:background .15s}.ui-dp-resize-handle:hover{background:var(--ui-accent-muted)}.ui-ev-display{cursor:pointer;color:var(--ui-text-muted);font-variant-numeric:tabular-nums;border-radius:var(--ui-radius-sm);transition:all .15s var(--ui-ease);padding:.15rem .35rem;font-size:.8rem}.ui-ev-display:hover{background:var(--ui-surface-raised);color:var(--ui-text);box-shadow:0 0 0 1px var(--ui-border)}.ui-ev-input{font:inherit;font-variant-numeric:tabular-nums;background:var(--ui-surface);-webkit-backdrop-filter:blur(var(--ui-glass-blur));backdrop-filter:blur(var(--ui-glass-blur));border:1px solid var(--ui-accent);box-shadow:0 0 0 3px var(--ui-accent-subtle);border-radius:var(--ui-radius-sm);color:var(--ui-text);outline:none;width:4.5rem;padding:.15rem .35rem;font-size:.8rem}.ui-inline-editable{cursor:text;border-radius:var(--ui-radius-sm);transition:all .15s var(--ui-ease);margin:-.1rem -.25rem;padding:.1rem .25rem}.ui-inline-editable:hover{background:var(--ui-surface-raised);box-shadow:0 0 0 1px var(--ui-border)}.ui-inline-edit-input{font:inherit;background:var(--ui-surface);-webkit-backdrop-filter:blur(var(--ui-glass-blur));backdrop-filter:blur(var(--ui-glass-blur));border:1px solid var(--ui-accent);box-shadow:0 0 0 3px var(--ui-accent-subtle);border-radius:var(--ui-radius-sm);color:var(--ui-text);outline:none;width:100%;min-width:60px;margin:-.1rem -.25rem;padding:.1rem .25rem;font-weight:600}.ui-modal-backdrop{background:var(--ui-backdrop);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);z-index:100;animation:ui-modal-bg-in .2s var(--ui-ease);justify-content:center;align-items:center;display:flex;position:fixed;inset:0}@keyframes ui-modal-bg-in{0%{opacity:0}to{opacity:1}}.ui-modal{background:var(--ui-glass-heavy);-webkit-backdrop-filter:blur(var(--ui-glass-blur-heavy));backdrop-filter:blur(var(--ui-glass-blur-heavy));border:1px solid var(--ui-border);border-top-color:var(--ui-border-strong);border-radius:var(--ui-radius-lg);width:320px;max-width:calc(100vw - 2rem);max-height:calc(100vh - 4rem);box-shadow:var(--ui-shadow-float);animation:ui-modal-in .25s var(--ui-ease-spring);flex-direction:column;display:flex}@keyframes ui-modal-in{0%{opacity:0;filter:blur(4px);transform:scale(.95)translateY(8px)}to{opacity:1;filter:blur();transform:scale(1)translateY(0)}}.ui-modal-header{border-bottom:1px solid var(--ui-border);justify-content:space-between;align-items:center;padding:1rem 1.25rem;display:flex}.ui-modal-title{color:var(--ui-text);font-size:.9rem;font-weight:600}.ui-modal-close{color:var(--ui-text-subtle);cursor:pointer;border-radius:var(--ui-radius-sm);background:0 0;border:none;padding:.2rem;font-size:1.2rem;line-height:1;transition:color .15s}.ui-modal-close:hover{color:var(--ui-text);background:var(--ui-surface-raised)}.ui-modal-body{flex-direction:column;flex:1;gap:.75rem;padding:1.25rem;display:flex;overflow-y:auto}.ui-zoom-controls{background:var(--ui-surface);-webkit-backdrop-filter:blur(var(--ui-glass-blur));backdrop-filter:blur(var(--ui-glass-blur));border:1px solid var(--ui-border);border-radius:var(--ui-radius);box-shadow:var(--ui-shadow);align-items:center;gap:.15rem;padding:.2rem .35rem;display:flex}.ui-zoom-btn{border-radius:var(--ui-radius-sm);width:28px;height:28px;color:var(--ui-text-muted);cursor:pointer;transition:all .15s var(--ui-ease);background:0 0;border:none;justify-content:center;align-items:center;font-size:.85rem;display:inline-flex}.ui-zoom-btn:hover{background:var(--ui-surface-raised);color:var(--ui-text)}.ui-zoom-btn:active{transform:scale(.92)}.ui-zoom-fit{width:auto;padding:0 .45rem;font-size:.72rem}.ui-zoom-val{color:var(--ui-text-muted);text-align:center;font-variant-numeric:tabular-nums;min-width:2.4rem;font-size:.7rem}.ui-page-header{border-bottom:1px solid var(--ui-border);background:var(--ui-glass-bar);-webkit-backdrop-filter:blur(var(--ui-glass-blur-heavy));backdrop-filter:blur(var(--ui-glass-blur-heavy));z-index:10;justify-content:space-between;align-items:center;gap:.5rem;padding:.75rem 1.5rem;display:flex;position:sticky;top:0;box-shadow:0 1px #ffffff08}.ui-page-header-left{align-items:center;gap:.5rem;min-width:0;display:flex;overflow:hidden}.ui-page-header-actions{flex-shrink:0;align-items:center;gap:.5rem;display:flex}@media (width<=480px){.ui-page-header{padding:.75rem}}.ui-breadcrumb{align-items:center;gap:.4rem;min-width:0;font-size:.85rem;display:flex;overflow:hidden}.ui-breadcrumb-segment{align-items:center;gap:.4rem;display:flex}.ui-breadcrumb-sep{color:var(--ui-text-subtle);font-size:.8rem}.ui-breadcrumb-link{color:var(--ui-text-muted);cursor:pointer;transition:color .2s var(--ui-ease);font-size:.85rem}.ui-breadcrumb-link:hover{color:var(--ui-text)}.ui-breadcrumb-current{color:var(--ui-text);white-space:nowrap;text-overflow:ellipsis;font-size:.9rem;font-weight:600;overflow:hidden}.ui-selection-count{color:var(--ui-accent);background:var(--ui-accent-subtle);border-radius:var(--ui-radius-sm);font-variant-numeric:tabular-nums;padding:.15rem .5rem;font-size:.82rem}.ui-item-grid{grid-template-columns:repeat(auto-fill, minmax(var(--ui-grid-min,160px), 1fr));gap:.75rem;list-style:none;display:grid}.ui-item-grid--drop-active{background:var(--ui-accent-subtle);border-radius:var(--ui-radius)}.ui-item-grid>*{animation:ui-grid-enter .4s var(--ui-ease) both}@keyframes ui-grid-enter{0%{opacity:0;transform:translateY(12px)scale(.97)}to{opacity:1;transform:translateY(0)scale(1)}}.ui-item-grid>:first-child{animation-delay:0s}.ui-item-grid>:nth-child(2){animation-delay:30ms}.ui-item-grid>:nth-child(3){animation-delay:60ms}.ui-item-grid>:nth-child(4){animation-delay:90ms}.ui-item-grid>:nth-child(5){animation-delay:.12s}.ui-item-grid>:nth-child(6){animation-delay:.15s}.ui-item-grid>:nth-child(7){animation-delay:.18s}.ui-item-grid>:nth-child(8){animation-delay:.21s}.ui-item-grid>:nth-child(9){animation-delay:.24s}.ui-item-grid>:nth-child(10){animation-delay:.27s}.ui-item-grid>:nth-child(n+11){animation-delay:.3s}.ui-item-card-wrap{cursor:pointer;-webkit-user-select:none;user-select:none;position:relative}.ui-item-card-wrap[draggable=true]{cursor:grab}.ui-item-card-wrap[draggable=true]:active{cursor:grabbing}.ui-item-card-wrap.dragging{opacity:.4}.ui-item-card--selected .ui-item-card{border-color:var(--ui-accent);box-shadow:0 0 0 1px var(--ui-accent), 0 0 24px var(--ui-accent-glow), inset 0 0 20px #7c6cf00f}.ui-item-card--selected .ui-item-card-thumb:after{content:"";pointer-events:none;background:linear-gradient(135deg,#7c6cf01f,#0000);position:absolute;inset:0}.ui-item-card{transition:border-color .2s var(--ui-ease), transform .2s var(--ui-ease-spring), box-shadow .2s var(--ui-ease);border-radius:var(--ui-radius);background:var(--ui-surface);-webkit-backdrop-filter:blur(var(--ui-glass-blur));backdrop-filter:blur(var(--ui-glass-blur));border:1px solid var(--ui-border);border-top-color:var(--ui-border-strong);flex-direction:column;padding:0;display:flex;overflow:hidden}.ui-item-card:hover{border-color:var(--ui-border-strong);transform:translateY(-2px)scale(1.01);box-shadow:0 8px 24px #0000004d,0 0 0 1px #7c6cf014}.ui-item-card-thumb{aspect-ratio:1;background:var(--ui-surface-solid);border-bottom:1px solid var(--ui-border-subtle);position:relative;overflow:hidden}.ui-item-card-thumb img{object-fit:cover;width:100%;height:100%;transition:transform .3s var(--ui-ease)}.ui-item-card:hover .ui-item-card-thumb img{transform:scale(1.04)}.ui-item-card-thumb-empty{background:radial-gradient(circle at 50% 40%, var(--ui-accent-subtle), transparent 70%), var(--ui-surface-solid);width:100%;height:100%}.ui-item-card-info{align-items:baseline;gap:.4rem;padding:.5rem .6rem;display:flex}.ui-item-card-name{color:var(--ui-text);white-space:nowrap;text-overflow:ellipsis;flex:1;min-width:0;font-size:.8rem;font-weight:600;overflow:hidden}.ui-item-card-meta{color:var(--ui-text-subtle);white-space:nowrap;font-variant-numeric:tabular-nums;flex-shrink:0;font-size:.65rem}@keyframes ui-card-select-pulse{0%{box-shadow:0 0 0 1px var(--ui-accent), 0 0 24px var(--ui-accent-glow)}50%{box-shadow:0 0 0 2px var(--ui-accent), 0 0 32px var(--ui-accent-glow)}to{box-shadow:0 0 0 1px var(--ui-accent), 0 0 24px var(--ui-accent-glow)}}.ui-item-card--selected .ui-item-card{animation:ui-card-select-pulse .5s var(--ui-ease)}.ui-folder-wrap{border-radius:var(--ui-radius);transition:box-shadow .2s var(--ui-ease);position:relative}.ui-folder-wrap.ui-folder-drop-active{box-shadow:inset 0 0 0 2px var(--ui-accent), 0 0 20px var(--ui-accent-glow);border-radius:var(--ui-radius)}.ui-folder{border:1px solid var(--ui-border);border-radius:var(--ui-radius);cursor:pointer;width:100%;transition:border-color .2s var(--ui-ease), transform .2s var(--ui-ease-spring), box-shadow .2s var(--ui-ease);color:var(--ui-text);background:0 0;flex-direction:column;padding:0;display:flex;overflow:hidden}.ui-folder:hover{border-color:var(--ui-border-strong);transform:translateY(-2px)scale(1.01);box-shadow:0 8px 24px #0000004d}.ui-folder-icon{aspect-ratio:1;background:linear-gradient(135deg, var(--ui-accent-subtle) 0%, transparent 60%), var(--ui-surface-solid);border-bottom:1px solid var(--ui-border-subtle);justify-content:center;align-items:center;display:flex;position:relative;overflow:hidden}.ui-folder-icon:before{content:"";background:linear-gradient(90deg, var(--ui-accent), transparent);opacity:.6;border-radius:0 0 6px;width:40%;height:6px;position:absolute;top:0;left:0}.ui-folder-info{-webkit-backdrop-filter:blur(var(--ui-glass-blur));backdrop-filter:blur(var(--ui-glass-blur));background:var(--ui-surface);flex-direction:column;gap:.1rem;padding:.45rem .6rem;display:flex}.ui-folder-name{white-space:nowrap;text-overflow:ellipsis;text-align:left;font-size:.8rem;font-weight:600;overflow:hidden}.ui-folder-count{color:var(--ui-text-subtle);text-align:left;font-size:.62rem}.ui-folder-preview-grid{aspect-ratio:1;border:1px solid var(--ui-border-subtle);border-radius:8px;width:80%;overflow:hidden}.ui-folder-preview-grid img{object-fit:cover;width:100%;height:100%}.ui-folder-preview-grid--1{display:flex}.ui-folder-preview-grid--2{grid-template-columns:1fr 1fr;display:grid}.ui-folder-preview-grid--3{grid-template-rows:1fr 1fr;grid-template-columns:1fr 1fr;display:grid}.ui-folder-preview-grid--3 img:first-child{grid-row:1/-1}.ui-folder-preview-grid--4{grid-template-rows:1fr 1fr;grid-template-columns:1fr 1fr;display:grid}.ui-folder-preview-empty{aspect-ratio:1;justify-content:center;align-items:center;width:60%;display:flex}.ui-folder-preview-svg{width:48px;height:48px;color:var(--ui-text-subtle);opacity:.3}.ui-slide-panel{background:var(--ui-glass-heavy);height:100dvh;-webkit-backdrop-filter:blur(var(--ui-glass-blur-heavy));backdrop-filter:blur(var(--ui-glass-blur-heavy));border-right:1px solid var(--ui-border);transition:transform .3s var(--ui-ease);z-index:50;box-shadow:var(--ui-shadow-float);flex-direction:column;display:flex;position:fixed;top:0}.ui-slide-panel-header{border-bottom:1px solid var(--ui-border);flex-shrink:0;justify-content:space-between;align-items:center;padding:.85rem 1rem;display:flex}.ui-slide-panel-title{color:var(--ui-text);font-size:.82rem;font-weight:600}.ui-slide-panel-close{color:var(--ui-text-muted);cursor:pointer;border-radius:var(--ui-radius-sm);background:0 0;border:none;padding:.1rem .2rem;font-size:1.1rem;line-height:1;transition:color .15s,background .15s}.ui-slide-panel-close:hover{color:var(--ui-text);background:var(--ui-surface-raised)}.ui-slide-panel-tabs{border-bottom:1px solid var(--ui-border);flex-shrink:0;display:flex}.ui-slide-panel-body{flex:1;padding:.75rem;overflow-y:auto}@media (width<=480px){.ui-slide-panel{max-width:85vw}}.ui-tab{color:var(--ui-text-muted);cursor:pointer;transition:color .2s var(--ui-ease), border-color .2s var(--ui-ease);background:0 0;border:none;border-bottom:2px solid #0000;flex:1;padding:.5rem;font-size:.72rem;font-weight:500}.ui-tab:hover{color:var(--ui-text)}.ui-tab--active{color:var(--ui-accent);border-bottom-color:var(--ui-accent)}.ui-login-card{background:var(--ui-glass);width:100%;max-width:400px;-webkit-backdrop-filter:blur(var(--ui-glass-blur-heavy));backdrop-filter:blur(var(--ui-glass-blur-heavy));border:1px solid var(--ui-border);border-top-color:var(--ui-border-strong);border-radius:var(--ui-radius-lg);box-shadow:var(--ui-shadow-float);flex-direction:column;gap:1rem;padding:2rem;display:flex;position:relative}.ui-login-dev-badge{color:#000;letter-spacing:.08em;border-radius:0 var(--ui-radius-lg) 0 var(--ui-radius);text-transform:uppercase;background:linear-gradient(135deg,#f59e0b,#f97316);padding:.2rem .65rem;font-size:.65rem;font-weight:700;position:absolute;top:-1px;right:-1px;box-shadow:0 0 12px #f59e0b4d}.ui-login-title{letter-spacing:-.03em;background:linear-gradient(135deg, #fff 0%, var(--ui-accent) 100%);-webkit-text-fill-color:transparent;-webkit-background-clip:text;background-clip:text;font-size:2rem;font-weight:700;line-height:1.2}.ui-login-subtitle{color:var(--ui-text-muted);margin-top:-.5rem;font-size:.88rem}.ui-login-tabs{border:1px solid var(--ui-border);border-radius:var(--ui-radius);display:flex;overflow:hidden}.ui-login-tab{color:var(--ui-text-muted);cursor:pointer;transition:all .2s var(--ui-ease);background:0 0;border:none;flex:1;padding:.55rem .5rem;font-family:inherit;font-size:.85rem;font-weight:500}.ui-login-tab:hover{color:var(--ui-text)}.ui-login-tab--active{background:var(--ui-surface-raised);color:var(--ui-text)}.ui-login-body{flex-direction:column;gap:.75rem;display:flex}.ui-login-error{color:var(--ui-danger);border-radius:var(--ui-radius);background:#f0606814;border:1px solid #f0606833;padding:.5rem .75rem;font-size:.82rem}.ui-login-page{background:var(--ui-bg);justify-content:center;align-items:center;min-height:100vh;padding:1rem;display:flex}.ui-login-section{flex-direction:column;gap:.75rem;display:flex}.ui-login-hint{color:var(--ui-text-muted);text-align:center;font-size:.88rem}.ui-login-label{color:var(--ui-text-muted);font-size:.88rem;font-weight:500}.ui-login-btn-full{width:100%}.ui-login-footer{color:var(--ui-text-subtle);text-align:center;font-size:.78rem;line-height:1.5}.ui-login-dev-section{flex-direction:column;gap:.75rem;display:flex}.ui-login-dev-divider{color:var(--ui-text-subtle);text-transform:uppercase;letter-spacing:.05em;align-items:center;gap:.75rem;font-size:.75rem;display:flex}.ui-login-dev-divider:before,.ui-login-dev-divider:after{content:"";background:var(--ui-border);flex:1;height:1px}.ui-user-menu{z-index:100;position:relative}.ui-user-menu-trigger{border:1px solid var(--ui-border);background:var(--ui-accent-muted);cursor:pointer;border-radius:50%;justify-content:center;align-items:center;width:34px;height:34px;padding:0;transition:border-color .15s,box-shadow .15s;display:flex;overflow:hidden}.ui-user-menu-trigger:hover{border-color:var(--ui-accent);box-shadow:0 0 0 2px var(--ui-accent-glow)}.ui-user-menu-avatar{object-fit:cover;border-radius:50%;width:100%;height:100%}.ui-user-menu-initials{color:var(--ui-accent);-webkit-user-select:none;user-select:none;font-size:.82rem;font-weight:600;line-height:1}.ui-user-menu-dropdown{background:var(--ui-glass);min-width:180px;-webkit-backdrop-filter:blur(var(--ui-glass-blur-heavy));backdrop-filter:blur(var(--ui-glass-blur-heavy));border:1px solid var(--ui-border);border-top-color:var(--ui-border-strong);border-radius:var(--ui-radius);box-shadow:var(--ui-shadow-float);animation:ui-user-menu-in .12s var(--ui-ease);z-index:1000;padding:4px;position:absolute;top:calc(100% + 6px);right:0}@keyframes ui-user-menu-in{0%{opacity:0;transform:scale(.96)translateY(-4px)}to{opacity:1;transform:scale(1)translateY(0)}}.ui-user-menu-name{color:var(--ui-text-muted);-webkit-user-select:none;user-select:none;padding:7px 12px;font-size:.78rem;font-weight:500}.ui-user-menu-item{width:100%;color:var(--ui-text);text-align:left;border-radius:var(--ui-radius-sm);cursor:pointer;background:0 0;border:none;padding:7px 12px;font-size:.82rem;transition:background .12s,color .12s;display:block}.ui-user-menu-item:hover{background:var(--ui-accent-muted);color:#fff}.ui-user-menu-item--danger:hover{background:var(--ui-danger-glow);color:var(--ui-danger)}.ui-user-menu-theme{align-items:center;gap:.5rem;display:flex}.ui-user-menu-theme-icon{color:var(--ui-text-subtle);transition:color .15s;display:inline-flex}.ui-user-menu-theme:hover .ui-user-menu-theme-icon{color:var(--ui-accent)}.ui-user-menu-sep{background:var(--ui-border);height:1px;margin:4px 8px}.ui-statusbar{border-top:1px solid var(--ui-border);background:var(--ui-glass-bar);height:28px;-webkit-backdrop-filter:blur(var(--ui-glass-blur-heavy));backdrop-filter:blur(var(--ui-glass-blur-heavy));z-index:10;color:var(--ui-text-muted);justify-content:space-between;align-items:center;gap:.5rem;padding:0 1rem;font-size:.72rem;display:flex;position:fixed;bottom:0;left:0;right:0;overflow:hidden;box-shadow:0 -1px #ffffff08}@media (width<=480px){.ui-statusbar{gap:.25rem;padding:0 .5rem}.ui-statusbar-center{display:none}}.ui-statusbar-left,.ui-statusbar-right,.ui-statusbar-center{align-items:center;gap:.6rem;min-width:0;display:flex;overflow:hidden}.ui-statusbar-left{justify-content:flex-start}.ui-statusbar-center{flex:1;justify-content:center}.ui-statusbar-right{justify-content:flex-end}.ui-sb-label{color:var(--ui-text-subtle);margin-right:.3rem}.ui-sb-text{white-space:nowrap;font-variant-numeric:tabular-nums}.ui-sb-text--muted{color:var(--ui-text-subtle)}.ui-sb-spinner{align-items:center;gap:.35rem;display:inline-flex}.ui-sb-spinner-icon{color:var(--ui-accent);animation:.8s linear infinite ui-sb-spin}@keyframes ui-sb-spin{to{transform:rotate(360deg)}}.ui-sb-progress{align-items:center;gap:.4rem;display:inline-flex}.ui-sb-progress-track{background:var(--ui-surface-raised);border-radius:2px;height:4px;display:inline-block;overflow:hidden}.ui-sb-progress-fill{background:var(--ui-accent);height:100%;transition:width .3s var(--ui-ease);border-radius:2px;display:block}.ui-sb-badge{white-space:nowrap;align-items:center;gap:.3rem;display:inline-flex}.ui-sb-badge-dot{border-radius:50%;flex-shrink:0;width:6px;height:6px}.ui-sb-sep{background:var(--ui-border);flex-shrink:0;width:1px;height:14px}.ui-sb-progress-fill{position:relative;overflow:hidden}.ui-sb-progress-fill:after{content:"";animation:ui-progress-shimmer 1.5s var(--ui-ease) infinite;background:linear-gradient(90deg,#0000 0%,#ffffff26 50%,#0000 100%);position:absolute;inset:0}@keyframes ui-progress-shimmer{0%{transform:translate(-100%)}to{transform:translate(100%)}}@keyframes ui-skeleton-shimmer{0%{transform:translate(-100%)}to{transform:translate(100%)}}.ui-tabbar{border-bottom:1px solid var(--ui-border);flex-shrink:0;gap:2px;padding:0 .35rem;display:flex}.ui-tabbar--full .ui-tabbar-tab{text-align:center;flex:1}.ui-tabbar-tab{color:var(--ui-text-subtle);text-transform:uppercase;letter-spacing:.05em;cursor:pointer;transition:color .15s var(--ui-ease);background:0 0;border:none;padding:.5rem .75rem;font-size:.72rem;font-weight:500;position:relative}.ui-tabbar-tab:after{content:"";height:2px;transition:background .2s var(--ui-ease), box-shadow .2s var(--ui-ease);background:0 0;border-radius:1px;position:absolute;bottom:-1px;left:.35rem;right:.35rem}.ui-tabbar-tab:hover{color:var(--ui-text-muted)}.ui-tabbar-tab--active{color:var(--ui-accent)}.ui-tabbar-tab--active:after{background:var(--ui-accent);box-shadow:0 0 8px var(--ui-accent-glow)}@keyframes ui-toast-in{0%{opacity:0;transform:translate(100%)scale(.95)}to{opacity:1;transform:translate(0)scale(1)}}@keyframes ui-toast-out{to{opacity:0;max-height:0;margin-bottom:-.5rem;padding-top:0;padding-bottom:0;overflow:hidden;transform:translate(30%)scale(.95)}}.ui-toast-container{z-index:1100;pointer-events:none;flex-direction:column;gap:.5rem;max-width:calc(100vw - 2rem);display:flex;position:fixed;bottom:40px;right:1rem}.ui-toast{border-radius:var(--ui-radius);border:1px solid var(--ui-border);background:var(--ui-glass-heavy);min-width:220px;max-width:400px;-webkit-backdrop-filter:blur(var(--ui-glass-blur-heavy));backdrop-filter:blur(var(--ui-glass-blur-heavy));box-shadow:var(--ui-shadow-float);color:var(--ui-text);cursor:pointer;pointer-events:auto;animation:ui-toast-in .35s var(--ui-ease-spring);align-items:center;gap:.6rem;padding:.6rem 1rem;font-size:.82rem;display:flex}.ui-toast--leaving{animation:ui-toast-out .3s var(--ui-ease) forwards}.ui-toast-icon{border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:18px;height:18px;font-size:.7rem;font-weight:700;display:flex}.ui-toast--info{border-left:3px solid var(--ui-accent)}.ui-toast--info .ui-toast-icon{background:var(--ui-accent-muted);color:var(--ui-accent)}.ui-toast--success{border-left:3px solid var(--ui-success)}.ui-toast--success .ui-toast-icon{color:var(--ui-success);background:#34d39926}.ui-toast--error{border-left:3px solid var(--ui-danger)}.ui-toast--error .ui-toast-icon{background:var(--ui-danger-glow);color:var(--ui-danger)}.ui-toast-message{line-height:1.4}.ui-skeleton{background:var(--ui-surface-raised);border-radius:var(--ui-radius-sm);position:relative;overflow:hidden}.ui-skeleton:after{content:"";animation:ui-skeleton-shimmer 1.8s var(--ui-ease) infinite;background:linear-gradient(90deg,#0000 0%,#ffffff0a 40%,#ffffff0f 50%,#ffffff0a 60%,#0000 100%);position:absolute;inset:0}.ui-skeleton--text{width:100%;height:.75rem}.ui-skeleton--circle{border-radius:50%;width:40px;height:40px}.ui-skeleton--rect{border-radius:var(--ui-radius);width:100%;height:120px}.ui-skeleton--card{border-radius:var(--ui-radius-lg);width:100%;height:200px}.ui-skeleton-lines{flex-direction:column;gap:.5rem;display:flex}.ui-skeleton-card{border-radius:var(--ui-radius);border:1px solid var(--ui-border);background:var(--ui-surface);overflow:hidden}.ui-skeleton-card-thumb{aspect-ratio:1;border-bottom:1px solid var(--ui-border-subtle);border-radius:0}.ui-skeleton-card-info{flex-direction:column;gap:.4rem;padding:.6rem;display:flex}.ui-empty-state{text-align:center;flex-direction:column;justify-content:center;align-items:center;gap:.75rem;padding:3rem 2rem;display:flex}.ui-empty-state-icon{color:var(--ui-text-subtle);opacity:.6;margin-bottom:.25rem}.ui-empty-state-title{color:var(--ui-text-muted);margin:0;font-size:.95rem;font-weight:600}.ui-empty-state-desc{color:var(--ui-text-subtle);max-width:280px;margin:0;font-size:.82rem;line-height:1.5}.ui-empty-state-action{margin-top:.5rem}.projects-main{flex-direction:column;gap:.75rem;min-height:calc(100vh - 52px);padding:1.25rem 1.5rem 2rem;transition:background .15s;display:flex}.unfolder-drop{border:1.5px dashed var(--ui-border);border-radius:var(--ui-radius);color:var(--ui-text-muted);text-align:center;padding:.5rem 1rem;font-size:.8rem;transition:border-color .15s,background .15s,color .15s}.unfolder-drop.active{border-color:var(--ui-accent);background:color-mix(in srgb, var(--ui-accent) 8%, var(--ui-bg));color:var(--ui-accent)}.breadcrumb-folder-name{color:var(--ui-text);font-size:.9rem;font-weight:600}.projects-error{color:var(--ui-danger);font-size:.875rem}.project-create-label{color:var(--ui-text-muted);text-transform:uppercase;letter-spacing:.05em;margin-bottom:.25rem;font-size:.8rem;font-weight:500}.project-create-body{flex-direction:column;gap:1rem;padding:.25rem 0 .5rem;display:flex}.project-create-actions{gap:.5rem;margin-top:.25rem;display:flex}.project-option-grid{grid-template-columns:repeat(2,1fr);gap:.5rem;display:grid}.project-option-grid--ratios{grid-template-columns:repeat(4,1fr)}.project-option-btn{background:var(--ui-surface-raised);border:1px solid var(--ui-border);border-radius:var(--ui-radius);color:var(--ui-text);cursor:pointer;flex-direction:column;justify-content:center;align-items:center;gap:.35rem;min-height:64px;padding:.75rem .5rem;transition:border-color .15s,background .15s;display:flex}.project-option-btn:hover{border-color:var(--ui-text-muted)}.project-option-btn.selected{border-color:var(--ui-accent);background:color-mix(in srgb, var(--ui-accent) 10%, var(--ui-surface-raised))}.project-option-title{font-size:.9rem;font-weight:600}.project-option-sub{color:var(--ui-text-muted);font-size:.75rem}.ratio-preview{background:var(--ui-accent);opacity:.5;border-radius:2px;display:block}.project-option-btn.selected .ratio-preview{opacity:1}.folder-create-body{flex-direction:column;gap:1rem;padding:.25rem 0 .5rem;display:flex}.ui-page-header-actions .ui-btn-danger-ghost:hover{color:var(--ui-danger);border-color:var(--ui-danger)}.load-more-sentinel{justify-content:center;min-height:1px;padding:1.5rem 0;display:flex}.load-more-spinner{border:2px solid var(--ui-border);border-top-color:var(--ui-accent);border-radius:50%;width:24px;height:24px;animation:.6s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}@media (width<=768px){.projects-main{padding:.75rem .75rem 1.5rem}.folder-create-row{flex-wrap:wrap}.folder-create-input{width:100%;min-width:0}}@media (width<=480px){.projects-main{padding:.5rem .5rem 1rem}}.toolbar{background:var(--surface);border-right:1px solid var(--border);z-index:20;flex-direction:column;align-items:center;gap:1px;width:36px;padding:6px 3px;display:flex;position:absolute;top:0;bottom:0;left:0}.toolbar-btn{border-radius:var(--radius);width:30px;height:30px;color:var(--text-muted);cursor:pointer;background:0 0;border:1px solid #0000;justify-content:center;align-items:center;padding:0;transition:background .15s,color .15s,border-color .15s;display:flex;position:relative}.toolbar-btn:hover:not(.active){background:var(--surface-raised);color:var(--text)}.toolbar-btn.active{background:color-mix(in srgb, var(--accent) 20%, var(--surface));border-color:var(--accent);color:var(--accent);box-shadow:inset 0 0 0 1px color-mix(in srgb, var(--accent) 25%, transparent)}.toolbar-icon{justify-content:center;align-items:center;width:16px;height:16px;line-height:0;display:flex}.toolbar-icon svg{width:100%;height:100%}.toolbar-label,.toolbar-key{display:none}.toolbar-btn:hover:not(.active) .toolbar-label{white-space:nowrap;color:var(--text);background:var(--surface-raised);border:1px solid var(--border);border-radius:var(--radius);pointer-events:none;z-index:30;box-shadow:var(--shadow);align-items:center;gap:6px;padding:4px 8px;font-size:.75rem;font-weight:500;display:flex;position:absolute;top:50%;left:calc(100% + 8px);transform:translateY(-50%)}.toolbar-btn:hover:not(.active) .toolbar-key{font-size:.62rem;font-weight:600;font-family:var(--font-mono);color:var(--text-subtle);background:color-mix(in srgb, var(--text) 8%, transparent);border:1px solid var(--border);pointer-events:none;border-radius:3px;justify-content:center;align-items:center;padding:1px 4px;line-height:1.4;display:inline-flex;position:static;transform:none}.toolbar-spacer{border-bottom:1px solid var(--border);flex:1;width:100%;min-height:8px;margin-bottom:4px}.toolbar-btn--action{opacity:.7}.toolbar-btn--action:hover,.toolbar-btn--action.active{opacity:1}@media (width<=768px){.toolbar{border-right:none;border-top:1px solid var(--border);flex-direction:row;justify-content:center;gap:4px;width:100%;height:auto;padding:6px 10px;position:fixed;inset:auto 0 76px}.toolbar-btn{width:40px;height:40px}.toolbar-btn:hover .toolbar-label{display:none}}.tb-bar{background:var(--surface);border-bottom:1px solid var(--border);scrollbar-width:none;flex-shrink:0;align-items:stretch;gap:1px;height:32px;padding:0 .25rem;display:flex;overflow:auto hidden}.tb-bar::-webkit-scrollbar{display:none}.tb-tab{cursor:pointer;color:var(--text-muted);white-space:nowrap;border-bottom:2px solid #0000;align-items:center;gap:.3rem;min-width:0;max-width:180px;padding:0 .5rem 0 .7rem;font-size:.72rem;transition:color .12s,background .12s,border-color .12s;display:flex;position:relative}.tb-tab:hover{color:var(--text);background:var(--surface-raised)}.tb-tab--active{color:var(--text);border-bottom-color:var(--accent);background:color-mix(in srgb, var(--accent) 6%, transparent)}.tb-tab-name{text-overflow:ellipsis;min-width:0;overflow:hidden}.tb-tab-close{color:var(--text-subtle);cursor:pointer;opacity:0;background:0 0;border:none;border-radius:3px;flex-shrink:0;padding:.1rem .15rem;font-size:.85rem;line-height:1;transition:opacity .1s,color .1s,background .1s}.tb-tab:hover .tb-tab-close,.tb-tab--active .tb-tab-close{opacity:1}.tb-tab-close:hover{color:var(--text);background:color-mix(in srgb, var(--text) 10%, transparent)}.lp-rail{flex-direction:column;flex:1;min-height:0;display:flex;overflow:hidden}.lp-header{color:var(--text-subtle);text-transform:uppercase;letter-spacing:.05em;flex-shrink:0;align-items:center;gap:.3rem;padding:.4rem .6rem .3rem;font-size:.65rem;font-weight:600;display:flex}.lp-count{background:color-mix(in srgb, var(--text-subtle) 15%, transparent);color:var(--text-muted);border-radius:6px;padding:.05rem .35rem;font-size:.58rem;font-weight:500}.lp-search-wrap{flex-shrink:0;padding:0 .5rem .3rem;position:relative}.lp-search{background:var(--surface-raised);border:1px solid var(--border);border-radius:var(--radius-sm);width:100%;color:var(--text);outline:none;padding:.25rem 1.4rem .25rem .4rem;font-size:.7rem;transition:border-color .15s}.lp-search:focus{border-color:var(--accent)}.lp-search::placeholder{color:var(--text-subtle)}.lp-search-clear{color:var(--text-subtle);cursor:pointer;background:0 0;border:none;padding:0 .2rem;font-size:.8rem;line-height:1;position:absolute;top:50%;right:.7rem;transform:translateY(-50%)}.lp-search-clear:hover{color:var(--text)}.lp-list{flex-direction:column;flex:1;min-height:0;display:flex;overflow-y:auto}.lp-item{cursor:pointer;border-bottom:1px solid color-mix(in srgb, var(--border) 50%, transparent);flex-shrink:0;align-items:center;gap:.4rem;padding:.35rem .5rem;transition:background .12s;display:flex}.lp-item:last-child{border-bottom:none}.lp-item:hover{background:var(--surface-raised)}.lp-item--selected{background:color-mix(in srgb, var(--accent) 12%, transparent)}.lp-item--hidden{opacity:.4}.lp-item--folder .lp-name{font-size:.68rem;font-weight:600}.lp-item--drop-target{background:color-mix(in srgb, var(--accent) 20%, transparent);outline:1px dashed var(--accent);outline-offset:-1px}.lp-item--drop-above{box-shadow:inset 0 2px 0 0 var(--accent)}.lp-item--drop-below{box-shadow:inset 0 -2px 0 0 var(--accent)}.lp-collapse-btn{color:var(--text-muted);cursor:pointer;background:0 0;border:none;flex-shrink:0;justify-content:center;align-items:center;width:28px;height:28px;padding:0;font-size:.75rem;line-height:1;display:flex}.lp-collapse-btn:hover{color:var(--text)}.lp-folder-icon{font-size:.7rem}.lp-thumb{border:1px solid var(--border);background:var(--bg);border-radius:3px;flex-shrink:0;width:28px;height:28px;overflow:hidden}.lp-thumb img{object-fit:cover;width:100%;height:100%;display:block}.lp-thumb-empty{background:repeating-conic-gradient(var(--surface-raised) 0% 25%, var(--bg) 0% 50%) 50% / 8px 8px;width:100%;height:100%}.lp-name{color:var(--text);white-space:nowrap;text-overflow:ellipsis;flex:1;min-width:0;font-size:.7rem;overflow:hidden}.lp-rename-input{min-width:0;color:var(--text);background:var(--surface-raised);border:1px solid var(--accent);border-radius:var(--radius-sm);outline:none;flex:1;padding:.1rem .3rem;font-size:.7rem}.lp-actions{flex-shrink:0;align-items:center;gap:.2rem;display:flex}.lp-history-btn{color:var(--text-subtle);cursor:pointer;border-radius:var(--radius-sm);opacity:0;background:0 0;border:none;padding:.1rem .2rem;font-size:.72rem;line-height:1;transition:background .1s,color .1s}.lp-item:hover .lp-history-btn{opacity:1}.lp-history-btn:hover{color:var(--accent);background:color-mix(in srgb, var(--accent) 10%, transparent)}.lp-eye{color:var(--text-muted);cursor:pointer;border-radius:var(--radius-sm);background:0 0;border:none;padding:.15rem .2rem;font-size:.75rem;line-height:1;transition:background .1s,color .1s}.lp-eye:hover{color:var(--text);background:color-mix(in srgb, var(--text) 8%, transparent)}.lp-eye--off{color:var(--text-subtle)}.lp-delete{color:var(--text-subtle);cursor:pointer;border-radius:var(--radius-sm);opacity:0;background:0 0;border:none;padding:.15rem .2rem;font-size:.8rem;line-height:1;transition:background .1s,color .1s}.lp-item:hover .lp-delete{opacity:1}.lp-delete:hover{color:var(--danger);background:color-mix(in srgb, var(--danger) 10%, transparent)}.lp-undo-bar{background:var(--surface-raised);border-top:1px solid var(--border);flex-shrink:0;justify-content:space-between;align-items:center;gap:.5rem;padding:.3rem .5rem;display:flex}.lp-undo-label{color:var(--text-subtle);text-overflow:ellipsis;white-space:nowrap;font-size:.72rem;overflow:hidden}.lp-undo-btn{border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--accent,#7c6ef7);cursor:pointer;background:0 0;flex-shrink:0;padding:.1rem .4rem;font-size:.72rem}.lp-undo-btn:hover{background:color-mix(in srgb, var(--accent,#7c6ef7) 15%, transparent)}.lp-footer{border-top:1px solid var(--border);flex-shrink:0;padding:.3rem .5rem}.lp-footer-btns{gap:.3rem;display:flex}.lp-add-btn{border:1px dashed var(--border);border-radius:var(--radius-sm);color:var(--text-subtle);cursor:pointer;background:0 0;flex:1;padding:.25rem;font-size:.68rem;transition:border-color .15s,color .15s}.lp-add-btn:hover{border-color:var(--accent);color:var(--accent)}.lp-session-group{border-left:2px solid color-mix(in srgb, var(--accent) 30%, transparent);margin-left:.25rem}.lp-session-header{background:color-mix(in srgb, var(--surface-raised) 60%, transparent);border:none;border-bottom:1px solid color-mix(in srgb, var(--border) 40%, transparent);cursor:pointer;width:100%;color:var(--text-muted);text-align:left;align-items:center;gap:.3rem;padding:.25rem .5rem;font-size:.62rem;transition:background .12s;display:flex}.lp-session-header:hover{background:var(--surface-raised);color:var(--text)}.lp-session-arrow{flex-shrink:0;width:.7rem;font-size:.6rem}.lp-session-label{white-space:nowrap;text-overflow:ellipsis;text-transform:uppercase;letter-spacing:.03em;flex:1;min-width:0;font-weight:500;overflow:hidden}.lp-session-count{background:color-mix(in srgb, var(--accent) 15%, transparent);color:var(--text-subtle);border-radius:6px;flex-shrink:0;padding:.05rem .35rem;font-size:.58rem}.ba-toggle{border:1px solid var(--border);border-radius:var(--radius-sm);display:inline-flex;overflow:hidden}.ba-toggle-btn{color:var(--text-muted);cursor:pointer;background:0 0;border:none;padding:.15rem .35rem;font-size:.6rem;font-weight:500;transition:background .15s,color .15s}.ba-toggle-btn:hover{color:var(--text)}.ba-toggle-btn--active{background:color-mix(in srgb, var(--accent) 20%, transparent);color:var(--accent)}.ip-anchor{width:100%}.ip-body{flex-direction:column;gap:.4rem;padding:.6rem;display:flex}.ip-btn-row{align-items:center;gap:.3rem;display:flex}.ip-btn{padding:.3rem .5rem;font-size:.76rem}.ip-btn--sm{flex:none;padding:.3rem .5rem}.ip-hint{color:var(--text-subtle);margin-left:auto;font-size:.62rem}.ip-sliders{border-top:1px solid color-mix(in srgb, var(--border) 50%, transparent);flex-direction:column;gap:.4rem;padding-top:.3rem;display:flex}.ip-slider-row{align-items:center;gap:.4rem;display:flex}.ip-slider-row label{color:var(--text-subtle);flex-shrink:0;width:42px;font-size:.65rem}.ip-slider-row input[type=range]{appearance:none;background:var(--border);cursor:pointer;border-radius:2px;outline:none;flex:1;height:4px;margin:0}.ip-slider-row input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;background:var(--text-muted);border:2px solid var(--surface);cursor:pointer;border-radius:50%;width:12px;height:12px;transition:background .15s,transform .1s;box-shadow:0 1px 3px #00000026}.ip-slider-row input[type=range]::-moz-range-thumb{background:var(--text-muted);border:2px solid var(--surface);cursor:pointer;border-radius:50%;width:12px;height:12px;box-shadow:0 1px 3px #00000026}.ip-slider-row input[type=range]:hover::-webkit-slider-thumb{background:var(--accent);transform:scale(1.15)}.ip-slider-row input[type=range]:hover::-moz-range-thumb{background:var(--accent)}.ip-slider-row input[type=range]::-moz-range-track{background:var(--border);border:none;border-radius:2px;height:4px}.ip-slider-row span,.ip-slider-row .ui-ev-display{color:var(--text-muted);text-align:right;font-variant-numeric:tabular-nums;cursor:text;border-radius:var(--radius-sm);flex-shrink:0;width:36px;margin:-.05rem -.15rem;padding:.05rem .15rem;font-size:.65rem;transition:background .1s}.ip-slider-row .ui-ev-display:hover{background:color-mix(in srgb, var(--text) 10%, transparent);color:var(--text)}.ip-slider-row .ui-ev-input,.ts-row .ui-ev-input{font-variant-numeric:tabular-nums;text-align:right;background:var(--surface-raised);border:1px solid var(--accent);border-radius:var(--radius-sm);width:42px;color:var(--text);outline:none;flex-shrink:0;padding:.05rem .15rem;font-size:.65rem}.ip-blend-select{background:var(--surface-raised);border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--text);cursor:pointer;outline:none;flex:1;padding:.15rem .3rem;font-size:.65rem;transition:border-color .15s}.ip-blend-select:focus{border-color:var(--accent)}.ip-quick-row{border-top:1px solid color-mix(in srgb, var(--border) 50%, transparent);flex-wrap:wrap;gap:.25rem;padding-top:.3rem;display:flex}.ip-quick-btn{color:var(--text-muted);border:1px solid var(--border);border-radius:var(--radius-sm);cursor:pointer;background:0 0;padding:.2rem .35rem;font-size:.62rem;font-weight:500;transition:border-color .15s,color .15s}.ip-quick-btn:hover{border-color:var(--text-muted);color:var(--text)}.ip-match-title{color:var(--text);text-transform:uppercase;letter-spacing:.04em;font-size:.7rem;font-weight:600}.ip-match-steps{flex-direction:column;gap:.3rem;display:flex}.ip-match-step{opacity:.4;align-items:flex-start;gap:.4rem;display:flex}.ip-match-step--active{opacity:1}.ip-match-step--done{opacity:.7}.ip-match-step-num{border:1.5px solid var(--text-subtle);width:18px;height:18px;color:var(--text-subtle);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;font-size:.58rem;font-weight:600;display:flex}.ip-match-step--active .ip-match-step-num{border-color:var(--accent);color:var(--accent);background:color-mix(in srgb, var(--accent) 12%, transparent)}.ip-match-step--done .ip-match-step-num{border-color:var(--accent);color:var(--accent)}.ip-match-step-text{flex-direction:column;gap:.1rem;min-width:0;display:flex}.ip-match-step-label{color:var(--text-muted);font-size:.68rem;font-weight:500}.ip-match-step--active .ip-match-step-label{color:var(--text)}.ip-match-step-desc{color:var(--text-subtle);font-size:.6rem}.hp-strip{background:color-mix(in srgb, var(--surface) 95%, transparent);-webkit-backdrop-filter:blur(12px);border-top:1px solid var(--border);z-index:30;flex-direction:column;max-height:180px;display:flex;position:absolute;bottom:0;left:0;right:0}.hp-strip-header{flex-shrink:0;align-items:center;gap:.5rem;padding:.4rem .6rem;display:flex}.hp-strip-title{color:var(--text);font-size:.7rem;font-weight:600}.hp-strip-hint{color:var(--text-subtle);flex:1;font-size:.6rem}.hp-strip-close{color:var(--text-muted);cursor:pointer;border-radius:var(--radius-sm);background:0 0;border:none;padding:.1rem .3rem;font-size:.9rem;line-height:1}.hp-strip-close:hover{color:var(--text);background:var(--surface-raised)}.hp-strip-scroll{flex:1;gap:.5rem;min-height:0;padding:0 .6rem .5rem;display:flex;overflow:auto hidden}.hp-strip-item{border:2px solid var(--border);border-radius:var(--radius);cursor:pointer;background:0 0;flex-shrink:0;width:120px;padding:0;transition:border-color .15s,transform .15s;overflow:hidden}.hp-strip-item:hover{border-color:var(--accent);transform:translateY(-2px)}.hp-strip-item img{aspect-ratio:16/9;object-fit:cover;width:100%;display:block}.hp-strip-label{color:var(--text-muted);white-space:nowrap;text-overflow:ellipsis;padding:.2rem .3rem;font-size:.58rem;display:block;overflow:hidden}.gmp-pill{border:1px solid var(--border);border-radius:var(--radius);flex-shrink:0;display:inline-flex;overflow:hidden}.gmp-pill--disabled{opacity:.5;pointer-events:none}.gmp-seg{color:var(--text-muted);cursor:pointer;background:0 0;border:none;padding:.2rem .45rem;font-size:.65rem;font-weight:500;line-height:1.2;transition:background .15s,color .15s}.gmp-seg:not(:last-child){border-right:1px solid var(--border)}.gmp-seg:hover:not(.gmp-seg--active){background:color-mix(in srgb, var(--text) 6%, transparent);color:var(--text)}.gmp-seg--active{background:var(--accent);color:var(--accent-fg,#fff)}.gmp-seg:focus-visible{outline:2px solid var(--accent);outline-offset:-2px;z-index:1;position:relative}.pp-row{scrollbar-width:none;flex-shrink:0;align-items:center;gap:.3rem;max-width:100%;padding:.2rem 0;display:flex;overflow-x:auto}.pp-row::-webkit-scrollbar{display:none}.pp-chip{border:1px solid var(--border);white-space:nowrap;background:0 0;border-radius:999px;flex-shrink:0;align-items:center;transition:border-color .15s,background .15s;display:inline-flex}.pp-chip:hover,.pp-chip:focus-within{border-color:var(--accent);background:var(--surface-raised,#ffffff0a)}.pp-chip-btn{color:var(--text-muted);cursor:pointer;background:0 0;border:none;border-radius:999px 0 0 999px;padding:.15rem .25rem .15rem .45rem;font-size:.65rem;line-height:1.3}.pp-chip:hover .pp-chip-btn,.pp-chip:focus-within .pp-chip-btn{color:var(--text)}.pp-chip-btn:focus-visible{outline:2px solid var(--accent);outline-offset:-2px;border-radius:999px 0 0 999px}.pp-chip-text{pointer-events:none}.pp-chip-x{opacity:0;color:var(--text-muted);cursor:pointer;background:0 0;border:none;border-radius:0 999px 999px 0;padding:.15rem .45rem .15rem .2rem;font-size:.7rem;line-height:1;transition:opacity .15s,color .15s}.pp-chip:hover .pp-chip-x,.pp-chip:focus-within .pp-chip-x{opacity:1}.pp-chip-x:hover,.pp-chip-x:focus-visible{color:var(--danger,#ef4444)}.pp-chip-x:focus-visible{outline:2px solid var(--accent);outline-offset:-2px;opacity:1}.pp-chip--save{color:var(--accent);border-color:var(--accent);cursor:pointer;background:0 0;border-style:dashed;border-radius:999px;padding:.15rem .5rem;font-size:.8rem;font-weight:600}.pp-chip--save:hover,.pp-chip--save:focus-visible{background:var(--accent);color:var(--accent-fg,#fff);border-style:solid}.pp-chip--save:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.pb-bar{background:var(--surface);border-top:1px solid var(--border);margin-left:var(--toolbar-w);margin-right:var(--right-rail-w);flex-direction:column;flex-shrink:0;padding:.2rem .6rem .4rem;display:flex;position:relative}.pb-context{align-items:center;gap:.5rem;padding:0 .2rem .15rem;display:flex}.pb-context-label{color:var(--text-muted);font-size:.65rem}.pb-context-label strong{color:var(--text);font-weight:600}.pb-context-tip{color:var(--text-subtle);margin-left:auto;font-size:.6rem}.pb-row{align-items:center;gap:.5rem;display:flex;position:relative}.pb-bar--inactive{opacity:.6}.pb-prompt-wrap{flex:1;min-width:0;position:relative}.pb-prompt{resize:none;box-sizing:border-box;border-radius:var(--radius-sm);width:100%;min-height:30px;max-height:80px;padding:.3rem .5rem;font-size:.8rem;line-height:1.4}.pb-hint{color:var(--text-subtle);flex:1;padding:.3rem .5rem;font-size:.72rem}.pb-submit{white-space:nowrap;flex-shrink:0;padding:.3rem .65rem;font-size:.76rem;font-weight:600}.pb-faceswap{background:var(--surface-raised);border:1px solid var(--border);color:var(--text)}.pb-faceswap:hover:not(:disabled){border-color:var(--accent);color:var(--accent)}.pb-faceswap-bar{align-items:center;gap:.5rem;padding:.3rem 0;display:flex}.pb-faceswap-label{color:var(--text-muted);flex:1;font-size:.72rem}.pb-faceswap-cancel{border:1px solid var(--border);color:var(--text-muted);background:0 0}.pb-faceswap-cancel:hover{border-color:var(--text-muted);color:var(--text)}.pb-mic-btn{width:28px;height:28px;color:var(--text-muted);cursor:pointer;background:0 0;border:none;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;transition:color .15s,background .15s;display:flex}.pb-mic-btn:hover{background:var(--surface-raised);color:var(--text)}.pb-mic-btn:focus-visible{outline:2px solid var(--accent);outline-offset:2px;background:var(--surface-raised);color:var(--text)}.pb-mic-btn--active{color:var(--danger,#ef4444);animation:1.2s ease-in-out infinite pb-pulse}@keyframes pb-pulse{0%,to{opacity:1}50%{opacity:.5}}.layer-overlay-svg{pointer-events:none;width:100%;height:100%;position:absolute;inset:0}.gen-pulse-fill{animation:1.3s ease-in-out infinite gen-fill-pulse}.gen-pulse-border{animation:1.3s ease-in-out infinite gen-border-pulse}@keyframes gen-fill-pulse{0%,to{opacity:.06}50%{opacity:.2}}@keyframes gen-border-pulse{0%,to{opacity:.45}50%{opacity:1}}.ts-panel{width:100%}.ts-title{color:var(--text-subtle);text-transform:uppercase;letter-spacing:.04em;margin-bottom:.2rem;font-size:.7rem;font-weight:600}.ts-body{flex-direction:column;gap:.4rem;padding:.6rem;display:flex}.ts-row{align-items:center;gap:.4rem;display:flex}.ts-row label{color:var(--text-subtle);flex-shrink:0;width:42px;font-size:.65rem}.ts-row input[type=range]{appearance:none;background:var(--border);cursor:pointer;border-radius:2px;outline:none;flex:1;height:3px;margin:0}.ts-row input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;background:var(--text-muted);border:2px solid var(--surface);cursor:pointer;border-radius:50%;width:10px;height:10px}.ts-row input[type=range]::-moz-range-thumb{background:var(--text-muted);border:2px solid var(--surface);cursor:pointer;border-radius:50%;width:10px;height:10px}.ts-row input[type=range]:hover::-webkit-slider-thumb{background:var(--accent)}.ts-row input[type=range]:hover::-moz-range-thumb{background:var(--accent)}.ts-row span,.ts-row .ui-ev-display{color:var(--text-muted);text-align:right;font-variant-numeric:tabular-nums;cursor:text;border-radius:var(--radius-sm);flex-shrink:0;width:36px;margin:-.05rem -.15rem;padding:.05rem .15rem;font-size:.65rem;transition:background .1s}.ts-row .ui-ev-display:hover{background:color-mix(in srgb, var(--text) 10%, transparent);color:var(--text)}.ts-color{border:1px solid var(--border);border-radius:var(--radius-sm);cursor:pointer;background:0 0;width:28px;height:22px;padding:0}.ts-mode-btn{color:var(--text-muted);border:1px solid var(--border);border-radius:var(--radius-sm);cursor:pointer;background:0 0;padding:.2rem .4rem;font-size:.65rem;font-weight:500;transition:border-color .15s,color .15s}.ts-mode-btn:hover{border-color:var(--text-muted);color:var(--text)}.ts-mode-btn.active{background:color-mix(in srgb, var(--accent) 18%, transparent);color:var(--accent);border-color:var(--accent)}.snp-rail{flex-direction:column;flex:1;min-height:0;display:flex;overflow:hidden}.snp-commit-area{border-bottom:1px solid var(--border);flex-wrap:wrap;flex-shrink:0;gap:.3rem;padding:.5rem;display:flex}.snp-name-input{background:var(--surface-raised);border:1px solid var(--border);border-radius:var(--radius-sm);min-width:0;color:var(--text);outline:none;flex:1;padding:.3rem .5rem;font-size:.75rem;transition:border-color .15s}.snp-name-input:focus{border-color:var(--accent)}.snp-commit-btn{background:var(--accent);color:#fff;border-radius:var(--radius-sm);cursor:pointer;white-space:nowrap;border:none;padding:.3rem .6rem;font-size:.72rem;font-weight:600;transition:opacity .15s}.snp-commit-btn:disabled{opacity:.5;cursor:default}.snp-commit-btn:not(:disabled):hover{opacity:.85}.snp-error{width:100%;color:var(--danger);font-size:.65rem}.snp-empty{color:var(--text-subtle);margin:0;padding:1rem .75rem;font-size:.72rem;line-height:1.5}.snp-list{flex-direction:column;flex:1;min-height:0;display:flex;overflow-y:auto}.snp-item{border-bottom:1px solid color-mix(in srgb, var(--border) 50%, transparent);align-items:center;gap:.3rem;padding:.25rem .4rem;transition:background .12s;display:flex}.snp-item:hover{background:var(--surface-raised)}.snp-item--current{background:color-mix(in srgb, var(--accent) 8%, transparent)}.snp-indicator{color:var(--text-subtle);flex-shrink:0;font-size:.5rem;line-height:1}.snp-item--current .snp-indicator{color:var(--accent)}.snp-name{color:var(--text);white-space:nowrap;text-overflow:ellipsis;flex:1;min-width:0;font-size:.68rem;overflow:hidden}.snp-item--current .snp-name{font-weight:600}.snp-time{color:var(--text-subtle);white-space:nowrap;flex-shrink:0;font-size:.58rem}.snp-item-actions{flex-shrink:0;gap:.15rem;display:flex}.snp-restore-btn{border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--text-muted);cursor:pointer;background:0 0;padding:.15rem .4rem;font-size:.62rem;transition:border-color .15s,color .15s}.snp-restore-btn:hover{border-color:var(--accent);color:var(--accent)}.snp-delete-btn{color:var(--text-subtle);cursor:pointer;background:0 0;border:none;padding:.1rem .3rem;font-size:.75rem;line-height:1.4;transition:color .15s}.snp-delete-btn:hover{color:var(--danger)}.ap-section{flex-direction:column;flex-shrink:0;display:flex}.ap-header{color:var(--text-subtle);text-transform:uppercase;letter-spacing:.05em;flex-shrink:0;align-items:center;gap:.3rem;padding:.4rem .6rem .3rem;font-size:.65rem;font-weight:600;display:flex}.ap-list{flex-direction:column;gap:.4rem;padding:0 .5rem .5rem;display:flex}.ap-action{flex-direction:column;gap:.25rem;display:flex}.ap-action-label{color:var(--text-muted);font-size:.62rem;font-weight:500}.ap-drop-zone{border:1.5px dashed var(--border);border-radius:var(--radius-sm);cursor:pointer;background:0 0;justify-content:center;align-items:center;min-height:36px;transition:border-color .15s,background .15s;display:flex}.ap-drop-zone:hover,.ap-drop-zone--active{border-color:var(--accent);background:color-mix(in srgb, var(--accent) 6%, transparent)}.ap-drop-text{color:var(--text-subtle);pointer-events:none;font-size:.6rem}.ap-file-input{display:none}.ap-action-btn{background:var(--surface-raised);border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--text);cursor:pointer;padding:.3rem .5rem;font-size:.65rem;font-weight:500;transition:border-color .15s,background .15s}.ap-action-btn:hover:not(:disabled){border-color:var(--accent);background:color-mix(in srgb, var(--accent) 8%, transparent)}.ap-action-btn:disabled{opacity:.5;cursor:not-allowed}.ap-action-row{gap:.3rem;display:flex}.ap-action-row .ap-action-btn{flex:1}.em-body{flex-direction:column;gap:.75rem;display:flex}.em-label{color:var(--text-muted);flex-shrink:0;font-size:.78rem}.em-format-row{align-items:center;gap:.75rem;display:flex}.em-format-btns{gap:.35rem;display:flex}.em-fmt-btn{border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--text-muted);cursor:pointer;background:0 0;padding:.2rem .55rem;font-size:.72rem;font-weight:500;transition:border-color .15s,color .15s,background .15s}.em-fmt-btn.active{border-color:var(--accent);color:var(--accent);background:color-mix(in srgb, var(--accent) 10%, transparent)}.em-action{width:100%}.em-error{color:var(--danger);font-size:.82rem}.sp-image{z-index:5;cursor:grab;-webkit-user-select:none;user-select:none;border-radius:var(--radius);border:1px solid var(--border);background:var(--surface);box-shadow:var(--shadow);transition:box-shadow .15s;position:absolute;overflow:hidden}.sp-image:hover{box-shadow:var(--shadow-lg);border-color:var(--text-subtle)}.sp-image:active{cursor:grabbing}.sp-uploading{cursor:default}.sp-uploading img{opacity:.6}.sp-image img{pointer-events:none;width:140px;height:auto;display:block}.sp-progress-track{background:#0006;height:3px;position:absolute;bottom:22px;left:0;right:0}.sp-progress-bar{background:var(--accent);border-radius:0 1px 1px 0;height:100%;transition:width .15s ease-out}.sp-remove{width:20px;height:20px;color:var(--text-muted);cursor:pointer;opacity:0;background:#000000b3;border:none;border-radius:50%;justify-content:center;align-items:center;font-size:.75rem;line-height:1;transition:opacity .15s;display:flex;position:absolute;top:4px;right:4px}.sp-image:hover .sp-remove{opacity:1}.sp-remove:hover{color:var(--danger)}.sp-filename{color:var(--text-subtle);white-space:nowrap;text-overflow:ellipsis;max-width:140px;padding:.2rem .4rem;font-size:.62rem;display:block;overflow:hidden}.image-dock{background:var(--surface);border-top:1px solid var(--border);margin-left:var(--toolbar-w);margin-right:var(--right-rail-w);flex-shrink:0;gap:0;height:80px;display:flex}.id-refs{border-right:1px solid var(--border);flex-shrink:0;align-items:center;gap:.35rem;min-width:120px;max-width:280px;padding:.35rem .5rem;display:flex;overflow-x:auto}.id-refs-label{color:var(--text-subtle);text-transform:uppercase;letter-spacing:.04em;writing-mode:vertical-lr;-webkit-user-select:none;user-select:none;flex-shrink:0;font-size:.58rem;font-weight:600;transform:rotate(180deg)}.id-refs-items{flex:1;align-items:center;gap:.3rem;min-width:0;display:flex}.id-ref-item{border-radius:var(--radius-sm);border:1px solid var(--border);cursor:default;flex-shrink:0;width:56px;height:56px;position:relative;overflow:hidden}.id-ref-item img{object-fit:cover;width:100%;height:100%;display:block}.id-ref-item.id-uploading img{opacity:.5}.id-ref-remove{width:16px;height:16px;color:var(--text-muted);cursor:pointer;opacity:0;background:#000000bf;border:none;border-radius:50%;justify-content:center;align-items:center;font-size:.6rem;line-height:1;transition:opacity .15s;display:flex;position:absolute;top:2px;right:2px}.id-ref-item:hover .id-ref-remove{opacity:1}.id-ref-remove:hover{color:var(--danger,#ef4444)}.id-ref-progress{background:#0006;height:3px;position:absolute;bottom:0;left:0;right:0}.id-ref-progress-bar{background:var(--accent);height:100%;transition:width .15s ease-out}.id-refs-drop{border:1.5px dashed var(--border);border-radius:var(--radius-sm);width:56px;height:56px;color:var(--text-subtle);flex-shrink:0;justify-content:center;align-items:center;font-size:1rem;transition:border-color .15s,background .15s;display:flex}.id-refs-drop:hover,.id-refs-drop.id-drag-active{border-color:var(--accent);background:color-mix(in srgb, var(--accent) 8%, transparent);color:var(--accent)}.id-browse{flex-direction:column;flex:1;min-width:0;display:flex;overflow:hidden}.id-browse-tabs{border-bottom:1px solid var(--border);flex-shrink:0;gap:0;display:flex}.id-browse-tab{color:var(--text-muted);cursor:pointer;background:0 0;border:none;border-bottom:2px solid #0000;padding:.2rem .6rem;font-size:.62rem;font-weight:600;transition:color .15s,border-color .15s}.id-browse-tab:hover{color:var(--text)}.id-browse-tab--active{color:var(--accent);border-bottom-color:var(--accent)}.id-browse-scroll{flex:1;padding:.35rem .5rem;overflow:auto hidden}.id-browse-row{align-items:center;gap:.35rem;height:100%;display:flex}.id-browse-item{border-radius:var(--radius-sm);border:1px solid var(--border);cursor:grab;flex-shrink:0;width:50px;height:50px;transition:border-color .15s;position:relative;overflow:hidden}.id-browse-item:hover,.id-browse-item:focus-visible{border-color:var(--accent)}.id-browse-item:active{cursor:grabbing}.id-browse-item img{object-fit:cover;width:100%;height:100%;display:block}.id-browse-empty{color:var(--text-subtle);white-space:nowrap;padding:.5rem;font-size:.65rem}.image-dock--pick{border-color:var(--accent);box-shadow:inset 0 1px 0 var(--accent)}.id-pickable{cursor:pointer}.id-pickable:hover{border-color:var(--accent);box-shadow:0 0 0 2px color-mix(in srgb, var(--accent) 30%, transparent)}.id-project-sep{color:var(--text-subtle);white-space:nowrap;border-left:1px solid var(--border);flex-shrink:0;margin-left:.2rem;padding:0 .3rem 0 .5rem;font-size:.55rem;font-weight:600}.undo-indicator{align-items:center;gap:2px;font-family:inherit;font-size:.65rem;display:inline-flex}.undo-indicator-btn{color:var(--text-muted);cursor:pointer;font-size:inherit;background:0 0;border:none;border-radius:3px;align-items:center;gap:2px;padding:0 3px;font-family:inherit;line-height:1;transition:color .15s,background .15s;display:inline-flex}.undo-indicator-btn:hover:not(:disabled){color:var(--accent);background:color-mix(in srgb, var(--accent) 12%, transparent)}.undo-indicator-btn:disabled{opacity:.3;cursor:default}.undo-indicator-arrow{font-size:.7rem}.undo-indicator-count{font-variant-numeric:tabular-nums}.undo-indicator-sep{color:var(--border);-webkit-user-select:none;user-select:none;font-size:.6rem}.canvas-minimap{z-index:11;border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow-md);opacity:0;pointer-events:none;cursor:pointer;background:#1a1a1abf;padding:4px;transition:opacity .2s;position:fixed;bottom:calc(152px + 1rem);left:1rem}.canvas-minimap--visible{opacity:1;pointer-events:auto}.canvas-minimap canvas{border-radius:calc(var(--radius) - 2px);display:block}@media (width<=768px){.canvas-minimap{bottom:calc(152px + .5rem);left:.5rem}}.cmd-palette-backdrop{z-index:1100;background:#00000073;animation:.12s ease-out cmd-fade-in;position:fixed;inset:0}.cmd-palette{background:var(--surface-solid,#fff);border:1px solid var(--border);z-index:1101;border-radius:12px;flex-direction:column;width:90vw;max-width:480px;max-height:420px;animation:.14s ease-out cmd-slide-in;display:flex;position:fixed;top:20%;left:50%;overflow:hidden;translate:-50%;box-shadow:0 16px 48px #0000004d,0 0 0 1px #0000000d}.cmd-palette-input{width:100%;color:var(--text);border:none;border-bottom:1px solid var(--border);background:0 0;outline:none;padding:14px 16px;font-family:inherit;font-size:1rem}.cmd-palette-input::placeholder{color:var(--text-muted)}.cmd-palette-list{flex:1;padding:6px 0;overflow-y:auto}.cmd-palette-item{cursor:pointer;color:var(--text);text-align:left;background:0 0;border:none;align-items:center;gap:10px;width:100%;padding:8px 16px;font-family:inherit;font-size:.875rem;display:flex}.cmd-palette-item:hover,.cmd-palette-item--active{background:color-mix(in srgb, var(--accent) 10%, transparent)}.cmd-palette-item--disabled{opacity:.4;pointer-events:none}.cmd-palette-category{text-transform:uppercase;letter-spacing:.04em;background:color-mix(in srgb, var(--border) 60%, transparent);color:var(--text-muted);border-radius:4px;flex-shrink:0;padding:2px 6px;font-size:.65rem;font-weight:600}.cmd-palette-label{white-space:nowrap;text-overflow:ellipsis;flex:1;overflow:hidden}.cmd-palette-shortcut{color:var(--text-muted);background:color-mix(in srgb, var(--border) 40%, transparent);border-radius:4px;flex-shrink:0;padding:2px 6px;font-family:SF Mono,Menlo,monospace;font-size:.7rem}.cmd-palette-empty{text-align:center;color:var(--text-muted);padding:24px 16px;font-size:.875rem}@keyframes cmd-fade-in{0%{opacity:0}to{opacity:1}}@keyframes cmd-slide-in{0%{opacity:0;translate:-50% -8px}to{opacity:1;translate:-50%}}.canvas-zoom-anchor{bottom:1rem;left:calc(var(--toolbar-w) + 1rem);z-index:11;position:absolute}.canvas-loading{height:100dvh;color:var(--text-muted);flex-direction:column;justify-content:center;align-items:center;gap:1rem;display:flex}.canvas-status--error{color:var(--danger);margin-bottom:.5rem}.canvas-header{border-bottom:1px solid var(--border);background:var(--surface);flex-shrink:0;align-items:center;gap:1rem;height:44px;padding:.5rem 1rem;display:flex}.canvas-breadcrumb{align-items:center;gap:.4rem;min-width:0;font-size:.82rem;display:flex}.canvas-breadcrumb-link{color:var(--text-muted);white-space:nowrap;text-decoration:none;transition:color .15s}.canvas-breadcrumb-link:hover{color:var(--text)}.canvas-breadcrumb-sep{color:var(--text-subtle);flex-shrink:0;font-size:.75rem}.canvas-project-name{color:var(--text);cursor:pointer;border-bottom:1px dashed #0000;font-size:.9rem;font-weight:600;transition:border-color .15s}.canvas-project-name:hover{border-color:var(--text-subtle)}.canvas-project-name-input{color:var(--text);background:var(--surface-raised);border:1px solid var(--accent);border-radius:var(--radius-sm);outline:none;width:180px;padding:.1rem .4rem;font-size:.9rem;font-weight:600}.canvas-meta{color:var(--text-subtle);font-size:.75rem}.canvas-header-actions{gap:.4rem;margin-left:auto;display:flex}.canvas-header-cost{color:var(--text-subtle);font-variant-numeric:tabular-nums;background:var(--surface-raised);border-radius:var(--radius);padding:.15rem .5rem;font-size:.72rem}.canvas-header-gen{color:var(--accent);align-items:center;gap:.4rem;font-size:.72rem;display:flex}.canvas-page{height:100dvh;max-height:100dvh;padding-bottom:28px;overflow:hidden}:root{--right-rail-w:260px;--toolbar-w:36px}.canvas-body{flex-direction:column;flex:1;min-height:0;display:flex;position:relative}.canvas-stage{width:100%;min-height:0;padding-left:var(--toolbar-w);padding-right:var(--right-rail-w);background-color:var(--bg);background-image:radial-gradient(circle, color-mix(in srgb, var(--ui-text) 10%, transparent) 1px, transparent 1px);overscroll-behavior:none;touch-action:none;background-size:24px 24px;flex:1;justify-content:center;align-items:center;display:flex;position:relative;overflow:hidden}.rail-versions-section{flex-direction:column;flex-shrink:0;min-height:120px;max-height:240px;display:flex}.rail-versions-header{color:var(--text-subtle);text-transform:uppercase;letter-spacing:.05em;flex-shrink:0;align-items:center;gap:.3rem;padding:.4rem .6rem .3rem;font-size:.65rem;font-weight:600;display:flex}.rail-versions-count{background:color-mix(in srgb, var(--text-subtle) 15%, transparent);color:var(--text-muted);border-radius:6px;padding:.05rem .35rem;font-size:.58rem;font-weight:500}.canvas-right-rail{width:var(--right-rail-w);background:var(--surface);background-color:var(--ui-bg,#1a1a1a);border-left:1px solid var(--border);z-index:20;flex-direction:column;display:flex;position:absolute;top:0;bottom:0;right:0;overflow:hidden}.canvas-right-rail>*+*{border-top:1px solid var(--border)}.canvas-clip-frame{border-radius:var(--radius);border:1px solid color-mix(in srgb, var(--border) 70%, var(--ui-text) 30%);will-change:transform;display:inline-flex;position:relative;box-shadow:0 8px 32px #0000002e,0 2px 8px #0000001f}.canvas-viewport-wrap{transform-origin:50%;line-height:0;display:inline-flex;position:relative}.canvas-cursor--marquee{cursor:crosshair}.canvas-cursor--move{cursor:default}.canvas-cursor--move:active{cursor:grabbing}.canvas-cursor--draw{cursor:crosshair}.canvas-cursor--filter{cursor:default}.canvas-cursor--mask,.canvas-cursor--match{cursor:crosshair}.canvas-el{background:var(--surface);-webkit-user-select:none;user-select:none;display:block}.canvas-el--hidden{visibility:hidden}.canvas-overlay{pointer-events:none;width:100%;height:100%;position:absolute;top:0;left:0}.canvas-overlay--mask{opacity:.4}.canvas-overlay--hidden{opacity:0;pointer-events:none}.btn-sm{padding:.25rem .6rem;font-size:.78rem}.first-gen-body{flex-direction:column;gap:1rem;display:flex}.first-gen-hint{color:var(--ui-text-muted);margin:0;font-size:.85rem}.first-gen-textarea{resize:vertical;min-height:72px;font-family:inherit}.first-gen-actions{justify-content:flex-end;gap:.5rem;display:flex}.canvas-gen-overlay{z-index:15;background:color-mix(in srgb, var(--surface) 90%, transparent);-webkit-backdrop-filter:blur(8px);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);align-items:center;gap:.5rem;padding:.4rem 1rem;display:flex;position:absolute;top:12px;left:50%;transform:translate(-50%)}.canvas-gen-shimmer{border:2px solid var(--border);border-top-color:var(--accent);border-radius:50%;width:16px;height:16px;animation:.8s linear infinite canvas-gen-spin}@keyframes canvas-gen-spin{to{transform:rotate(360deg)}}.canvas-gen-label{color:var(--text-muted);font-size:.72rem;font-weight:500}@media (width<=768px){.canvas-zoom-anchor{bottom:.5rem;left:.5rem}}:root{--ui-accent:#8b3a3a;--ui-accent-hover:#a04040;--ui-accent-glow:#8b3a3a40;--ui-accent-subtle:#8b3a3a14;--ui-accent-muted:#8b3a3a26;--bg:var(--ui-bg);--surface:var(--ui-surface);--surface-raised:var(--ui-surface-raised);--border:var(--ui-border);--accent:var(--ui-accent);--accent-hover:var(--ui-accent-hover);--text:var(--ui-text);--text-muted:var(--ui-text-muted);--text-subtle:var(--ui-text-subtle);--danger:var(--ui-danger);--success:var(--ui-success);--radius-sm:var(--ui-radius-sm);--radius:var(--ui-radius);--radius-lg:var(--ui-radius-lg);--font-sans:var(--ui-font-sans);--font-mono:var(--ui-font-mono);--shadow:var(--ui-shadow);--shadow-lg:var(--ui-shadow-lg)}.btn{border-radius:var(--ui-radius);white-space:nowrap;border:none;justify-content:center;align-items:center;gap:.5rem;padding:.5rem 1.25rem;font-size:.9rem;font-weight:500;transition:background .15s,opacity .15s;display:inline-flex}.btn-primary{background:var(--ui-accent);color:#fff}.btn-primary:hover{background:var(--ui-accent-hover)}.btn-ghost{color:var(--ui-text-muted);border:1px solid var(--ui-border);background:0 0}.btn-ghost:hover{color:var(--ui-text);border-color:var(--ui-text-muted)}.btn:disabled{opacity:.5;cursor:not-allowed}.card{background:var(--ui-surface);border:1px solid var(--ui-border);border-radius:var(--ui-radius-lg);padding:1.5rem}.input{background:var(--ui-surface-raised);border:1px solid var(--ui-border);border-radius:var(--ui-radius);color:var(--ui-text);outline:none;width:100%;padding:.5rem .75rem;font-size:.9rem;transition:border-color .15s}.input:focus{border-color:var(--ui-accent)}.input::placeholder{color:var(--ui-text-subtle)}.page{flex-direction:column;min-height:100dvh;display:flex}.drar-header-logo{color:var(--ui-text-muted);font-family:Teko,sans-serif;font-size:2rem;font-weight:500;line-height:1}.ui-login-title{letter-spacing:.08em;color:var(--ui-text);font-family:Teko,sans-serif;font-size:4rem;font-weight:600}
