.v2-asset-create-panel{position:fixed;background:var(--surface-node);border:1px solid var(--stroke-default);border-radius:var(--radius-18);padding:var(--space-16);box-shadow:var(--shadow-menu);width:520px;height:min(520px,calc(100vh - 40px));display:flex;flex-direction:column;gap:var(--space-16);z-index:1000;pointer-events:auto;font-family:inherit;color:var(--text-primary);backdrop-filter:blur(32px);-webkit-backdrop-filter:blur(32px)}.v2-asset-create-header{display:flex;align-items:center;gap:var(--space-2);font-size:var(--font-18);font-weight:600;color:var(--white-78)}.v2-asset-create-header-text{min-width:0}.v2-asset-create-tabs{display:flex;gap:var(--space-8)}.v2-asset-create-tab{flex:1;min-width:0;border:1px solid var(--stroke-default);background:var(--fill-input);color:var(--text-secondary);border-radius:var(--radius-8);padding:var(--space-10) var(--space-12);font-size:var(--font-13);cursor:pointer;transition:border-color .2s,background .2s,color .2s}.v2-asset-create-tab:hover{border-color:var(--stroke-strong);color:var(--text-primary)}.v2-asset-create-tab.active{background:var(--fill-hover-strong);border-color:var(--blue);color:var(--text-primary)}.v2-asset-create-body{display:flex;gap:var(--space-16);flex:1;min-height:0;overflow:hidden}.v2-asset-create-body--update{display:block}.v2-asset-create-left{display:flex;flex-direction:column;gap:var(--space-8)}.v2-asset-create-right{flex:1;display:flex;flex-direction:column;gap:var(--space-16)}.v2-asset-create-label{font-size:var(--font-13);color:var(--white)}.v2-asset-create-field{display:flex;flex-direction:column;gap:var(--space-8)}.v2-asset-create-error{color:var(--text-danger);font-size:var(--font-12);min-height:18px}.v2-asset-create-confirm{padding:var(--space-10) var(--space-12);border-radius:var(--radius-8);border:1px solid var(--stroke-default);background:var(--fill-hover-strong);color:var(--text-primary);font-size:var(--font-12)}.v2-asset-create-cover{width:220px;aspect-ratio:4/3;background:var(--bg-node);border-radius:var(--radius-8);border:1px solid var(--stroke-default);display:flex;align-items:center;justify-content:center;overflow:hidden;flex-shrink:0}.v2-asset-create-cover img{width:100%;height:100%;object-fit:cover;-webkit-user-drag:none;user-select:none;pointer-events:none}.v2-asset-create-fly{position:fixed;pointer-events:none;z-index:9999;border-radius:var(--radius-10);overflow:hidden;box-shadow:0 20px 50px var(--black-50);background:var(--bg-node)}.v2-asset-create-fly .v2-asset-icon,.v2-asset-create-fly img{width:100%;height:100%}.v2-asset-create-fly img{object-fit:cover;display:block}.v2-asset-create-field input,.v2-asset-create-field select,.v2-asset-create-select-trigger{width:100%;background:var(--fill-input);border:1px solid var(--stroke-07);border-radius:var(--radius-8);padding:10px 12px;color:var(--text-primary);font-size:var(--font-14);outline:0;transition:border-color .2s;box-shadow:inset 0 1px 2px var(--black-20);cursor:pointer;display:flex;align-items:center;justify-content:space-between}.v2-asset-create-field input{cursor:text}.v2-asset-create-field input:focus,.v2-asset-create-select-trigger.active,.v2-asset-create-select-trigger:focus{border-color:var(--blue);background:var(--fill-input-focus)}.v2-asset-select-dropdown{position:fixed;background:var(--surface-node);border:1px solid var(--stroke-default);border-radius:var(--radius-8);box-shadow:var(--shadow-menu);backdrop-filter:blur(32px);-webkit-backdrop-filter:blur(32px);z-index:2000;display:flex;flex-direction:column;padding:var(--space-6);min-width:160px;opacity:0;pointer-events:none;transform:translateY(-4px);transition:opacity .15s,transform .15s}.v2-asset-select-dropdown.show{opacity:1;pointer-events:auto;transform:translateY(0)}.v2-asset-select-item{padding:var(--space-8) var(--space-12);color:var(--text-primary);font-size:var(--font-13);border-radius:var(--radius-4);cursor:pointer;transition:background .15s}.v2-asset-select-item.selected,.v2-asset-select-item:hover{background:var(--fill-hover-strong)}.v2-asset-create-footer{flex:0 0 auto;display:flex;justify-content:flex-end;margin-top:auto;padding-top:var(--space-16);border-top:1px solid var(--stroke-07)}.v2-asset-create-btn{background:var(--blue);color:var(--white);border:none;border-radius:var(--radius-7);padding:var(--space-8) var(--space-16);font-size:var(--font-13);cursor:pointer;transition:opacity .2s}.v2-asset-create-btn:hover{opacity:.8}.v2-asset-create-btn:disabled{opacity:.6;cursor:default}.v2-asset-update-layout{display:grid;grid-template-columns:minmax(180px,220px) minmax(0,1fr);gap:var(--space-16);flex:1;min-height:0}.v2-asset-update-editor,.v2-asset-update-picker{min-height:0;display:flex;flex-direction:column}.v2-asset-update-editor .v2-asset-create-right{width:100%}.v2-asset-update-search{width:100%;background:var(--fill-input);border:1px solid var(--stroke-07);border-radius:var(--radius-8);padding:10px 12px;color:var(--text-primary);font-size:var(--font-13);outline:0}.v2-asset-update-search:focus{border-color:var(--blue);background:var(--fill-input-focus)}.v2-asset-update-list{margin-top:var(--space-10);display:flex;flex-direction:column;gap:var(--space-8);overflow:auto;min-height:220px;padding-right:2px}.v2-asset-update-item{width:100%;display:flex;gap:var(--space-10);align-items:center;border:1px solid var(--stroke-default);background:var(--fill-input);border-radius:var(--radius-10);padding:var(--space-10);color:var(--text-primary);cursor:pointer;text-align:left;transition:border-color .2s,background .2s,transform .2s}.v2-asset-update-item:hover{border-color:var(--stroke-strong);background:var(--fill-hover-strong)}.v2-asset-update-item.active{border-color:var(--blue);background:var(--fill-hover-strong)}.v2-asset-update-thumb{width:64px;aspect-ratio:4/3;flex-shrink:0;overflow:hidden;border-radius:var(--radius-8);border:1px solid var(--stroke-default);background:var(--bg-node);display:flex;align-items:center;justify-content:center}.v2-asset-update-thumb .v2-asset-icon,.v2-asset-update-thumb img{width:100%;height:100%}.v2-asset-update-thumb img{object-fit:cover;display:block}.v2-asset-update-info{min-width:0;display:flex;flex-direction:column;gap:4px}.v2-asset-update-info small,.v2-asset-update-info span{overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.v2-asset-update-info small{color:var(--text-muted);font-size:var(--font-12)}.v2-asset-update-empty{min-height:120px;border:1px dashed var(--stroke-default);border-radius:var(--radius-10);color:var(--text-muted);display:flex;align-items:center;justify-content:center;padding:var(--space-16);text-align:center}@media (max-width:900px){.v2-asset-create-panel{width:min(92vw,640px);height:min(82vh,520px);max-height:min(82vh,720px)}.v2-asset-update-layout{grid-template-columns:1fr}.v2-asset-update-list{min-height:140px;max-height:200px}}.v2-asset-sidebar-panel{position:absolute;left:calc(100% + 12px);top:50%;transform:translateY(-50%) translateX(-4px);width:300px;height:500px;background:var(--surface-node);border:1px solid var(--stroke-default);border-radius:var(--radius-18);box-shadow:var(--shadow-menu);backdrop-filter:blur(32px);-webkit-backdrop-filter:blur(32px);display:flex;flex-direction:column;z-index:1000;opacity:0;pointer-events:none;transition:opacity .2s,transform .2s;overflow:hidden}.v2-asset-sidebar-panel.show{opacity:1;pointer-events:auto;transform:translateY(-50%) translateX(0)}.v2-asset-sidebar-header{display:flex;align-items:center;justify-content:flex-start;padding:12px 14px 8px;border-bottom:1px solid var(--stroke-07)}.v2-asset-back{width:28px;height:28px;border-radius:var(--radius-7);border:1px solid transparent;background:0 0;color:var(--white-78);cursor:pointer;display:none;align-items:center;justify-content:center;font-size:18px;line-height:1;margin-right:var(--space-6)}.v2-asset-back.show{display:inline-flex}.v2-asset-back:hover{background:var(--stroke-07);border-color:var(--stroke-default)}.v2-asset-sidebar-title{flex:1;min-width:0;display:flex;align-items:center;gap:var(--space-2);text-align:left;font-size:var(--font-18);font-weight:600;color:var(--white-78)}.v2-asset-sidebar-title-text{min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.v2-asset-sidebar-tabs{display:flex;gap:var(--space-6);padding:var(--space-6) var(--space-10);border-bottom:1px solid var(--stroke-07)}.v2-asset-sidebar-tab{flex:1;text-align:center;padding:var(--space-8) 0;font-size:var(--font-13);color:var(--white-40);cursor:pointer;border:1px solid transparent;border-radius:var(--radius-7);transition:background .15s,border-color .15s,color .15s}.v2-asset-sidebar-tab:hover{color:var(--white);background:var(--stroke-07)}.v2-asset-sidebar-tab.active{color:var(--text-primary);background:var(--fill-hover-strong);border-color:var(--stroke-default)}.v2-asset-sidebar-content{flex:1;padding:var(--space-12);overflow-y:auto;display:block}.v2-asset-view-list{display:grid;grid-template-columns:repeat(2,1fr);gap:var(--space-12);align-content:start}.v2-asset-view-detail{display:flex;flex-direction:column;gap:var(--space-12)}.v2-asset-item{position:relative;background:var(--bg-node);border:1px solid var(--stroke-default);border-radius:var(--radius-8);overflow:hidden;cursor:pointer;transition:border-color .2s,background .2s}.v2-asset-item-delete{position:absolute;top:var(--space-6);right:var(--space-6);width:28px;height:28px;border-radius:var(--radius-7);border:1px solid var(--stroke-07);background:var(--black-60);color:var(--red);display:flex;align-items:center;justify-content:center;cursor:pointer;z-index:4;box-shadow:0 8px 18px var(--black-50);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);transition:border-color .15s,background .15s,color .15s,transform .15s}.v2-asset-item-delete:hover{background:var(--fill-danger-soft);border-color:var(--stroke-danger);color:var(--red);transform:scale(1.03)}.v2-asset-item-delete:active{transform:scale(.97)}.v2-asset-item-delete svg{width:14px;height:14px;display:block;margin:0;padding:0;position:static}.v2-asset-item-delete-confirm{position:absolute;inset:0;background:var(--black-60);display:flex;gap:var(--space-6);align-items:center;justify-content:center;z-index:3}.v2-asset-item-delete-confirm-btn{height:28px;padding:0 var(--space-10);font-size:var(--font-13);font-weight:500;border-radius:var(--radius-7);cursor:pointer;border:1px solid var(--stroke-default);background:var(--fill-hover-strong);color:var(--text-primary)}.v2-asset-item-delete-confirm-btn--danger{background:var(--btn-danger-bg);border-color:var(--stroke-danger);color:var(--text-on-danger)}.v2-asset-item-delete-confirm-btn--danger:hover{background:var(--btn-danger-bg-hover)}.v2-asset-item-delete-confirm-btn--neutral:hover{background:var(--fill-active)}.v2-asset-item:hover{border-color:var(--blue);background:var(--fill-hover-strong)}.v2-asset-item.is-new{animation:v2AssetNewPulse .65s cubic-bezier(.2,0,0,1)}@keyframes v2AssetNewPulse{0%{box-shadow:none;transform:translateZ(0)}35%{box-shadow:0 0 0 3px var(--blue),0 18px 40px var(--black-50)}100%{box-shadow:none}}.v2-asset-item-cover{width:100%;aspect-ratio:1/1;background:var(--bg-node);display:flex;align-items:stretch;justify-content:stretch}.v2-asset-item-cover img{width:100%;height:100%;object-fit:cover}.v2-asset-thumb-img{width:100%;height:100%;object-fit:cover;display:block}.v2-asset-cover-grid{width:100%;height:100%;display:grid;grid-template-columns:repeat(2,1fr);grid-template-rows:repeat(2,1fr)}.v2-asset-cover-cell{position:relative;overflow:hidden;background:var(--bg-node);display:flex;align-items:center;justify-content:center}.v2-asset-cover-cell img{width:100%;height:100%;object-fit:cover}.v2-asset-icon{width:100%;height:100%;display:flex;align-items:center;justify-content:center}.v2-asset-icon--text{background:linear-gradient(135deg,var(--black-80),var(--black-60))}.v2-asset-icon--audio{background:0 0}.v2-asset-icon--video{background:var(--bg-node);color:var(--white)}.v2-asset-icon--other{background:var(--bg-node)}.v2-asset-icon-svg{width:60%;height:60%}.v2-asset-detail-actions{display:flex;justify-content:flex-end}.v2-asset-detail-btn{height:32px;padding:0 var(--space-12);border-radius:var(--radius-7);border:1px solid var(--stroke-default);background:var(--fill-hover-strong);color:var(--text-primary);font-size:var(--font-13);cursor:pointer}.v2-asset-detail-btn:hover{border-color:var(--blue)}.v2-asset-subgrid{display:grid;grid-template-columns:repeat(2,1fr);gap:var(--space-12);align-content:start}.v2-asset-subitem{background:var(--bg-node);border:1px solid var(--stroke-default);border-radius:var(--radius-8);overflow:hidden;cursor:pointer;transition:border-color .2s,background .2s}.v2-asset-subitem:hover{border-color:var(--blue);background:var(--fill-hover-strong)}.v2-asset-subitem-thumb{width:100%;aspect-ratio:1/1;background:var(--bg-node);display:flex;align-items:stretch;justify-content:stretch;overflow:hidden}.v2-asset-subitem-thumb img{width:100%;height:100%;object-fit:cover}.v2-asset-subitem-name{padding:var(--space-6) var(--space-8);font-size:var(--font-12);color:var(--text-primary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;text-align:center}.v2-asset-item-name{padding:var(--space-6) var(--space-8);font-size:var(--font-12);color:var(--text-primary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;text-align:center}.v2-asset-item-name.is-editing{padding:var(--space-6) var(--space-8)}.v2-asset-item-name-input{width:100%;height:24px;border-radius:var(--radius-7);border:1px solid var(--stroke-default);background:var(--fill-hover-strong);color:var(--text-primary);font-size:var(--font-12);padding:0 var(--space-8);outline:0;box-sizing:border-box}.v2-asset-item-name-input:focus{border-color:var(--blue)}.v2-asset-empty{grid-column:1/-1;text-align:center;padding:var(--space-40) 0;color:var(--white-30);font-size:var(--font-16)}.v2-asset-volcano-subtabs{display:flex;gap:var(--space-6);padding:var(--space-6) var(--space-10);border-bottom:1px solid var(--stroke-07)}.v2-asset-volcano-subtab{flex:1;text-align:center;padding:var(--space-6) 0;font-size:var(--font-12);color:var(--white-40);cursor:pointer;border:1px solid transparent;border-radius:var(--radius-7);background:transparent;transition:background .15s,border-color .15s,color .15s}.v2-asset-volcano-subtab:hover{color:var(--white);background:var(--stroke-07)}.v2-asset-volcano-subtab.active{color:var(--text-primary);background:var(--fill-hover-strong);border-color:var(--stroke-default)}.v2-asset-sync-btn{position:absolute;bottom:var(--space-6);right:var(--space-6);padding:2px 8px;font-size:10px;border-radius:var(--radius-4);border:1px solid var(--stroke-default);background:var(--fill-hover-strong);color:var(--text-secondary);cursor:pointer;z-index:2;display:flex;align-items:center;gap:4px;transition:all .15s}.v2-asset-sync-btn:hover{border-color:var(--blue);color:var(--blue)}.v2-asset-sync-btn--syncing{opacity:.6;pointer-events:none}.v2-asset-sync-btn--active{border-color:var(--green);color:var(--green)}.v2-asset-sync-badge{position:absolute;top:4px;left:4px;width:8px;height:8px;border-radius:50%;z-index:3}.v2-asset-sync-badge--pending{background:var(--yellow);animation:v2AssetSyncPulse 1.5s infinite}.v2-asset-sync-badge--active{background:var(--green)}.v2-asset-sync-badge--failed{background:var(--red)}@keyframes v2AssetSyncPulse{0%,100%{opacity:1}50%{opacity:.4}}.v2-asset-toolbar-btn{width:28px;height:28px;display:flex;align-items:center;justify-content:center;border:1px solid var(--stroke-07);border-radius:6px;background:var(--bg-node);color:var(--white-78);cursor:pointer;margin-left:4px;flex-shrink:0}.v2-asset-toolbar-btn:hover{background:var(--fill-hover-strong);border-color:var(--stroke-strong);color:var(--white)}.v2-asset-toolbar-popup{position:fixed;background:var(--surface-node);border:1px solid var(--stroke-default);border-radius:var(--radius-8);box-shadow:var(--shadow-menu);backdrop-filter:blur(32px);-webkit-backdrop-filter:blur(32px);z-index:10001;padding:4px;min-width:120px}.v2-asset-toolbar-popup-item{padding:8px 12px;font-size:13px;color:var(--text-primary);cursor:pointer;border-radius:4px;white-space:nowrap}.v2-asset-toolbar-popup-item:hover{background:var(--fill-hover-strong)}.v2-asset-ctx-item{display:flex;align-items:center;justify-content:space-between;padding:6px 12px;cursor:pointer;color:var(--text-primary);font-size:13px;border-radius:4px}.v2-asset-ctx-item:hover{background:var(--fill-hover-strong)}.v2-asset-ctx-submenu{position:fixed;background:var(--surface-node);border:1px solid var(--stroke-default);border-radius:var(--radius-8);box-shadow:var(--shadow-menu);backdrop-filter:blur(32px);-webkit-backdrop-filter:blur(32px);z-index:10001;padding:4px;min-width:120px}.v2-asset-ctx-submenu .v2-menu-row{padding:6px 12px;font-size:13px;color:var(--text-primary);cursor:pointer;border-radius:4px}.v2-asset-ctx-submenu .v2-menu-row:hover{background:var(--fill-hover-strong)}.v2-asset-item-selected{border-color:var(--blue)!important;background:var(--fill-hover-strong)!important;box-shadow:0 0 0 2px var(--blue)!important}.v2-asset-item-selected:hover{border-color:var(--blue)!important;background:var(--fill-hover-strong)!important;box-shadow:0 0 0 2px var(--blue)!important}.v2-asset-group-btn{position:absolute;bottom:var(--space-8);left:var(--space-12);right:var(--space-12);padding:var(--space-10) 0;background:var(--blue);color:var(--white);border:none;border-radius:var(--radius-7);font-size:var(--font-13);cursor:pointer;z-index:10;transition:opacity .2s}.v2-asset-group-btn:hover{opacity:.85}
/* ---- Search Toolbar ---- */
.v2-asset-toolbar {
  display: flex;
  align-items: center;
  gap: var(--space-6);
  padding: var(--space-6) var(--space-10);
  border-bottom: 1px solid var(--stroke-07);
}
.v2-asset-search-status {
  flex: 0 0 auto;
  max-width: 150px;
  color: var(--text-muted);
  font-size: var(--font-12);
  line-height: 1;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.v2-asset-view-btn {
  width: 28px;
  height: 28px;
  display: flex;
  align-items: center;
  justify-content: center;
  border: 1px solid var(--stroke-07);
  border-radius: var(--radius-6);
  background: var(--bg-node);
  color: var(--white-78);
  cursor: pointer;
  flex-shrink: 0;
}
.v2-asset-view-btn.active {
  background: var(--blue);
  border-color: var(--blue);
  color: var(--white);
}
.v2-asset-view-btn:hover {
  border-color: var(--stroke-strong);
}
.v2-asset-sort-btn {
  width: 28px;
  height: 28px;
  display: flex;
  align-items: center;
  justify-content: center;
  border: 1px solid var(--stroke-07);
  border-radius: var(--radius-6);
  background: var(--bg-node);
  color: var(--white-78);
  cursor: pointer;
  flex-shrink: 0;
}
.v2-asset-sort-btn:hover {
  border-color: var(--stroke-strong);
}
.v2-asset-sort-popup {
  position: fixed;
  background: var(--surface-node);
  border: 1px solid var(--stroke-default);
  border-radius: var(--radius-8);
  box-shadow: var(--shadow-menu);
  z-index: 10001;
  padding: 4px;
  min-width: 120px;
}

/* ---- Folder directory view ---- */
.v2-asset-sidebar-panel.v2-asset-folder-list-mode .v2-asset-sidebar-content {
  display: flex;
  flex-direction: column;
  min-height: 0;
  overflow: hidden;
}
.v2-asset-sidebar-panel.v2-asset-folder-list-mode .v2-asset-view-list {
  display: grid !important;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: var(--space-12);
  align-content: start;
  min-height: 0;
  overflow-x: hidden;
  overflow-y: auto;
  padding-right: 4px;
  scrollbar-gutter: stable;
  overscroll-behavior: contain;
}
.v2-asset-subitem-assetid{font-size:9px;color:var(--white-40);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;padding:0 var(--space-6)}
/* Hide tabs and content until ensureTabs() finishes rewriting */
.v2-asset-sidebar-panel:not(.v2-asset-ready) .v2-asset-workspace-switcher,
.v2-asset-sidebar-panel:not(.v2-asset-ready) .v2-asset-sidebar-tabs,
.v2-asset-sidebar-panel:not(.v2-asset-ready) .v2-asset-sidebar-content { visibility:hidden }
.v2-asset-thumb-shell{position:relative;width:100%;height:100%;display:block}
.v2-asset-thumb-skeleton{position:absolute;inset:0;border-radius:inherit;background:linear-gradient(110deg,var(--bg-node) 8%,var(--fill-hover-strong) 18%,var(--bg-node) 33%);background-size:200% 100%;animation:v2AssetThumbShimmer 1.1s ease-in-out infinite}
.v2-asset-thumb-shell .v2-asset-thumb-img{opacity:0;transition:opacity .22s ease-out;width:100%;height:100%;object-fit:cover}
.v2-asset-thumb-shell.is-loaded .v2-asset-thumb-skeleton{opacity:0;transition:opacity .18s ease-out;pointer-events:none}
.v2-asset-thumb-shell.is-loaded .v2-asset-thumb-img{opacity:1}
@keyframes v2AssetThumbShimmer{0%{background-position:200% 0}100%{background-position:-200% 0}}
.v2-seedance-upload-modal-bg{position:fixed;inset:0;background:rgba(0,0,0,.55);z-index:1100;display:flex;align-items:center;justify-content:center;padding:var(--space-16)}
.v2-seedance-upload-modal{width:min(440px,calc(100vw - 32px));background:var(--surface-node);border:1px solid var(--stroke-default);border-radius:var(--radius-18);padding:var(--space-20);box-shadow:var(--shadow-menu);color:var(--text-primary);font-family:inherit}
.v2-seedance-upload-modal h3{margin:0 0 var(--space-8);font-size:var(--font-18);font-weight:600}
.v2-seedance-upload-modal-desc{margin:0 0 var(--space-16);font-size:var(--font-13);color:var(--text-secondary);line-height:1.45}
.v2-seedance-upload-field{display:flex;flex-direction:column;gap:var(--space-6);margin-bottom:var(--space-14)}
.v2-seedance-upload-field label{font-size:var(--font-12);color:var(--text-secondary)}
.v2-seedance-upload-field input,.v2-seedance-upload-field select{width:100%;box-sizing:border-box;border:1px solid var(--stroke-default);background:var(--fill-input);color:var(--text-primary);border-radius:var(--radius-8);padding:var(--space-10) var(--space-12);font-size:var(--font-13)}
.v2-seedance-upload-field input:focus,.v2-seedance-upload-field select:focus{outline:none;border-color:var(--accent-primary)}
.v2-seedance-upload-new-group{margin-top:var(--space-8)}
.v2-seedance-upload-footer{display:flex;justify-content:flex-end;gap:var(--space-10);margin-top:var(--space-8)}
.v2-seedance-upload-btn{border:1px solid var(--stroke-default);background:var(--fill-input);color:var(--text-primary);border-radius:var(--radius-8);padding:var(--space-10) var(--space-16);font-size:var(--font-13);cursor:pointer}
.v2-seedance-upload-btn:hover{background:var(--fill-hover-strong)}
.v2-seedance-upload-btn--primary{background:var(--accent-primary);border-color:transparent;color:#fff}
.v2-seedance-upload-btn--primary:hover{filter:brightness(1.08)}
.v2-seedance-upload-status{font-size:var(--font-12);color:var(--text-secondary);min-height:18px;margin-bottom:var(--space-8)}
.v2-asset-sync-btn--secondary{opacity:.92}

/* ---- Asset surfaces: bounded layer scale ---- */
:root {
  --z-asset-sidebar: 1200;
  --z-asset-create-panel: 1300;
  --z-asset-select-dropdown: 2000;
  --z-asset-upload-modal: 2200;
  --z-asset-menu: 10001;
}

/* Opening the library starts a focused asset-management task. Keep every
   canvas control below it and use a transparent shield to prevent accidental
   panning, node edits, minimap clicks, or header actions until the library is
   closed from its own sidebar button or by clicking the blank backdrop. */
body.is-asset-panel-open::before {
  content: '';
  position: fixed;
  inset: 0;
  z-index: calc(var(--z-asset-sidebar) - 1);
  background: rgba(0, 0, 0, 0.08);
  pointer-events: auto;
}

body.is-asset-panel-open .canvas-controls-floating,
body.is-asset-panel-open .minimap-wrapper {
  display: none !important;
  visibility: hidden !important;
  pointer-events: none !important;
  transition: none !important;
  animation: none !important;
}

body.is-asset-panel-open .canvas-controls-floating [data-tooltip]::before,
body.is-asset-panel-open .canvas-controls-floating [data-tooltip]::after {
  content: none !important;
  display: none !important;
  animation: none !important;
  transition: none !important;
}

body.is-asset-panel-open .header {
  visibility: hidden !important;
  pointer-events: none !important;
}

body.is-asset-panel-open .sidebar-floating {
  z-index: var(--z-asset-sidebar) !important;
}

body.is-asset-panel-open .sidebar-floating > :not(.v2-asset-sidebar-panel):not(#btnAssets) {
  pointer-events: none !important;
}

.asset-bulk-delete-overlay,
.asset-folder-merge-overlay {
  z-index: calc(var(--z-asset-menu) + 3);
}

.v2-asset-delete-selected-btn:hover {
  filter: brightness(1.08);
}

.v2-asset-sidebar-panel {
  z-index: var(--z-asset-sidebar);
  isolation: isolate;
}

.v2-asset-create-panel {
  z-index: var(--z-asset-create-panel);
}

/* Create-panel selects are portalled to <body>, so their menus must remain
   above the panel that owns the trigger. */
.v2-asset-select-dropdown {
  z-index: var(--z-asset-select-dropdown);
}

.v2-seedance-upload-modal-bg {
  z-index: var(--z-asset-upload-modal);
}

.v2-asset-toolbar-popup,
.v2-asset-sort-popup,
.v2-asset-ctx-submenu {
  z-index: var(--z-asset-menu);
}

.v2-asset-ctx-submenu--project {
  z-index: calc(var(--z-asset-menu) + 1);
}

/* ---- Asset sidebar: larger panel + 4-column grid ---- */
.v2-asset-sidebar-panel {
  width: min(760px, calc(100vw - 56px)) !important;
  /* Keep the panel below the 52px canvas header with a 12px visual gap. */
  top: calc(50% + var(--space-24));
  height: min(calc(100vh - var(--header-h) - var(--space-28)), 920px) !important;
  max-height: calc(100vh - var(--header-h) - var(--space-28)) !important;
  left: calc(100% + 16px);
  border-radius: 20px;
  display: flex;
  flex-direction: column;
  min-height: 0;
  /* Slide in only — avoid opacity fade that reveals canvas edges underneath. */
  transition: transform 0.2s ease !important;
}

.v2-asset-sidebar-panel.show {
  opacity: 1 !important;
  background: var(--bg-panel-solid, rgba(22, 24, 28, 0.98)) !important;
  backdrop-filter: none !important;
  -webkit-backdrop-filter: none !important;
}

body.is-asset-panel-open .v2-asset-sidebar-panel.show {
  isolation: isolate;
}

/* ---- Asset sidebar: closed state ---- */
.v2-asset-sidebar-panel:not(.show) {
  visibility: hidden !important;
}

.v2-asset-sidebar-panel:not(.show) .v2-asset-select-indicator,
.v2-asset-sidebar-panel:not(.show) .v2-asset-sync-btn,
.v2-asset-sidebar-panel:not(.show) .v2-asset-sync-badge,
.v2-asset-sidebar-panel:not(.show) .v2-asset-cache-badge,
.v2-asset-sidebar-panel:not(.show) .v2-asset-item-delete,
.v2-asset-sidebar-panel:not(.show) .v2-asset-sync-row {
  opacity: 0 !important;
  visibility: hidden !important;
  pointer-events: none !important;
  transition: none !important;
}

.v2-asset-sidebar-panel:not(.show) * {
  transition: none !important;
  animation: none !important;
}

body:not(.is-asset-panel-open) .v2-asset-select-indicator,
body:not(.is-asset-panel-open) .v2-asset-sync-btn,
body:not(.is-asset-panel-open) .v2-asset-sync-badge,
body:not(.is-asset-panel-open) .v2-asset-cache-badge {
  display: none !important;
}

.v2-asset-sidebar-header {
  padding: 16px 18px 10px;
}
.v2-asset-sidebar-title {
  font-size: 20px;
}
.v2-asset-workspace-switcher {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 8px;
  padding: 4px 18px 10px;
  border-bottom: 1px solid var(--stroke-07);
}
.v2-asset-workspace-tab {
  min-width: 0;
  border: 1px solid var(--stroke-default);
  border-radius: 10px;
  background: transparent;
  color: var(--text-secondary);
  padding: 9px 11px;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 2px;
  cursor: pointer;
  text-align: left;
  transition: background .16s ease, border-color .16s ease, color .16s ease;
}
.v2-asset-workspace-tab span {
  display: block;
  width: 100%;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  font-size: 13px;
  font-weight: 600;
}
.v2-asset-workspace-tab small {
  color: var(--text-muted);
  font-size: 10px;
}
.v2-asset-workspace-tab:hover {
  color: var(--text-primary);
  border-color: var(--stroke-strong);
  background: var(--stroke-07);
}
.v2-asset-workspace-tab.active {
  color: var(--text-primary);
  border-color: rgba(81, 142, 255, .55);
  background: rgba(55, 105, 200, .18);
}
.v2-asset-sidebar-tabs {
  display: grid;
  grid-template-columns: repeat(6, minmax(0, 1fr));
  overflow: hidden;
  scrollbar-width: none;
  -ms-overflow-style: none;
  padding: 8px 14px;
  gap: 8px;
}
.v2-asset-sidebar-tabs::-webkit-scrollbar {
  display: none;
}
.v2-asset-sidebar-tab {
  min-width: 0;
  padding: 8px 4px;
  font-size: 12px;
  white-space: nowrap;
}
.v2-asset-sidebar-content {
  padding: 16px 18px 20px;
  display: flex;
  flex-direction: column;
  min-height: 0;
  flex: 1;
  overflow-y: auto;
  overflow-x: hidden;
  scrollbar-gutter: stable;
}
.v2-asset-sidebar-panel.v2-asset-detail-mode .v2-asset-sidebar-content {
  overflow-y: hidden;
}
.v2-asset-view-detail {
  display: flex;
  flex-direction: column;
  min-height: 0;
  flex: 1;
  overflow-y: auto;
  overflow-x: hidden;
  scrollbar-gutter: stable;
  overscroll-behavior: contain;
}
.v2-asset-view-detail--virtualized {
  overflow: hidden;
}
.v2-asset-subgrid-scroller {
  flex: 1;
  min-height: 0;
  overflow-y: auto;
  overflow-x: hidden;
  position: relative;
  -webkit-overflow-scrolling: touch;
  contain: strict;
  scrollbar-gutter: stable;
  overscroll-behavior: contain;
}
.v2-asset-subgrid-spacer {
  width: 100%;
  pointer-events: none;
  background: transparent;
}
.v2-asset-list-spacer {
  width: 100%;
  pointer-events: none;
  background: transparent;
}
.v2-asset-sidebar-panel.show {
  pointer-events: auto;
}
.v2-asset-sidebar-panel.show * {
  pointer-events: auto;
}
.v2-asset-subgrid-spacer,
.v2-asset-list-spacer {
  pointer-events: none !important;
}
.v2-asset-subgrid--virtual {
  position: absolute;
  left: 0;
  right: 0;
  top: 0;
  will-change: transform;
}
.v2-asset-view-list {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 12px;
}
.v2-asset-view-list--virtual-host {
  display: flex;
  flex-direction: column;
  min-height: 0;
  flex: 1;
  overflow: hidden;
}
.v2-asset-list-scroller {
  flex: 1;
  min-height: 0;
  overflow-y: auto;
  overflow-x: hidden;
  position: relative;
  -webkit-overflow-scrolling: touch;
  contain: strict;
  scrollbar-gutter: stable;
  overscroll-behavior: contain;
}

.v2-asset-sidebar-content,
.v2-asset-view-detail,
.v2-asset-sidebar-panel.v2-asset-folder-list-mode .v2-asset-view-list,
.v2-asset-subgrid-scroller,
.v2-asset-list-scroller {
  scrollbar-width: thin;
  scrollbar-color: rgba(151, 161, 181, 0.62) rgba(255, 255, 255, 0.045);
}
.v2-asset-sidebar-content::-webkit-scrollbar,
.v2-asset-view-detail::-webkit-scrollbar,
.v2-asset-sidebar-panel.v2-asset-folder-list-mode .v2-asset-view-list::-webkit-scrollbar,
.v2-asset-subgrid-scroller::-webkit-scrollbar,
.v2-asset-list-scroller::-webkit-scrollbar {
  width: 10px;
}
.v2-asset-sidebar-content::-webkit-scrollbar-track,
.v2-asset-view-detail::-webkit-scrollbar-track,
.v2-asset-sidebar-panel.v2-asset-folder-list-mode .v2-asset-view-list::-webkit-scrollbar-track,
.v2-asset-subgrid-scroller::-webkit-scrollbar-track,
.v2-asset-list-scroller::-webkit-scrollbar-track {
  background: rgba(255, 255, 255, 0.035);
  border-radius: 999px;
}
.v2-asset-sidebar-content::-webkit-scrollbar-thumb,
.v2-asset-view-detail::-webkit-scrollbar-thumb,
.v2-asset-sidebar-panel.v2-asset-folder-list-mode .v2-asset-view-list::-webkit-scrollbar-thumb,
.v2-asset-subgrid-scroller::-webkit-scrollbar-thumb,
.v2-asset-list-scroller::-webkit-scrollbar-thumb {
  min-height: 44px;
  border: 2px solid transparent;
  border-radius: 999px;
  background: rgba(151, 161, 181, 0.62);
  background-clip: padding-box;
}
.v2-asset-sidebar-content::-webkit-scrollbar-thumb:hover,
.v2-asset-view-detail::-webkit-scrollbar-thumb:hover,
.v2-asset-sidebar-panel.v2-asset-folder-list-mode .v2-asset-view-list::-webkit-scrollbar-thumb:hover,
.v2-asset-subgrid-scroller::-webkit-scrollbar-thumb:hover,
.v2-asset-list-scroller::-webkit-scrollbar-thumb:hover {
  background: rgba(178, 190, 214, 0.86);
  background-clip: padding-box;
}
.v2-asset-view-list--virtual {
  position: absolute;
  left: 0;
  right: 0;
  top: 0;
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 12px;
  will-change: transform;
}
.v2-asset-item {
  contain: layout style;
  content-visibility: auto;
  contain-intrinsic-size: 168px 200px;
}
.v2-asset-subgrid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 12px;
}
.v2-asset-subitem {
  contain: layout style;
  content-visibility: auto;
  contain-intrinsic-size: 132px 164px;
}

/* Asset scrolling and thumbnail paint behavior belong to the asset surface. */
.v2-asset-sidebar-content:active .v2-asset-thumb-skeleton {
  animation: none !important;
}
.v2-asset-thumb-shell {
  will-change: auto;
}
.v2-asset-sidebar-content:active .v2-asset-thumb-img,
.v2-asset-list-scroller:active .v2-asset-thumb-img,
.v2-asset-subgrid-scroller:active .v2-asset-thumb-img {
  transition: none !important;
}
.v2-asset-view-list > .v2-asset-empty {
  pointer-events: none;
}
.v2-asset-item-cover,
.v2-asset-subitem-thumb {
  transform: translateZ(0);
  backface-visibility: hidden;
}

/* Selection is an outline below the media, never a tint above the preview. */
.v2-asset-item-selected,
.v2-asset-item-selected:hover {
  background: var(--bg-node) !important;
  border-color: rgba(81, 142, 255, 0.72) !important;
  box-shadow: 0 0 0 2px rgba(81, 142, 255, 0.58) !important;
}
.v2-asset-item-selected .v2-asset-item-cover,
.v2-asset-item-selected .v2-asset-subitem-thumb,
.v2-asset-item-selected img,
.v2-asset-item-selected video {
  opacity: 1 !important;
  filter: none !important;
}

.v2-asset-detail-actions {
  display: flex;
  gap: 8px;
  align-items: center;
}
.v2-asset-detail-btn--organize.active {
  color: #8be9d0;
  border-color: rgba(52, 211, 153, 0.5);
  background: rgba(16, 185, 129, 0.12);
}
.v2-asset-detail-organizer {
  display: flex;
  align-items: center;
  gap: 6px;
  flex-wrap: wrap;
  margin: 0 16px 10px;
  padding: 10px;
  border: 1px solid rgba(110, 231, 183, 0.2);
  border-radius: 12px;
  background: rgba(12, 20, 26, 0.86);
}
.v2-asset-detail-organizer[hidden] {
  display: none !important;
}
.v2-asset-organizer-hint {
  flex: 1 1 100%;
  margin-right: 0;
  color: rgba(255, 255, 255, 0.58);
  font-size: 12px;
  line-height: 1.45;
}
.v2-asset-organizer-command,
.v2-asset-organizer-category {
  appearance: none;
  border: 1px solid rgba(255, 255, 255, 0.12);
  border-radius: 9px;
  padding: 6px 9px;
  color: rgba(255, 255, 255, 0.78);
  background: rgba(255, 255, 255, 0.045);
  cursor: pointer;
}
.v2-asset-organizer-category:hover:not(:disabled),
.v2-asset-organizer-command:hover {
  color: #d8fff3;
  border-color: rgba(52, 211, 153, 0.5);
  background: rgba(16, 185, 129, 0.14);
}
.v2-asset-organizer-command--personal {
  color: #b9ccff;
  border-color: rgba(96, 143, 255, 0.42);
  background: rgba(57, 95, 190, 0.16);
}
.v2-asset-organizer-command--personal:hover:not(:disabled) {
  color: #e1e9ff;
  border-color: rgba(112, 159, 255, 0.72);
  background: rgba(57, 95, 190, 0.26);
}
.v2-asset-organizer-category:disabled,
.v2-asset-organizer-command:disabled {
  opacity: 0.34;
  cursor: default;
}
.v2-asset-subitem--organizing {
  cursor: crosshair !important;
}
.v2-asset-subitem--detail-selected {
  position: relative;
  outline: 2px solid #4f9cff !important;
  outline-offset: -2px;
  background: var(--bg-node, #1d1f22) !important;
}
.v2-asset-subitem--detail-selected::after {
  content: '✓';
  position: absolute;
  top: 7px;
  left: 7px;
  z-index: 5;
  display: grid;
  place-items: center;
  width: 22px;
  height: 22px;
  border-radius: 50%;
  color: #06111f;
  background: #65a9ff;
  box-shadow: 0 2px 10px rgba(0, 0, 0, 0.32);
}
.v2-asset-subitem--detail-selected img,
.v2-asset-subitem--detail-selected video {
  opacity: 1 !important;
  filter: none !important;
}
.v2-asset-detail-marquee {
  position: fixed;
  z-index: calc(var(--z-asset-menu) + 2);
  pointer-events: none;
  border: 1px solid rgba(101, 169, 255, 0.95);
  background: rgba(70, 130, 220, 0.14);
  box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.08);
}

.v2-asset-empty.v2-asset-load-status {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 10px;
  min-height: 44px;
  padding: 10px 12px;
  border: 1px solid var(--stroke-default);
  border-radius: var(--radius-8);
  background: var(--fill-input);
  color: var(--text-secondary);
  font-size: var(--font-12);
}

.v2-asset-load-retry {
  flex: 0 0 auto;
  border: 1px solid var(--stroke-default);
  border-radius: var(--radius-7);
  padding: 5px 10px;
  background: var(--fill-hover-strong);
  color: var(--text-primary);
  cursor: pointer;
}

.v2-asset-load-retry:hover {
  border-color: var(--blue);
}
.v2-asset-item {
  display: flex;
  flex-direction: column;
  min-width: 0;
}
.v2-asset-item-cover {
  flex-shrink: 0;
  aspect-ratio: 1 / 1;
  position: relative;
}
.v2-asset-item-name {
  flex-shrink: 0;
  padding: 8px 8px 6px;
  font-size: 12px;
  line-height: 1.35;
}
.v2-asset-item-name:not(.is-rename-disabled) {
  cursor: text;
}
.v2-asset-item-name.is-rename-disabled {
  cursor: default;
}
.v2-asset-subitem-name {
  padding: 6px 8px;
  font-size: 12px;
}
.v2-asset-sync-row {
  position: static !important;
  display: flex !important;
  flex-direction: row !important;
  flex-wrap: wrap !important;
  gap: 4px !important;
  padding: 6px 8px 8px !important;
  margin: 0 !important;
  background: transparent !important;
  pointer-events: auto !important;
  border-top: 1px solid var(--stroke-07) !important;
  opacity: 1 !important;
  transform: none !important;
}
.v2-asset-sync-row .v2-asset-sync-btn {
  position: static !important;
  flex: 1 1 0;
  width: auto;
  min-width: 0;
  max-width: none !important;
  height: auto !important;
  min-height: 20px;
  margin: 0;
  font-size: 9px !important;
  line-height: 1.2 !important;
  padding: 3px 2px !important;
  border-radius: 5px !important;
  white-space: nowrap;
  text-align: center;
  overflow: hidden;
  text-overflow: ellipsis;
  box-shadow: none !important;
  display: block;
}
.v2-asset-workspace-select {
  flex: 0 0 100%;
  width: 100%;
  min-width: 100%;
  height: 28px;
  padding: 3px 8px;
  border-radius: 5px;
  border: 1px solid var(--stroke-default);
  background: var(--fill-input);
  color: var(--text-secondary);
  font-size: 11px;
  cursor: pointer;
}
.v2-asset-workspace-select option {
  background: #202227;
  color: #f5f5f5;
}
.v2-asset-workspace-select:focus {
  border-color: var(--blue);
  outline: none;
}
.v2-asset-cache-badge {
  top: 8px !important;
  right: auto !important;
  left: 42px !important;
  bottom: auto !important;
  max-width: calc(100% - 92px) !important;
  font-size: 9px !important;
  padding: 2px 5px !important;
  line-height: 1.2 !important;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.v2-asset-refresh-btn {
  font-size: 12px;
  padding: 6px 12px;
}
#btnAssets.active {
  background: var(--indigo-35);
  border-color: var(--indigo-60);
  color: var(--white);
}
@media (max-width: 900px) {
  .v2-asset-sidebar-panel {
    width: min(620px, calc(100vw - 56px)) !important;
  }
  .v2-asset-view-list,
  .v2-asset-subgrid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
}
@media (max-width: 680px) {
  .v2-asset-sidebar-panel {
    width: min(480px, calc(100vw - 48px)) !important;
  }
  .v2-asset-view-list,
  .v2-asset-subgrid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}
