: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:#7c6cf0;--ui-accent-hover:#6a5bd8;--ui-accent-glow:#7c6cf040;--ui-accent-subtle:#7c6cf014;--ui-accent-muted:#7c6cf026;--ui-danger:#f06068;--ui-danger-glow:#f0606833;--ui-success:#34d399;--ui-text:#e8e6f0;--ui-text-muted:#8a879c;--ui-text-subtle:#56536a;--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-ease:cubic-bezier(.4, 0, .2, 1);--ui-ease-spring:cubic-bezier(.34, 1.56, .64, 1)}*,: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-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);position:fixed;inset:0}.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}.ui-ctx-menu{z-index:1000;min-width:170px;-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);background:#121218d1;padding:4px;position:fixed}@keyframes ui-ctx-in{0%{opacity:0;transform:scale(.96)}to{opacity:1;transform:scale(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{-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);background:#12121899;border-radius:50%;justify-content:center;align-items:center;display:flex;position:fixed;top:50%;transform:translateY(-50%)}.ui-lightbox-nav:hover{border-color:var(--ui-border-strong);background:#121218d9;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}.ui-dp-panel{z-index:30;-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;background:#121218cc;flex-direction:column;min-width:120px;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{-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);z-index:100;animation:ui-modal-bg-in .2s var(--ui-ease);background:#00000080;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{-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;box-shadow:var(--ui-shadow-float);animation:ui-modal-in .25s var(--ui-ease-spring);background:#121218d9}@keyframes ui-modal-in{0%{opacity:0;transform:scale(.95)translateY(8px)}to{opacity:1;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;gap:.75rem;padding:1.25rem;display:flex}.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);-webkit-backdrop-filter:blur(var(--ui-glass-blur-heavy));backdrop-filter:blur(var(--ui-glass-blur-heavy));z-index:10;background:#08080cbf;justify-content:space-between;align-items:center;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}.ui-page-header-actions{align-items:center;gap:.5rem;display:flex}.ui-breadcrumb{align-items:center;gap:.4rem;font-size:.85rem;display:flex}.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);font-size:.9rem;font-weight:600}.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-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}.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}.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{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);background:#0c0c12d9;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}.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{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);background:#121218b3;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{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;background:#121218d1;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-sep{background:var(--ui-border);height:1px;margin:4px 8px}.ui-statusbar{border-top:1px solid var(--ui-border);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);background:#08080cbf;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;box-shadow:0 -1px #ffffff08}.ui-statusbar-left,.ui-statusbar-right,.ui-statusbar-center{align-items:center;gap:.6rem;min-width:0;display:flex}.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}.projects-main{flex-direction:column;gap:.75rem;min-height:calc(100vh - 52px);padding:1.25rem 1.5rem 2rem;transition:background .15s;display:flex}.projects-main.desktop-drop-active{background:color-mix(in srgb, var(--ui-accent) 4%, var(--ui-bg))}.breadcrumb-folder-name{color:var(--ui-text);font-size:.9rem;font-weight:600}.project-create-card{flex-direction:column;gap:1rem;max-width:520px;display:flex}.project-create-label{color:var(--ui-text-muted);text-transform:uppercase;letter-spacing:.05em;font-size:.8rem;font-weight:500}.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}.projects-error{color:var(--ui-danger);font-size:.875rem}.projects-empty{color:var(--ui-text-muted)}.projects-empty-state{color:var(--ui-text-muted);flex-direction:column;align-items:center;gap:1rem;padding:4rem 0;display:flex}.folder-create-row{align-items:center;gap:.5rem;display:flex}.folder-create-input{width:180px;padding:.3rem .6rem;font-size:.82rem}.ui-page-header-actions .ui-btn-danger-ghost:hover{color:var(--ui-danger);border-color:var(--ui-danger)}.text-muted{color:var(--ui-text-muted)}.text-sm{font-size:.8rem}.radial-menu{z-index:20;cursor:grab;position:absolute;top:50%;left:20px;transform:translateY(-50%)}.radial-menu:active{cursor:grabbing}.radial-menu:before{content:"";background:color-mix(in srgb, var(--bg) 40%, transparent);-webkit-backdrop-filter:blur(12px);z-index:-1;border-radius:50%;position:absolute;inset:-6px}.radial-ring{border:1.5px solid color-mix(in srgb, var(--border) 40%, transparent);pointer-events:none;border-radius:50%;position:absolute;transform:translate(-50%,-50%)}.radial-btn{border:1px solid var(--border);background:var(--surface);width:36px;height:36px;color:var(--text-muted);cursor:pointer;z-index:1;border-radius:50%;justify-content:center;align-items:center;transition:transform .28s cubic-bezier(.34,1.56,.64,1),background .2s,color .2s,border-color .2s,box-shadow .3s;display:flex;position:absolute;transform:translate(-50%,-50%)}.radial-btn:hover:not(.active){background:var(--surface-raised);color:var(--text);box-shadow:0 2px 8px color-mix(in srgb, var(--bg) 40%, transparent);transform:translate(-50%,-50%)scale(1.12)}.radial-btn.active{background:color-mix(in srgb, var(--accent) 18%, var(--surface));border-color:var(--accent);color:var(--accent);box-shadow:0 0 16px color-mix(in srgb, var(--accent) 20%, transparent);z-index:2;transform:translate(-50%,-50%)scale(1.35)}.radial-icon{justify-content:center;align-items:center;width:18px;height:18px;line-height:0;display:flex}.radial-icon svg{width:100%;height:100%}.lp-float{width:180px}.lp-list{flex-direction:column;display:flex}.lp-item{cursor:pointer;border-bottom:1px solid color-mix(in srgb, var(--border) 50%, transparent);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-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-actions{flex-shrink:0;gap:.1rem;display:flex}.lp-eye{color:var(--text-muted);cursor:pointer;background:0 0;border:none;padding:.1rem;font-size:.75rem;line-height:1}.lp-eye:hover{color:var(--text)}.lp-eye--off{color:var(--text-subtle)}.lp-delete{color:var(--text-subtle);cursor:pointer;background:0 0;border:none;padding:.1rem;font-size:.85rem;line-height:1}.lp-delete:hover{color:var(--danger)}.lp-footer{border-top:1px solid var(--border);padding:.3rem .5rem}.lp-add-btn{border:1px dashed var(--border);border-radius:var(--radius-sm);width:100%;color:var(--text-subtle);cursor:pointer;background:0 0;padding:.25rem;font-size:.68rem;transition:border-color .15s,color .15s}.lp-add-btn:hover{border-color:var(--accent);color:var(--accent)}.rt-tray{border:1px dashed var(--border);border-radius:var(--radius-sm);min-height:44px;padding:.35rem;transition:border-color .15s,background .15s}.rt-tray:hover,.rt-tray--empty:hover{border-color:var(--accent);background:color-mix(in srgb, var(--accent) 5%, transparent)}.rt-hint{height:100%;min-height:36px;color:var(--text-subtle);justify-content:center;align-items:center;font-size:.68rem;display:flex}.rt-list{flex-wrap:wrap;align-items:center;gap:.3rem;display:flex}.rt-item{border-radius:var(--radius-sm);border:1px solid var(--border);flex-shrink:0;width:40px;height:40px;position:relative;overflow:hidden}.rt-item img{object-fit:cover;width:100%;height:100%;display:block}.rt-item.rt-uploading img{opacity:.5}.rt-progress-track{background:#0006;height:3px;position:absolute;bottom:0;left:0;right:0}.rt-progress-bar{background:var(--accent);height:100%;transition:width .15s ease-out}.rt-remove{width:14px;height:14px;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:1px;right:1px}.rt-item:hover .rt-remove{opacity:1}.rt-plus{color:var(--text-subtle);padding:0 .35rem;font-size:1rem}.hp-backdrop{z-index:100;background:#0000008c;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.hp-modal{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);width:400px;max-height:70vh;box-shadow:var(--shadow-lg);flex-direction:column;display:flex}.hp-header{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;padding:.85rem 1rem;display:flex}.hp-title{color:var(--text);font-size:.9rem;font-weight:600}.hp-close{color:var(--text-muted);cursor:pointer;background:0 0;border:none;font-size:1.1rem;line-height:1}.hp-grid{grid-template-columns:repeat(3,1fr);gap:.5rem;padding:1rem;display:grid;overflow-y:auto}.hp-item{border:1px solid var(--border);border-radius:var(--radius-sm);cursor:pointer;background:0 0;padding:0;transition:border-color .15s;overflow:hidden}.hp-item:hover{border-color:var(--accent)}.hp-item img{aspect-ratio:1;object-fit:cover;width:100%;display:block}.hp-prompt{color:var(--text-subtle);white-space:nowrap;text-overflow:ellipsis;padding:.2rem .3rem;font-size:.62rem;display:block;overflow:hidden}.ip-panel{z-index:25;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);width:240px;box-shadow:var(--shadow-lg);flex-direction:column;gap:.4rem;padding:.6rem;display:flex;position:absolute}.ip-prompt-wrap{position:relative}.ip-prompt{resize:none;box-sizing:border-box;width:100%;min-height:44px;padding:.35rem 2rem .35rem .5rem;font-size:.8rem}.ip-mic-btn{width:24px;height:24px;color:var(--text-muted);cursor:pointer;background:0 0;border:none;border-radius:50%;justify-content:center;align-items:center;transition:color .15s,background .15s;display:flex;position:absolute;top:4px;right:4px}.ip-mic-btn:hover{background:var(--surface-raised);color:var(--text)}.ip-mic-btn--active{color:var(--danger,#ef4444);animation:1.2s ease-in-out infinite ip-pulse}@keyframes ip-pulse{0%,to{opacity:1}50%{opacity:.5}}.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:3px;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:10px;height:10px;transition:background .15s}.ip-slider-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}.ip-slider-row input[type=range]:hover::-webkit-slider-thumb{background:var(--accent)}.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:3px}.ip-slider-row span,.ip-slider-row .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 .ev-display:hover{background:color-mix(in srgb, var(--text) 10%, transparent);color:var(--text)}.ip-slider-row .ev-input,.ts-row .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-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)}.layer-overlay-svg{pointer-events:none;width:100%;height:100%;position:absolute;inset:0}.gen-shimmer-border{animation:1.5s ease-in-out infinite gen-border-pulse}.gen-shimmer-sweep{animation:2s ease-in-out infinite gen-sweep}@keyframes gen-border-pulse{0%,to{opacity:.4}50%{opacity:1}}@keyframes gen-sweep{0%{transform:translate(0%)}to{transform:translate(33.33%)}}.ts-panel{width:260px}.ts-title{color:var(--text-subtle);text-transform:uppercase;letter-spacing:.04em;font-size:.7rem;font-weight:600}.ts-body{flex-direction:column;gap:.4rem;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 .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 .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)}.em-backdrop{z-index:100;background:#0009;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.em-modal{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);width:320px;box-shadow:var(--shadow-lg)}.em-header{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;padding:1rem 1.25rem;display:flex}.em-title{color:var(--text);font-size:.9rem;font-weight:600}.em-close{color:var(--text-muted);cursor:pointer;background:0 0;border:none;padding:.2rem;font-size:1.2rem;line-height:1}.em-close:hover{color:var(--text)}.em-body{flex-direction:column;gap:.75rem;padding:1.25rem;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}.lib-slider{background:var(--surface);border-right:1px solid var(--border);z-index:50;flex-direction:column;width:260px;height:100dvh;transition:transform .25s;display:flex;position:fixed;top:0;left:0;transform:translate(-100%)}.lib-slider--open{transform:translate(0)}.lib-header{border-bottom:1px solid var(--border);flex-shrink:0;justify-content:space-between;align-items:center;padding:.85rem 1rem;display:flex}.lib-title{color:var(--text);font-size:.82rem;font-weight:600}.lib-close{color:var(--text-muted);cursor:pointer;background:0 0;border:none;font-size:1.1rem;line-height:1}.lib-close:hover{color:var(--text)}.lib-tabs{border-bottom:1px solid var(--border);flex-shrink:0;display:flex}.lib-tab{color:var(--text-muted);cursor:pointer;background:0 0;border:none;border-bottom:2px solid #0000;flex:1;padding:.45rem .5rem;font-size:.7rem;font-weight:500;transition:color .15s,border-color .15s}.lib-tab:hover{color:var(--text)}.lib-tab--active{color:var(--accent);border-bottom-color:var(--accent)}.lib-body{flex:1;padding:.75rem;overflow-y:auto}.lib-empty{color:var(--text-subtle);padding:1rem .5rem;font-size:.78rem}.lib-grid{grid-template-columns:1fr 1fr;gap:.5rem;display:grid}.lib-item{border-radius:var(--radius-sm);border:1px solid var(--border);cursor:grab;transition:border-color .15s;position:relative;overflow:hidden}.lib-item:hover{border-color:var(--accent)}.lib-item:active{cursor:grabbing}.lib-item img{aspect-ratio:1;object-fit:cover;width:100%;display:block}.lib-delete{width:18px;height:18px;color:var(--text-muted);cursor:pointer;opacity:0;background:#000000b3;border:none;border-radius:50%;justify-content:center;align-items:center;font-size:.7rem;line-height:1;transition:opacity .15s;display:flex;position:absolute;top:3px;right:3px}.lib-item:hover .lib-delete{opacity:1}.lib-delete:hover{color:var(--danger)}.lib-name{color:var(--text-subtle);white-space:nowrap;text-overflow:ellipsis;padding:.15rem .3rem;font-size:.58rem;display:block;overflow:hidden}.lib-project-group{margin-bottom:.5rem}.lib-project-header{cursor:pointer;width:100%;color:var(--text);border-radius:var(--radius-sm);background:0 0;border:none;align-items:center;gap:.4rem;padding:.35rem .25rem;font-size:.72rem;font-weight:600;transition:background .12s;display:flex}.lib-project-header:hover{background:var(--surface-raised)}.lib-chevron{color:var(--text-muted);font-size:.9rem;transition:transform .15s}.lib-chevron--open{transform:rotate(90deg)}.lib-project-name{text-align:left;flex:1}.lib-project-count{color:var(--text-subtle);font-size:.6rem;font-weight:400}.canvas-zoom-anchor{z-index:11;position:fixed;bottom:calc(28px + 1rem);left:1rem}.canvas-loading{height:100dvh;color:var(--text-muted);flex-direction:column;justify-content:center;align-items:center;gap:1rem;display:flex}.canvas-loading-text{font-size:.9rem}.canvas-spinner{border:2px solid var(--border);border-top-color:var(--accent);border-radius:50%;width:24px;height:24px;animation:.7s linear infinite spin;display:inline-block}.canvas-spinner--lg{border-width:3px;width:36px;height:36px}.canvas-spinner--sm{width:14px;height:14px}@keyframes spin{to{transform:rotate(360deg)}}.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-stage{background:var(--bg);overscroll-behavior:none;touch-action:none;justify-content:center;align-items:center;width:100%;height:calc(100dvh - 44px);display:flex;position:relative;overflow:hidden}.canvas-clip-frame{border-radius:var(--radius);border:1px solid var(--border);box-shadow:var(--shadow-lg);will-change:transform;display:inline-flex;position:relative}.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{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}.canvas-gen-toast{background:var(--danger);color:#fff;border-radius:var(--radius);z-index:40;box-shadow:var(--shadow);padding:.4rem 1rem;font-size:.8rem;position:absolute;bottom:16px;left:50%;transform:translate(-50%)}.btn-sm{padding:.25rem .6rem;font-size:.78rem}:root{--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;font-family:Teko,sans-serif;font-size:4rem;font-weight:600}
