#exportToast:not(.shown){ display:none; }
.export-toast-spinner{
  width:16px; height:16px; flex-shrink:0; border-radius:50%;
  border:2px solid var(--ui-border); border-top-color:var(--ui-accent);
  animation:export-toast-spin .7s linear infinite;
}
@keyframes export-toast-spin{ to{ transform:rotate(360deg); } }

.app-toast-stack{
  position:fixed; right:20px; top:20px; z-index:var(--z-float);
  display:flex; flex-direction:column; gap:8px;
}
.app-toast{
  display:flex; align-items:center; gap:10px;
  background:var(--md-color-grey-white); border-radius:12px;
  padding:10px 14px; box-shadow:var(--shadow-soft);
  font-family:var(--font-sans); font-size:var(--text-base); color:var(--ui-text);
  transform:translateX(calc(100% + 24px)); transition:transform .3s ease, opacity .3s ease; opacity:0;
}
.app-toast.open{ transform:translateX(0); opacity:1; }
.app-toast-icon{ color:var(--md-teal-foreground-1-rest); font-size:var(--text-2xl); flex-shrink:0; }
.app-toast-label{ white-space:nowrap; }
.app-toast-close{ margin-left:auto; margin-right:-6px; width:24px; height:24px; flex-shrink:0; border:none; background:none; color:var(--ui-muted); cursor:pointer; border-radius:6px; }
.app-toast-close:hover{ background:var(--ui-surface-2); }
.app-toast-action{
  margin-left:auto; flex-shrink:0; border:none; background:none; color:var(--ui-accent); font-weight:var(--font-weight-semibold);
  font-family:var(--font-sans); font-size:var(--text-base); cursor:pointer; padding:2px 6px; border-radius:6px;
}
.app-toast-action:hover{ background:var(--ui-surface-2); }
.app-toast-action + .app-toast-close{ margin-left:0; }
.app-toast-rich{ align-items:flex-start; max-width:min(380px, calc(100vw - 40px)); box-sizing:border-box; }
.app-toast-body{ display:flex; flex-direction:column; gap:2px; min-width:0; }
.app-toast-title{ font-family:var(--font-display); }
.app-toast-rich .app-toast-label{ white-space:normal; font-size:var(--text-md); line-height:1.4; color:var(--ui-text-2); }
.app-toast-icon-accent{ color:var(--ui-accent); }
.app-toast-icon-error{ color:var(--ui-danger); }
.app-toast-rich .app-toast-action{ align-self:flex-start; margin:6px 0 0 -6px; }

#commentPopover{ position:fixed; z-index:var(--z-dropdown); width:300px; background:var(--md-color-grey-white); border:1px solid var(--ui-border); border-radius:10px; box-shadow:var(--shadow-soft); padding:10px; display:none; }
#commentPopover.open{ display:block; }
#commentPopover textarea, #commentPopover .comment-compose-input{ width:100%; min-height:60px; font-family:var(--font-sans); font-size:var(--text-md); border:1px solid var(--ui-border); border-radius:6px; padding:6px; resize:vertical; outline:none; box-sizing:border-box; }
#commentPopover .comment-compose-input{ max-height:160px; overflow-y:auto; white-space:pre-wrap; word-break:break-word; cursor:text; }
#commentPopover .comment-compose-input:empty:before{ content:attr(data-placeholder); color:var(--ui-muted); }
#commentPopover .popover-actions{ display:flex; justify-content:flex-end; gap:6px; margin-top:8px; }
#commentPopover .popover-avatar-row{ margin-bottom:8px; }
#commentPopover .popover-cancel-btn{ border:none; background:transparent; }
#commentPopover .popover-cancel-btn:hover{ background:var(--ui-surface-2); }

#templateLibraryOverlay{
  display:none; position:fixed; inset:0; background:rgba(20,24,32,0.45); z-index:var(--z-modal);
  align-items:center; justify-content:center;
}
#templateLibraryOverlay.open{ display:flex; }
@keyframes modal-rise-in{ from{ opacity:0; transform:translateY(100vh); } to{ opacity:1; transform:translateY(0); } }
@keyframes modal-fall-out{ from{ opacity:1; transform:translateY(0); } to{ opacity:0; transform:translateY(100vh); } }
#templateLibraryOverlay.closing #templateLibraryModal,
#imageLibraryOverlay.closing #imageLibraryModal{ animation:modal-fall-out .45s cubic-bezier(.2,.8,.2,1); }
#templateLibraryModal{
  width:920px; max-width:90vw; height:600px; max-height:85vh;
  background:var(--md-color-grey-white); border-radius:16px; box-shadow:var(--shadow-modal);
  display:flex; flex-direction:column; overflow:hidden;
  animation:modal-rise-in .32s cubic-bezier(.2,.8,.2,1);
}
.tpl-lib-header{
  display:flex; align-items:center; justify-content:space-between;
  padding:18px 20px; 
  font-size:var(--text-2xl); font-weight:var(--font-weight-semibold); color:var(--ui-text);
}
.tpl-lib-body{ flex:1; display:flex; min-height:0; }
.tpl-lib-sidebar{
  width:240px; flex-shrink:0; border-right:1px solid var(--ui-border);
  overflow-y:auto; padding:10px;
}
.tpl-lib-item{
  display:flex; align-items:center; justify-content:space-between; gap:10px; padding:9px 10px; border-radius:8px;
  cursor:pointer; font-size:var(--text-base); color:var(--ui-text);
}
.tpl-lib-item:hover{ background:var(--ui-surface-2); }
.tpl-lib-group-label{
  padding:14px 12px 6px; font-size:var(--text-sm); font-weight:var(--font-weight-semibold);
  color:var(--md-color-grey-black); text-transform:uppercase; letter-spacing:.04em;
}
.tpl-lib-item.active{ background:#0040DE0F; color:var(--ui-accent); font-weight:var(--font-weight-semibold); }
.tpl-lib-item-add{
  flex-shrink:0; width:24px; height:24px; border-radius:6px; border:none; background:none;
  color:var(--ui-muted); display:flex; align-items:center; justify-content:center; font-size:var(--text-md);
  cursor:pointer;
}
.tpl-lib-item-add:hover{ background:var(--ui-surface-2); color:var(--ui-text); }
.tpl-lib-item .tpl-lib-item-add{ margin:-4px 0; }
.tpl-lib-footer{ padding:14px 20px; display:flex; justify-content:flex-end; gap:8px; flex-shrink:0; }
.tpl-lib-footer.hidden{ display:none; }
#imageLibraryModal .tpl-lib-header{ border-bottom:1px solid var(--ui-border); }
#imgLibFooter{
  position:absolute; left:0; right:0; bottom:0; z-index:2;
  background:var(--md-color-grey-white); border-radius:0 0 16px 0;
  transform:translateY(100%); opacity:0; pointer-events:none;
  transition:transform .25s cubic-bezier(.2,.8,.2,1), opacity .2s ease;
}
#imgLibFooter.visible{ transform:translateY(0); opacity:1; pointer-events:auto; }
#imageLibraryModal{ position:relative; }
.img-lib-main{ position:relative; }
#imageLibraryModal.has-selection #imgLibGridWrap{ padding-bottom:78px; }
.img-lib-search-bar{
  position:sticky; top:-20px; z-index:1; margin:-20px -20px 12px; padding:0 20px 12px;
  background:var(--md-color-grey-white);
}
.img-lib-search-bar .search-box input{ width:100%; }
.tpl-lib-lang-pills{ display:flex; align-items:center; gap:6px; flex-wrap:wrap; margin-top:10px; }
.tpl-lib-lang-pills.hidden{ display:none; }
.tpl-lib-lang-pills button{
  border:1px solid var(--ui-border); background:var(--md-color-grey-white); color:var(--ui-text); cursor:pointer;
  font-family:var(--font-regular); font-size:var(--text-sm); padding:5px 12px; border-radius:999px;
  transition:background .12s, border-color .12s;
}
.tpl-lib-lang-pills button:hover{ border-color:var(--ui-border-strong); background:var(--ui-surface-2); }
.tpl-lib-lang-pills button.active{ background:var(--ui-pill-active); border-color:var(--ui-pill-active); color:var(--ui-pill-active-fg); }
.library-thumb{ position:relative; }
.library-thumb-rank{
  position:absolute; top:6px; right:6px; min-width:20px; height:20px; padding:0 5px;
  display:flex; align-items:center; justify-content:center; box-sizing:border-box;
  border-radius:10px; background:var(--ui-accent); color:var(--md-color-grey-white);
  font-size:var(--text-xs); font-weight:var(--font-weight-semibold);
}
.library-thumb.selected .thumb-preview{ outline:2px solid var(--ui-accent); outline-offset:2px; }
#imgLibGrid .component-thumb:hover .thumb-preview{ border-color:var(--ui-border); box-shadow:none; }
#imgLibGrid .thumb-preview{ height:140px; }
.recap-title-input{
  flex:1; min-width:0; border:1px solid transparent; border-radius:8px; padding:4px 8px; margin:-4px -8px;
  background:transparent; font-family:inherit; font-size:inherit; font-weight:inherit; color:var(--ui-text);
}
.recap-title-input:hover{ border-color:var(--ui-border); }
.recap-title-input:focus{ outline:none; border-color:var(--ui-accent); background:var(--md-color-grey-white); }
.recap-field-host{ display:inline-flex; min-width:180px; max-width:100%; }
.recap-field-host .icon-select{ width:100%; }
.deck-history-row-block .recap-field-host{ display:block; width:100%; }
.recap-kw-box{ flex-wrap:wrap; }
.recap-people{ display:block; width:100%; }
.recap-people-list{ display:block; margin-top:6px; }
.recap-people-list .share-modal-member-row{ display:flex; }

.tpl-lib-main{ flex:1; min-width:0; display:flex; flex-direction:column; min-height:0; }
.tpl-lib-main .tpl-lib-header{ flex-shrink:0; }
.tpl-lib-cards{ display:grid; grid-template-columns:repeat(auto-fill, minmax(260px, 1fr)); gap:16px; align-content:start; }
.tpl-lib-cards.hidden{ display:none; }
.tpl-lib-card{
  display:flex; flex-direction:column; gap:8px; padding:10px; border-radius:12px;
  border:1px solid var(--ui-border); background:var(--md-color-grey-white); cursor:pointer;
  transition:box-shadow .15s, border-color .15s;
}
.tpl-lib-card:hover{ border-color:var(--ui-accent); box-shadow:var(--shadow-sm); }
.tpl-lib-card-frame{
  width:100%; aspect-ratio:16/9; border-radius:8px; overflow:hidden; position:relative;
  background:var(--frame-bg); border:1px solid var(--ui-border);
}
.tpl-lib-card-foot{ display:flex; align-items:center; justify-content:space-between; gap:8px; }
.tpl-lib-card-name{ font-size:var(--text-base); color:var(--ui-text); min-width:0; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.tpl-lib-card-use{
  flex-shrink:0; border:none; background:none; border-radius:6px; padding:4px 8px;
  font-family:var(--font-sans); font-size:var(--text-sm); color:var(--ui-muted); cursor:pointer;
}
.tpl-lib-card-use:hover{ background:var(--ui-surface-2); color:var(--ui-text); }
.tpl-lib-card-count{ flex-shrink:0; font-size:var(--text-sm); color:var(--ui-muted); }
.tpl-lib-card{ position:relative; }
.tpl-lib-card:hover .layout-thumb-menu-btn, .tpl-lib-card .layout-thumb-menu-btn.open{ opacity:1; }
.tpl-lib-empty{
  grid-column:1 / -1; display:flex; flex-direction:column; align-items:center; gap:8px;
  padding:32px 16px; text-align:center; color:var(--ui-muted); font-size:var(--text-md);
}
.tpl-lib-empty img{ width:140px; height:auto; display:block; }
.tpl-lib-detail{ display:flex; flex-direction:column; align-items:flex-start; gap:0; margin-top:-20px; }
.tpl-lib-preview-title-row{ padding-top:6px; }
.tpl-lib-preview-title-row h3{ margin:0; font-size:var(--text-2xl); font-weight:var(--font-weight-semibold); color:var(--md-color-grey-black); min-width:0; }
.tpl-lib-detail .tpl-lib-preview-info{ margin-top:4px; }
.tpl-lib-detail-actions{ display:flex; align-items:center; gap:8px; margin-top:24px; }
.tpl-lib-detail-actions .btn.hidden{ display:none; }
.tpl-lib-color-picker .section-color-swatch{ width:20px; height:20px; outline-offset:2px; }
.tpl-lib-deck-detail, #deckTemplatePreviewBody{ display:flex; flex-direction:column; align-items:stretch; gap:0; }
.tpl-lib-deck-detail{ margin-top:-20px; }
.tpl-lib-deck-detail.hidden{ display:none; }
.tpl-lib-deck-detail .tpl-lib-preview-title-row, #deckTemplatePreviewBody .tpl-lib-preview-title-row{ max-width:none; gap:16px; }
.tpl-lib-deck-detail .tpl-lib-preview-info, #deckTemplatePreviewBody .tpl-lib-preview-info{ margin-top:4px; max-width:none; }
.tpl-lib-deck-detail .dtpl-carousel, #deckTemplatePreviewBody .dtpl-carousel{ margin-top:24px; }
.dtpl-preview-tags{ display:flex; align-items:center; gap:6px; flex:0 0 auto; }
.tpl-lib-version-pick.hidden{ display:none; }
.tpl-lib-version-pick .slide-picker-card.selected .layout-thumb-frame{ outline:2px solid var(--ui-accent); outline-offset:1px; border-radius:6px; }
.tpl-lib-version-pick .slide-picker-label{ font-size:var(--text-md); color:var(--ui-text); text-align:center; }
.tpl-lib-version-pick .slide-picker-sub{ font-size:var(--text-xs); color:var(--ui-muted); }
.tpl-lib-detail .tpl-lib-preview-frame{ margin-top:24px; }
.tpl-lib-detail.hidden{ display:none; }
.tpl-lib-detail-back{
  display:flex; align-items:center; gap:6px; border:none; background:none; padding:0;
  font-family:var(--font-sans); font-size:var(--text-base); font-weight:var(--font-weight-regular);
  color:var(--ui-muted); cursor:pointer;
}
.tpl-lib-detail-back:hover{ color:var(--ui-text); }
.tpl-lib-detail-back.hidden{ display:none; }
.tpl-lib-sidebar-title{
  padding:8px 10px 10px; font-size:var(--text-2xl); font-weight:var(--font-weight-semibold);
  color:var(--md-color-grey-black);
}
#tplLibHeaderTitle{ color:var(--md-color-grey-black); }
.tpl-lib-preview{
  flex:1; min-width:0; display:flex; flex-direction:column; align-items:flex-start;
  justify-content:center; gap:12px; padding:32px; overflow-y:auto;
}
.tpl-lib-preview-frame{
  width:100%; max-width:560px; aspect-ratio:16/9; border:1px solid var(--ui-border);
  border-radius:10px; overflow:hidden; position:relative; background:var(--frame-bg);
  box-shadow:var(--shadow-soft);
}
.tpl-lib-preview-info{ text-align:left; max-width:560px; width:100%; }
.tpl-lib-preview-info h3{ margin:0; font-size:var(--text-2xl); color:var(--ui-text); }
.tpl-lib-preview-info p{ margin:0; font-size:var(--text-base); line-height:1.5; color:var(--md-neutral-foreground-3-rest); }
.tpl-lib-color-picker{ display:flex; gap:14px; }
.tpl-lib-color-picker.hidden{ display:none; }
.tpl-lib-preview-title-row{ display:flex; align-items:center; justify-content:space-between; width:100%; max-width:560px; }

#imageLibraryOverlay{
  display:none; position:fixed; inset:0; background:rgba(20,24,32,0.45); z-index:var(--z-modal);
  align-items:center; justify-content:center;
}
#imageLibraryOverlay.open{ display:flex; }
#imageLibraryOverlay.above-modal{ z-index:var(--z-modal-2); }
#imageLibraryModal{
  width:760px; max-width:90vw; height:560px; max-height:85vh;
  background:var(--md-color-grey-white); border-radius:16px; box-shadow:var(--shadow-modal);
  display:flex; flex-direction:column; overflow:hidden;
  animation:modal-rise-in .32s cubic-bezier(.2,.8,.2,1);
}
.tpl-lib-grid-wrap{ flex:1; min-width:0; padding:20px; margin-top: -10px; overflow-y:auto; }
#imgLibGridWrap{ scrollbar-width:none; }
#imgLibGridWrap::-webkit-scrollbar{ display:none; }

.modal-shell,
#nameModalModal, #importDeckModal, #thumbnailModalModal, #templateShareModal,
#imageCardEditModal, #avatarModalModal, #personalInfoModalModal, #shareModalModal,
#deckTemplatePreviewModal, .admin-modal{ max-height:86vh; }
.tpl-lib-grid-wrap, .image-card-edit-body, .data-table-modal-body, .modal-scroll-body{
  flex:1 1 auto; min-height:0; position:relative;
  --scroll-fade-inset:20px;
}
.tpl-lib-grid-wrap.has-scroll, .image-card-edit-body.has-scroll,
.data-table-modal-body.has-scroll, .modal-scroll-body.has-scroll{ overflow-y:auto; }
#nameModalModal .tpl-lib-grid-wrap.has-scroll,
#importDeckModal .tpl-lib-grid-wrap.has-scroll,
#thumbnailModalModal .tpl-lib-grid-wrap.has-scroll,
#templateShareModal .tpl-lib-grid-wrap.has-scroll,
#shareModalModal .tpl-lib-grid-wrap.has-scroll,
#avatarModalModal .tpl-lib-grid-wrap.has-scroll,
#personalInfoModalModal .tpl-lib-grid-wrap.has-scroll{ overflow-y:auto; overflow-x:hidden; }
.tpl-lib-grid-wrap.has-scroll:not(.at-scroll-end)::after,
.image-card-edit-body.has-scroll:not(.at-scroll-end)::after,
.data-table-modal-body.has-scroll:not(.at-scroll-end)::after,
.modal-scroll-body.has-scroll:not(.at-scroll-end)::after{
  content:''; position:sticky; display:block; left:0; right:0;
  bottom:calc(-1 * var(--scroll-fade-inset, 0px));
  height:48px; flex:0 0 48px; margin-top:calc(-48px - var(--scroll-fade-gap, 0px)); pointer-events:none;
  background:linear-gradient(to top, var(--md-color-grey-white) 0%, rgba(255,255,255,0.92) 45%, rgba(255,255,255,0) 100%);
}
html[data-ui-theme="dark"] .tpl-lib-grid-wrap.has-scroll:not(.at-scroll-end)::after,
html[data-ui-theme="dark"] .image-card-edit-body.has-scroll:not(.at-scroll-end)::after,
html[data-ui-theme="dark"] .data-table-modal-body.has-scroll:not(.at-scroll-end)::after,
html[data-ui-theme="dark"] .modal-scroll-body.has-scroll:not(.at-scroll-end)::after{
  background:linear-gradient(to top, var(--md-color-grey-white) 0%, rgba(26,31,39,0.92) 45%, rgba(26,31,39,0) 100%);
}

.tpl-lib-grid-wrap, .image-card-edit-body, .data-table-modal-body,
.modal-scroll-body, .admin-modal-body{ scrollbar-width:none; }
.tpl-lib-grid-wrap::-webkit-scrollbar, .image-card-edit-body::-webkit-scrollbar,
.data-table-modal-body::-webkit-scrollbar, .modal-scroll-body::-webkit-scrollbar,
.admin-modal-body::-webkit-scrollbar{ display:none; }

.admin-modal-body{ position:relative; --scroll-fade-inset:20px; }
.admin-modal-body.has-scroll:not(.at-scroll-end)::after{
  content:''; position:sticky; display:block; left:0; right:0;
  bottom:calc(-1 * var(--scroll-fade-inset, 0px));
  height:48px; flex:0 0 48px; margin-top:calc(-48px - var(--scroll-fade-gap, 0px)); pointer-events:none;
  background:linear-gradient(to top, var(--md-color-grey-white) 0%, rgba(255,255,255,0.92) 45%, rgba(255,255,255,0) 100%);
}
html[data-ui-theme="dark"] .admin-modal-body.has-scroll:not(.at-scroll-end)::after{
  background:linear-gradient(to top, var(--md-color-grey-white) 0%, rgba(26,31,39,0.92) 45%, rgba(26,31,39,0) 100%);
}

#fileImportOverlay{
  display:none; position:fixed; inset:0; background:rgba(20,24,32,0.45); z-index:var(--z-modal);
  align-items:center; justify-content:center;
}
#fileImportOverlay.open{ display:flex; }
#fileImportOverlay.closing #fileImportModal{ animation:modal-fall-out .45s cubic-bezier(.2,.8,.2,1); }
#fileImportModal{
  width:440px; max-width:90vw; background:var(--md-color-grey-white); border-radius:16px;
  box-shadow:var(--shadow-modal); display:flex; flex-direction:column;
  overflow:visible;
  animation:modal-rise-in .32s cubic-bezier(.2,.8,.2,1);
}
#dataTableModalOverlay{
  display:none; position:fixed; inset:0; background:rgba(20,24,32,0.45); z-index:var(--z-modal);
  align-items:center; justify-content:center;
}
#dataTableModalOverlay.open{ display:flex; }
#dataTableModalOverlay.closing #dataTableModal{ animation:modal-fall-out .45s cubic-bezier(.2,.8,.2,1); }
#dataTableModal{
  width:920px; max-width:92vw; max-height:86vh; background:var(--md-color-grey-white); border-radius:16px;
  box-shadow:var(--shadow-modal); display:flex; flex-direction:column; overflow:hidden;
  animation:modal-rise-in .32s cubic-bezier(.2,.8,.2,1);
}
.data-table-modal-toolbar{ display:flex; flex-direction:column; gap:8px; padding:16px 20px 0; flex-shrink:0; }
.data-table-modal-error{ background:var(--ui-danger-soft); color:var(--ui-danger-hover); border:1px solid #F3C6C2; border-radius:8px; padding:8px 12px; font-size:var(--text-md); line-height:1.4; }
#imageCardEditModalOverlay{
  display:none; position:fixed; inset:0; background:rgba(20,24,32,0.45); z-index:var(--z-modal);
  align-items:center; justify-content:center;
}
#imageCardEditModalOverlay.open{ display:flex; }
#imageCardEditModalOverlay.closing #imageCardEditModal{ animation:modal-fall-out .45s cubic-bezier(.2,.8,.2,1); }
#imageCardEditModal{
  width:540px; max-width:92vw; background:var(--md-color-grey-white); border-radius:16px;
  box-shadow:var(--shadow-modal); display:flex; flex-direction:column; overflow:hidden;
  animation:modal-rise-in .32s cubic-bezier(.2,.8,.2,1);
}
.image-card-edit-body{ padding:20px; display:flex; flex-direction:column; gap:16px; }
.image-card-edit-body .image-card-drop-zone{ height:220px; }
.image-card-edit-body .image-card-drop-zone.drag-over{ border-color:var(--ui-accent); background:var(--ui-surface-2); }
.image-card-crop-stage{
  position:relative; width:100%; padding:28px; box-sizing:border-box; display:flex; justify-content:center;
  overflow:hidden; border-radius:var(--md-radius-160,16px); background:var(--md-neutral-background-2-rest);
  cursor:move; user-select:none;
}
.image-card-crop-stage:active{ cursor:grabbing; }
.image-card-edit-preview{ position:relative; flex-shrink:0; border-radius:12px; overflow:visible; }
.image-card-edit-preview .image-card-edit-preview-img{
  width:100%; height:100%; object-fit:cover; display:block; pointer-events:none;
  transform:translate(var(--edit-pan-x,0px), var(--edit-pan-y,0px)) scale(var(--edit-scale,1));
  transform-origin:center center;
}
.image-card-edit-preview.is-svg .image-card-edit-preview-img,
.image-card-edit-preview.is-contain .image-card-edit-preview-img{ object-fit:contain; }
.image-card-edit-preview .image-card-crop-ghost{
  pointer-events:none; cursor:inherit;
  transform:translate(-50%,-50%) translate(var(--edit-pan-x,0px), var(--edit-pan-y,0px)) scale(var(--edit-scale,1));
}
.image-card-edit-preview .image-card-crop-mask{ box-shadow:0 0 0 200vmax rgba(15,18,23,0.5); border:1px solid rgba(255,255,255,0.7); box-sizing:border-box; }
.image-card-edit-slider{ display:flex; flex-direction:column; gap:6px; align-self:center; max-width:100%; box-sizing:border-box; }
.image-card-edit-actions{ align-self:center; max-width:100%; box-sizing:border-box; display:flex; gap:10px; }
.image-card-edit-actions:empty{ display:none; }
.image-card-edit-actions > .image-card-edit-footer-left{ display:flex; gap:10px; width:100%; }
.image-card-edit-actions .btn{ flex:1; min-width:0; display:inline-flex; align-items:center; justify-content:center; gap:6px; }
.image-card-edit-slider span{ font-size:var(--text-md); font-weight:var(--font-weight-semibold); color:var(--md-neutral-foreground-3-rest); }
.data-table-modal-error.hidden{ display:none; }
.data-table-modal-body{ flex:1; min-height:0; overflow-y:auto; padding:16px 20px 20px; }
.data-table-modal-wrap{ display:flex; align-items:stretch; overflow-x:auto; }
.data-table-modal-table{ flex:1 0 auto; min-width:100%; border-collapse:collapse; border:1px solid var(--ui-border); }
.data-table-modal-table th, .data-table-modal-table td{ border:1px solid var(--ui-border); }
.data-table-modal-table thead th{ background:var(--md-neutral-background-2-rest); }
.data-table-modal-table th{ text-align:left; font-size:var(--text-sm); font-weight:var(--font-weight-semibold); text-transform:uppercase; letter-spacing:.03em; color:var(--md-neutral-foreground-3-rest); padding:6px 10px; white-space:nowrap; }
.data-table-modal-table td{ padding:6px; }
.data-table-modal-table tbody td:not(.data-table-modal-row-head){ padding:0; }
.data-table-modal-table input{ width:100%; box-sizing:border-box; padding:6px 8px; border:none; background:none; outline:none; font-size:var(--text-base); font-family:var(--font-sans); }
.data-table-modal-table input:focus{ outline:2px solid var(--ui-accent); outline-offset:-1px; border-radius:0; }
.data-table-modal-table th input.data-table-modal-col-label{ font-weight:var(--font-weight-bold); color:var(--md-neutral-foreground-1-rest); text-transform:none; letter-spacing:0; font-size:var(--text-base); }
.data-table-modal-format-row th{ padding:4px 10px; }
.data-table-modal-format-cell{ cursor:pointer; user-select:none; }
.data-table-modal-format-cell:hover{ background:var(--md-neutral-background-3-rest); }
.data-table-modal-format-icon{
  width:32px; height:32px; margin:0 auto; display:flex; align-items:center; justify-content:center;
  font-size:var(--text-lg); color:var(--ui-muted);
}
.data-table-modal-row-head{
  width:32px; text-align:center; font-size:var(--text-md); color:var(--md-neutral-foreground-3-rest);
  background:var(--md-neutral-background-2-rest); cursor:pointer; user-select:none;
}
.data-table-modal-row-head:hover{ background:var(--md-neutral-background-3-rest); }
.data-table-modal-col-head-cell{ width:32px; }
.data-table-modal-axis-menu{
  display:none; position:fixed; z-index:var(--z-modal-menu); flex-direction:column; min-width:170px;
  background:var(--md-color-grey-white); border:1px solid var(--ui-border); border-radius:10px; box-shadow:var(--shadow-soft); padding:6px; gap:2px;
}
.data-table-modal-axis-menu.open{ display:flex; }
.data-table-modal-axis-menu button{
  display:flex; align-items:center; gap:8px; border:none; background:none; text-align:left;
  padding:7px 9px; border-radius:6px; font-family:var(--font-sans); font-size:var(--text-base); color:var(--ui-text); cursor:pointer;
}
.data-table-modal-axis-menu button:hover{ background:var(--md-neutral-background-2-rest); }
.data-table-modal-axis-menu button:disabled{ opacity:.4; cursor:default; }
.data-table-modal-axis-menu button:disabled:hover{ background:none; }
.data-table-modal-add-row-wrap{ display:flex; margin-top:8px; }
.data-table-modal-add-row{
  display:flex; align-items:center; justify-content:center; gap:6px; width:100%;
  height:36px; border:1px dashed var(--ui-border); border-radius:6px; background:none; color:var(--ui-muted);
  cursor:pointer; font-size:var(--text-base);
}
.data-table-modal-add-row:hover{ border-color:var(--ui-accent); color:var(--ui-accent); background:rgba(0,64,222,0.06); }
.data-table-modal-add-col-zone{ flex:0 0 36px; width:36px; padding-left:6px; display:flex; position:sticky; right:0; background:var(--md-color-grey-white); }
.data-table-modal-wrap:has(.data-table-modal-add-col-zone) .data-table-modal-table{ min-width:calc(100% - 42px); }
.data-table-modal-add-col-zone button{
  flex:1; width:100%; height:100%; display:flex; align-items:center; justify-content:center;
  border:1px dashed var(--ui-border); border-radius:6px; background:none; color:var(--ui-muted); cursor:pointer; font-size:var(--text-base);
}
.data-table-modal-add-col-zone button:hover{ border-color:var(--ui-accent); color:var(--ui-accent); background:rgba(0,64,222,0.06); }
.data-table-modal-table td.data-table-modal-cell-col-selected, .data-table-modal-table th.data-table-modal-cell-col-selected{ background:rgba(0,64,222,0.08); }
.data-table-modal-table tr.data-table-modal-row-selected td{ background:rgba(0,64,222,0.08); }
.data-table-modal-row-head.data-table-modal-row-head-selected{ background:rgba(0,64,222,0.16); color:var(--ui-accent); }
.data-table-modal-format-row th.data-table-modal-cell-col-selected{ background:none; }
.data-table-modal-format-row th.data-table-modal-cell-col-selected .data-table-modal-format-icon i{ color:var(--ui-accent); }
.data-table-modal-table .data-table-modal-cell-col-selected{ border-left:2px solid var(--ui-accent); border-right:2px solid var(--ui-accent); }
.data-table-modal-format-row th.data-table-modal-cell-col-selected{ border-top:2px solid var(--ui-accent); }
.data-table-modal-table tbody tr:last-child td.data-table-modal-cell-col-selected{ border-bottom:2px solid var(--ui-accent); }
.data-table-modal-table tr.data-table-modal-row-selected td{ border-top:2px solid var(--ui-accent); border-bottom:2px solid var(--ui-accent); }
.data-table-modal-table tr.data-table-modal-row-selected td.data-table-modal-row-head{ border-left:2px solid var(--ui-accent); }
.data-table-modal-table tr.data-table-modal-row-selected td:last-child{ border-right:2px solid var(--ui-accent); }
.data-table-modal-floating-toolbar{
  display:none; position:fixed; z-index:var(--z-modal-toolbar); align-items:center; gap:2px; padding:4px;
  background:var(--md-color-grey-white); border:1px solid var(--ui-border); border-radius:8px; box-shadow:var(--shadow-soft);
}
.data-table-modal-floating-toolbar.open{ display:flex; }
.data-table-modal-floating-toolbar .icon-btn{ width:28px; height:28px; }
#nameModalOverlay, #importDeckModalOverlay, #thumbnailModalOverlay, #templateShareOverlay,
#deckTemplatePreviewOverlay{
  display:none; position:fixed; inset:0; background:rgba(20,24,32,0.45); z-index:var(--z-modal);
  align-items:center; justify-content:center;
}
#nameModalOverlay.open, #importDeckModalOverlay.open, #thumbnailModalOverlay.open, #templateShareOverlay.open,
#deckTemplatePreviewOverlay.open{ display:flex; }
#nameModalOverlay.closing #nameModalModal{ animation:modal-fall-out .45s cubic-bezier(.2,.8,.2,1); }
#importDeckModalOverlay.closing #importDeckModal{ animation:modal-fall-out .45s cubic-bezier(.2,.8,.2,1); }
#thumbnailModalOverlay.closing #thumbnailModalModal{ animation:modal-fall-out .45s cubic-bezier(.2,.8,.2,1); }
#nameModalModal, #importDeckModal, #thumbnailModalModal, #templateShareModal, #deckTemplatePreviewModal{
  width:440px; max-width:90vw; background:var(--md-color-grey-white); border-radius:16px;
  box-shadow:var(--shadow-modal); display:flex; flex-direction:column; overflow:hidden;
  animation:modal-rise-in .32s cubic-bezier(.2,.8,.2,1);
}
#nameModalModal .tpl-lib-grid-wrap, #importDeckModal .tpl-lib-grid-wrap, #thumbnailModalModal .tpl-lib-grid-wrap, #templateShareModal .tpl-lib-grid-wrap{ padding:0px 20px 20px 20px; overflow:visible; }
#nameModalModal .tpl-lib-grid-wrap{ display:flex; flex-direction:column; gap:16px; }
.template-share-list{ display:flex; flex-direction:column; gap:2px; max-height:320px; overflow-y:auto; margin-top:8px; }
.template-share-row{ display:flex; align-items:center; gap:10px; padding:6px 4px; border-radius:6px; cursor:pointer; font-family:var(--font-sans); font-size:var(--text-base); color:var(--ui-text); }
.template-share-row:hover{ background:var(--md-neutral-background-2-rest); }
.deck-style-body{ display:flex; flex-direction:column; gap:16px; }
.deck-style-theme-row{ display:flex; flex-direction:column; gap:8px; font-size:var(--text-base); color:var(--ui-text); font-family:"lexend Regular"; }
.deck-style-preview{ display:flex; flex-direction:column; gap:8px; border-radius:10px; }
.deck-style-preview.drag-over .deck-style-frame{ border-color:var(--ui-accent); box-shadow:0 0 0 3px var(--ui-accent-soft, rgba(0,64,222,0.18)); }
.deck-style-frame{ width:100%; }
.deck-style-empty{ position:absolute; inset:0; display:flex; align-items:center; justify-content:center; color:var(--ui-muted); font-size:var(--text-sm); }
.deck-style-actions{ display:flex; justify-content:space-between; gap:12px; font-size:var(--text-sm); }
.deck-style-reset{ border:none; background:none; padding:0; color:var(--ui-muted); font-family:var(--font-sans); font-size:var(--text-sm); cursor:pointer; text-decoration:underline; }
.deck-style-reset:hover{ color:var(--ui-text); }
.deck-style-overlay{
  position:absolute; inset:0; display:flex; align-items:center; justify-content:center;
  background:rgba(15,18,23,0.45); opacity:0; transition:opacity .15s ease; border-radius:inherit;
}
.deck-style-frame:hover .deck-style-overlay, .deck-style-overlay:focus-within{ opacity:1; }
.deck-style-overlay .btn i{ margin-right:6px; }
.deck-thumb-actions{ display:flex; gap:10px; }

.crop-modal-overlay{
  display:none; position:fixed; inset:0; background:rgba(20,24,32,0.45); z-index:var(--z-modal);
  align-items:center; justify-content:center; padding:16px;
}
.crop-modal-overlay.open{ display:flex; }
.crop-modal-overlay.closing .crop-modal{ animation:modal-fall-out .45s cubic-bezier(.2,.8,.2,1); }
.crop-modal{
  width:420px; max-width:100%; max-height:86vh; background:var(--md-color-grey-white);
  border-radius:16px; box-shadow:var(--shadow-modal); display:flex; flex-direction:column;
  overflow:hidden; animation:modal-rise-in .32s cubic-bezier(.2,.8,.2,1);
}
.crop-modal .image-card-edit-body{ overflow:auto; align-items:center; }
.crop-modal .image-card-drop-zone{
  position:relative; width:100%; flex-shrink:0; box-sizing:border-box;
  border:2px dashed var(--md-neutral-stroke-1-rest); border-radius:var(--md-radius-160,16px);
  background:transparent; overflow:hidden; display:flex; align-items:center; justify-content:center;
}
.crop-modal .image-card-drop-zone.drag-over{ border-color:var(--ui-accent); background:var(--ui-surface-2); }
.crop-modal .image-card-drop-hint{
  display:flex; flex-direction:column; align-items:center; gap:8px; text-align:center; padding:16px;
  color:var(--md-neutral-foreground-3-rest); font-family:var(--font-sans);
}
.crop-modal .image-card-file-link, .crop-modal .image-card-lib-link{ color:var(--md-brand-foreground-1-rest); text-decoration:none; cursor:pointer; }
.crop-modal .image-card-edit-body .image-card-panel-dropzone{ height:150px; }
.crop-modal .image-card-edit-body .image-card-panel-dropzone .image-card-drop-icon{ width:38px; height:38px; }
.crop-modal .image-card-edit-body .image-card-panel-dropzone .image-card-drop-hint{ font-size:var(--text-md); }
.crop-modal .image-card-source-panes, .crop-modal .image-card-source-seg{ width:100%; }

.image-card-source-seg{
  position:relative; display:flex; gap:4px; border-radius:8px; padding:3px;
  background:var(--md-neutral-background-2-rest); box-sizing:border-box;
}
.image-card-source-seg button{
  position:relative; z-index:1; flex:1; border:none; border-radius:5px; background:transparent;
  color:var(--ui-muted); font-family:var(--font-sans); font-size:var(--text-md); padding:5px 9px; cursor:pointer;
}
.image-card-source-seg.no-thumb .cols-group-thumb{ display:none; }
.image-card-source-seg.no-thumb button.active{
  background:var(--md-neutral-background-1-rest); color:var(--ui-text);
  box-shadow:0 2px 2px rgba(var(--shadow-rgb), 0.16);
}
.crop-modal input[type="range"]{ accent-color:var(--ui-accent); width:100%; }
.crop-modal .image-card-crop-box{
  overflow:hidden; cursor:move; user-select:none;
  border:1px solid var(--ui-border); background:var(--md-neutral-background-2-rest);
}
.crop-modal .image-card-crop-box:active{ cursor:grabbing; }
.crop-modal .image-card-crop-box.is-fitted .image-card-edit-preview-img{
  position:absolute; left:50%; top:50%; max-width:none; object-fit:fill;
  transform:translate(-50%,-50%) translate(var(--edit-pan-x,0px), var(--edit-pan-y,0px)) scale(var(--edit-scale,1));
}
.image-card-edit-preview.is-round{ border-radius:50%; overflow:hidden; }
.image-card-edit-preview.is-round .image-card-crop-mask{ border-radius:50%; }
.crop-modal .image-card-edit-actions .btn{ white-space:nowrap; font-size:var(--text-md); padding:7px 8px; }
.deck-style-body input[type="range"]{ accent-color:var(--ui-accent); width:100%; }
#importDeckModal.slide-picker-active{ width:640px; }
.slide-picker-toolbar{ display:flex; align-items:center; justify-content:space-between; gap:10px; margin-bottom:14px; margin-top: -10px; }
.slide-picker-toolbar-info{ display:flex; flex-direction:column; gap:2px; }
.slide-picker-name{ font-size:var(--text-lg); font-weight:var(--font-weight-semibold); color:var(--ui-text); }
.slide-picker-name:empty{ display:none; }
.slide-picker-count{ font-size:var(--text-md); color:var(--ui-muted); }
.slide-picker-toolbar-actions{ display:flex; align-items:center; gap:8px; }
.decks-selection-clear{
  display:flex; align-items:center; gap:8px; padding:9px 14px; border:1px solid var(--ui-border);
  background:var(--md-color-grey-white); border-radius:9px; font-family:var(--font-sans); font-size:var(--text-base);
  color:var(--ui-text); cursor:pointer; white-space:nowrap;
}
.decks-selection-clear:hover{ background:var(--ui-surface-2); }
.slide-picker-grid{
  display:grid; grid-template-columns:repeat(3, minmax(0, 1fr)); gap:14px 10px;
  max-height:360px; overflow-y:auto; padding:2px;
}
.slide-picker-card{ display:flex; flex-direction:column; align-items:center; gap:6px; cursor:pointer; }
.slide-picker-thumb-wrap{ position:relative; width:100%; }
.slide-picker-thumb-wrap .slide-picker-checkbox{ position:absolute; top:6px; left:6px; z-index:2; }
.slide-picker-num{ font-size:var(--text-md); color:var(--ui-muted); }
.import-deck-filecard{
  display:flex; align-items:center; gap:10px; padding:12px; border:1px solid var(--ui-border);
  border-radius:8px; background:fff;
}
.import-deck-filecard i{ color:var(--ui-muted); font-size:var(--text-4xl);text-align: center; width: 32px; flex-shrink:0; }
.import-deck-filecard-info{ flex:1; min-width:0; display:flex; flex-direction:column; gap:2px; }
.import-deck-filecard-name{ font-size:var(--text-base); font-weight:var(--font-weight-semibold); color:var(--ui-text); overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.import-deck-filecard-count{ font-size:var(--text-md); color:var(--ui-muted); }
.thumbnail-modal-preview-img{ display:block; max-width:100%; max-height:160px; margin:0 auto 10px; border-radius:8px; object-fit:contain; }
#shareModalOverlay{
  display:none; position:fixed; inset:0; background:rgba(20,24,32,0.45); z-index:var(--z-modal-2);
  align-items:center; justify-content:center;
}
#shareModalOverlay.open{ display:flex; }
#shareModalOverlay.closing #shareModalModal{ animation:modal-fall-out .45s cubic-bezier(.2,.8,.2,1); }
#shareModalModal{
  width:440px; max-width:90vw; background:var(--md-color-grey-white); border-radius:16px;
  box-shadow:var(--shadow-modal); display:flex; flex-direction:column; overflow:hidden;
  animation:modal-rise-in .32s cubic-bezier(.2,.8,.2,1);
}
#shareModalModal .tpl-lib-grid-wrap{ padding:4px 20px 20px; overflow:visible; }
.share-modal-header-titles{ display:flex; flex-direction:column; gap:2px; min-width:0; }
.share-modal-deck-name{ font-size:var(--text-md); font-weight:var(--font-weight-regular); color:var(--md-neutral-foreground-3-rest); overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.prop-field:has(> .icon-select){ position:relative; display:block; }
.prop-field:has(> .icon-select) > span:first-child{
  position:absolute; left:9px; top:0; font-size:var(--text-xs); line-height:1; transform:translateY(-50%);
  background:var(--md-color-grey-white); padding:0 3px; margin-left:-3px; z-index:1; pointer-events:none;
}
.prop-field:has(> .icon-select) > .icon-select{ width:100%; }
.team-select-trigger{ width:100%; justify-content:flex-start; gap:8px; padding:9px; box-sizing:border-box; }
.team-select-trigger-label{ flex:1; min-width:0; text-align:left; font-size:var(--text-base); color:var(--ui-text); overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.team-select .icon-select-menu{ width:100%; min-width:0; box-sizing:border-box; }
.team-select-dot{ width:10px; height:10px; border-radius:50%; flex-shrink:0; background:var(--dot-color); }
.team-select-dot-empty{ background:var(--md-neutral-stroke-1-rest); }
.team-select .icon-select-option{ gap:8px; }
.share-modal-invite-row{ display:flex; gap:8px; align-items:flex-start; }
.share-modal-email-field{ flex:1; min-width:0; position:relative; }
.share-modal-role-field{ width:120px; flex-shrink:0; }
.share-invite-box{
  display:flex; flex-wrap:wrap; align-items:center; gap:6px; min-height:42px; padding:4px 8px; box-sizing:border-box;
  border:1px solid var(--ui-border); border-radius:8px; background:var(--md-color-grey-white); cursor:text;
}
.share-invite-box:focus-within{ border-color:var(--ui-accent); }
.prop-field .share-invite-box input{ border:0; border-radius:0; height:auto; padding:4px 2px; background:none; }
.prop-field .share-invite-box input:focus{ border:0; outline:none; }
.prop-field:has(> .share-invite-box) > .share-invite-box{ padding:11px 8px 5px; }
.prop-field:has(> .share-invite-box){ position:relative; display:block; }
.prop-field:has(> .share-invite-box) > span:first-child{
  position:absolute; left:9px; top:0; font-size:var(--text-xs); line-height:1; transform:translateY(-50%);
  background:var(--md-color-grey-white); padding:0 3px; margin-left:-3px; z-index:1; pointer-events:none;
}
.admin-kw-chip .share-chip-label{ margin-left:0; }
.template-settings-body{ display:flex; flex-direction:column; gap:20px; }
.template-settings-body .share-modal-members{ margin-top:10px; }
.template-settings-row{ display:grid; grid-auto-flow:column; grid-auto-columns:1fr; gap:12px; align-items:start; }
.template-settings-row > .prop-field{ min-width:0; }
.template-settings-row:not(:has(> .prop-field:not([hidden]))){ display:none; }
.prop-field:has(> .template-select-host > .icon-select){ position:relative; display:block; }
.prop-field:has(> .template-select-host > .icon-select) > span:first-child{
  position:absolute; left:9px; top:0; font-size:var(--text-xs); line-height:1; transform:translateY(-50%);
  background:var(--md-color-grey-white); padding:0 3px; margin-left:-3px; z-index:1; pointer-events:none;
}
.prop-field:has(> .template-select-host > .icon-select) > .template-select-host{ width:100%; }
.prop-field[hidden]{ display:none !important; }
.share-invite-box input{ flex:1 1 140px; min-width:0; height:32px; border:none; outline:none; background:none; padding:0 2px; font-family:var(--font-sans); font-size:var(--text-base); color:var(--ui-text); }
.share-chips{ display:contents; }
.share-chip{
  display:inline-flex; align-items:center; gap:6px; padding:2px 4px 2px 2px; border-radius:999px;
  background:var(--md-neutral-background-2-rest); font-size:var(--text-sm); color:var(--ui-text); max-width:100%;
}
.share-chip .share-modal-member-avatar{ width:22px; height:22px; font-size:var(--text-xs); }
.share-chip-label{ overflow:hidden; text-overflow:ellipsis; white-space:nowrap; padding-left:4px; }
.share-chip-remove{ border:none; background:none; width:20px; height:20px; border-radius:50%; cursor:pointer; color:var(--ui-muted); display:inline-flex; align-items:center; justify-content:center; font-size:var(--text-xs); }
.share-chip-remove:hover{ background:var(--ui-border); color:var(--ui-text); }
.share-email-dropdown button{ display:flex; align-items:center; gap:10px; }
.share-email-dropdown .share-modal-member-avatar{ width:26px; height:26px; font-size:var(--text-sm); }
.share-dd-name{ flex:1; min-width:0; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.share-dd-team-avatar{ color:#fff; }
.share-dd-team-avatar i{ font-size:var(--text-sm); }
.share-dd-count{ flex-shrink:0; margin-left:auto; color:var(--ui-muted); font-size:var(--text-sm); font-variant-numeric:tabular-nums; }
.share-modal-member-avatar img{ width:100%; height:100%; border-radius:50%; object-fit:cover; display:block; }
.team-select-trigger .icon-select-caret{ margin-right:4px; }
.share-select-hug .team-select-trigger{ padding:4px 8px; }
.share-select-hug .team-select-trigger .icon-select-caret{ margin-right:0; }
.share-member-role-select .team-select-trigger{ padding:6px 9px; height:34px; }
.share-member-role-select .team-select-trigger-label{ font-size:var(--text-md); }
.share-modal-role-field.hidden{ display:none; }
.share-email-dropdown{
  position:absolute; left:0; right:0; top:calc(100% + 4px); z-index:var(--z-modal-dropdown); max-width:none; overflow-y:auto;
  scrollbar-width:none;
}
.share-email-dropdown::-webkit-scrollbar{ display:none; }
.share-email-dropdown button{ width:100%; text-align:left; font-size:var(--text-base); }
.share-email-dropdown.has-more::after{
  content:''; position:sticky; display:block; left:0; right:0; bottom:0;
  height:28px; margin-top:-28px; pointer-events:none;
  background:linear-gradient(to top, var(--md-color-grey-white) 0%, rgba(255,255,255,0.92) 55%, rgba(255,255,255,0) 100%);
}
html[data-ui-theme="dark"] .share-email-dropdown.has-more::after{
  background:linear-gradient(to top, var(--md-color-grey-white) 0%, rgba(26,31,39,0.92) 55%, rgba(26,31,39,0) 100%);
}
.share-email-dropdown button.share-dd-already{ opacity:.55; cursor:default; }
.share-email-dropdown button.share-dd-already:hover{ background:none; }
.share-modal-member-role-label{ font-size:var(--text-md); color:var(--ui-muted); }
.share-modal-error{ font-size:var(--text-md); color:var(--md-status-danger-foreground-1-rest); margin-top:8px; }
.share-modal-members{ display:flex; flex-direction:column; }
.share-modal-member-row{ display:flex; align-items:center; gap:10px; padding:8px; border-radius:8px; }
.share-access-list .share-modal-members{ margin-top:0; }
.share-modal-member-avatar{
  width:28px; height:28px; border-radius:50%; background:var(--ui-accent); color:var(--md-color-grey-white);
  font-family:var(--font-sans); font-size:var(--text-md); font-weight:var(--font-weight-semibold);
  display:flex; align-items:center; justify-content:center; flex-shrink:0;
}
.share-modal-member-email{ flex:1; min-width:0; font-size:var(--text-base); color:var(--ui-text); overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.share-modal-member-role{ flex-shrink:0; display:flex; align-items:center; justify-content:flex-end; margin-left:auto; }
.share-member-remove{
  display:inline-flex; align-items:center; justify-content:center; flex-shrink:0;
  width:28px; height:28px; padding:0; margin-right:6px;
  border:none; background:none; border-radius:6px; cursor:pointer;
  color:var(--ui-muted); font-size:var(--text-md); opacity:0; pointer-events:none;
  transition:opacity .14s ease;
}
.share-modal-member-row:hover .share-member-remove,
.share-member-remove:focus-visible{ opacity:1; pointer-events:auto; }
.share-member-remove:hover{ background:var(--md-neutral-background-2-rest); color:var(--ui-text); }

.share-invite-box{ align-items:flex-start; position:relative; }
.share-invite-box:has(> .share-modal-role-field:not(.hidden)){ padding-right:136px; }
.share-invite-box > .share-modal-role-field{
  position:absolute; top:5px; right:6px; width:auto; flex-shrink:0;
  display:flex; justify-content:flex-end;
}
.share-modal-invite-row{ align-items:flex-start; }
.share-inline-select .team-select-trigger{
  width:auto; height:30px; padding:4px 6px; gap:4px;
  border:none; border-radius:6px; background:none; color:var(--ui-muted);
}
.share-inline-select .team-select-trigger:hover{ background:var(--md-neutral-background-2-rest); color:var(--ui-text); }
.share-inline-select .team-select-trigger-label{ flex:0 0 auto; font-size:var(--text-md); color:inherit; }
.icon-select.share-inline-select .icon-select-menu{ width:100%; min-width:0; max-width:none; left:0; right:auto; }
.icon-select.share-inline-select.share-select-hug .icon-select-menu{ width:max-content; min-width:0; max-width:min(320px, 80vw); left:auto; right:0; }
.icon-select.share-inline-select .icon-select-options{ overflow-x:hidden; }
.share-inline-select .icon-select-option{ white-space:nowrap; }
.share-inline-select .icon-select-option > span{ white-space:nowrap; }
.share-access-list{ margin-top:16px; }
.share-access-row{
  display:flex; align-items:center; gap:10px; width:100%; box-sizing:border-box;
  padding:8px; border:none; border-radius:8px; background:none; cursor:pointer;
  font-family:var(--font-sans); font-size:var(--text-base); color:var(--ui-text); text-align:left;
}
.share-access-row:hover{ background:var(--md-neutral-background-2-rest); }
.share-access-row[disabled]{ cursor:default; }
.share-access-row[disabled]:hover{ background:none; }
.share-access-icon{
  width:28px; height:28px; border-radius:50%; flex-shrink:0;
  display:flex; align-items:center; justify-content:center;
  background:var(--md-neutral-background-2-rest); color:var(--ui-muted); font-size:var(--text-md);
}
.share-access-row:hover .share-access-icon{ background:var(--md-color-grey-white); }
.share-access-label{ flex:1; min-width:0; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.share-access-role{ flex-shrink:0; font-size:var(--text-md); color:var(--ui-muted); }
.share-access-caret{ flex-shrink:0; font-size:var(--text-sm); color:var(--ui-muted); }
.share-settings-header{ justify-content:flex-start; gap:8px; }
.share-settings-header > [data-action="closeShareModal"]{ margin-left:auto; }
.share-settings-hint{ display:block; margin-top:6px; font-size:var(--text-md); color:var(--ui-muted); }
.share-settings-select .team-select-trigger{
  width:100%; height:42px; padding:0 12px; gap:8px;
  border:1px solid var(--ui-border); border-radius:8px; background:var(--md-color-grey-white);
  color:var(--ui-text);
}
.share-settings-select .team-select-trigger:hover{ background:var(--md-color-grey-white); border-color:var(--ui-accent); }
.share-settings-select .team-select-trigger-label{ flex:1 1 auto; text-align:left; color:var(--ui-text); }
.share-settings-select .icon-select-caret{ margin-left:auto; margin-right:0; }
.share-settings-select .icon-select-menu{ width:100%; min-width:0; left:0; right:auto; }
.share-public-link-body{ display:flex; flex-direction:column; gap:16px; }
.share-public-link-field{ position:relative; display:block; }
.share-public-link-field > span:first-child{
  position:absolute; left:9px; top:0; font-size:var(--text-xs); line-height:1; transform:translateY(-50%);
  background:var(--md-color-grey-white); padding:0 3px; margin-left:-3px; z-index:1; pointer-events:none; color:var(--ui-muted);
}
.share-public-link-row{ display:flex; gap:8px; align-items:center; }
.share-public-link-input{
  flex:1; min-width:0; height:42px; padding:0 12px; box-sizing:border-box;
  border:1px solid var(--ui-border); border-radius:8px; background:var(--md-color-grey-white);
  font-family:var(--font-sans); font-size:var(--text-base); color:var(--ui-text); outline:none; text-overflow:ellipsis;
}
.share-public-link-input:focus{ border-color:var(--ui-accent); }
.share-public-link-row .btn{ flex-shrink:0; height:42px; display:inline-flex; align-items:center; gap:8px; }
.share-public-link-meta{ font-size:var(--text-md); color:var(--ui-muted); }
.share-radio-group{ display:flex; flex-direction:column; gap:10px; }
.share-radio{ display:flex; align-items:center; gap:8px; cursor:pointer; font-size:var(--text-base); color:var(--ui-text); }
.share-radio input{ margin:0; accent-color:var(--ui-accent); }
#shareModalModal .tpl-lib-grid-wrap:has(> .prop-field){ display:flex; flex-direction:column; gap:20px; }

.share-modal-footer{ justify-content:flex-start; }
.share-modal-footer .btn{ display:inline-flex; align-items:center; gap:10px; }
.share-modal-footer .btn > i{ width:16px; text-align:center; flex-shrink:0; }
.share-avatar-stack{ display:flex; align-items:center; flex-shrink:0; }
.share-avatar-stack .share-modal-member-avatar{ box-shadow:0 0 0 2px var(--md-color-grey-white); }
.share-avatar-stack .share-modal-member-avatar + .share-modal-member-avatar{ margin-left:-10px; }
.share-member-warning{ flex-shrink:0; color:var(--md-status-warning-foreground-1-rest); font-size:var(--text-md); cursor:help; }
.share-team-toolbar{ display:flex; align-items:center; gap:8px; margin-bottom:6px; }
.share-team-toolbar .search-box{ flex:1; min-width:0; }
.share-team-toolbar .share-inline-select{ flex-shrink:0; }
.share-team-bulk .team-select-trigger{ height:34px; }
.share-select-icon{ flex-shrink:0; font-size:var(--text-md); width:14px; text-align:center; }
.share-team-public-note{
  display:flex; align-items:flex-start; gap:8px; margin-bottom:8px; padding:8px 10px;
  border-radius:8px; background:var(--ui-surface-2); color:var(--ui-muted);
  font-size:var(--text-md); line-height:1.45;
}
.share-team-public-note i{ flex-shrink:0; line-height:1.45; }
.share-team-members{ max-height:320px; overflow-y:auto; overscroll-behavior:contain; }
.share-team-member-seg{ flex-shrink:0; }
#shareModalModal .share-permission-field{ display:flex; flex-direction:row; align-items:center; justify-content:space-between; gap:12px; width:100%; box-sizing:border-box; }
#shareModalModal .share-permission-field > span:first-child{ font-size:var(--text-md); color:var(--ui-muted); flex:1; min-width:0; }
#shareModalModal .share-permission-field > .mini-segment{ flex:0 0 auto; }

#confirmDialogOverlay{
  display:none; position:fixed; inset:0; background:rgba(20,24,32,0.45); z-index:var(--z-modal-menu);
  align-items:center; justify-content:center;
}
#confirmDialogOverlay.open{ display:flex; }
#confirmDialogOverlay.closing #confirmDialogModal{ animation:modal-fall-out .45s cubic-bezier(.2,.8,.2,1); }
#confirmDialogModal{
  width:320px; padding:48px 24px 24px; box-sizing:border-box; background:var(--md-color-grey-white); border-radius:16px;
  box-shadow:var(--shadow-modal); display:flex; flex-direction:column; align-items:center; text-align:center;
  animation:modal-rise-in .32s cubic-bezier(.2,.8,.2,1);
}
#confirmDialogIcon{ width:156px; height:156px; }
#confirmDialogTextWrap{ padding-top:10px; padding-bottom:24px; width:100%; }
#confirmDialogTitle{ font-size:var(--text-xl); font-weight:var(--font-weight-bold); color:var(--ui-text); }
#confirmDialogDesc{ margin-top:4px; font-size:var(--text-base); font-weight:var(--font-weight-light); color:var(--md-neutral-foreground-3-rest); line-height:1.5; white-space:pre-line; }
#confirmDialogActions{ display:flex; flex-direction:column; gap:8px; width:100%; }
#confirmDialogActions .btn{ width:100%; justify-content:center; box-sizing:border-box; }
.confirm-dialog-cancel{ border:none; background:none; }
.confirm-dialog-cancel:hover{ background:var(--ui-surface-2); }
#avatarModalOverlay{
  display:none; position:fixed; inset:0; background:rgba(20,24,32,0.45); z-index:var(--z-modal);
  align-items:center; justify-content:center;
}
#avatarModalOverlay.open{ display:flex; }
#avatarModalOverlay.closing #avatarModalModal{ animation:modal-fall-out .45s cubic-bezier(.2,.8,.2,1); }
#avatarModalModal{
  width:420px; max-width:90vw; background:var(--md-color-grey-white); border-radius:16px;
  box-shadow:var(--shadow-modal); display:flex; flex-direction:column; overflow:hidden;
  animation:modal-rise-in .32s cubic-bezier(.2,.8,.2,1);
}
.avatar-modal-desc{ padding:0 20px; margin-top:-10px; font-size:var(--text-md); color:var(--ui-muted); }
#avatarModalModal .tpl-lib-grid-wrap{ overflow:visible; display:flex; flex-direction:column; align-items:center; gap:16px; }
.avatar-modal-dropzone{ width:100%; height:220px; box-sizing:border-box; }
.avatar-modal-preview{
  position:relative; width:200px; height:200px; border-radius:50%; overflow:hidden; flex-shrink:0;
  border:1px solid var(--ui-border); background:var(--md-neutral-background-2-rest);
  cursor:move; user-select:none;
}
.avatar-modal-preview img{
  width:100%; height:100%; object-fit:contain; display:block; pointer-events:none;
  transform:translate(var(--avatar-pan-x,0px), var(--avatar-pan-y,0px)) scale(var(--avatar-scale,1));
  transform-origin:center center;
}
.avatar-modal-static{
  width:200px; height:200px; border-radius:50%; object-fit:cover; flex-shrink:0;
  border:1px solid var(--ui-border);
}
.avatar-modal-slider{ width:100%; box-sizing:border-box; display:flex; flex-direction:column; gap:6px; }
.avatar-modal-slider span{ font-size:var(--text-md); font-weight:var(--font-weight-semibold); color:var(--md-neutral-foreground-3-rest); }
.avatar-modal-slider input[type="range"]{ accent-color:var(--ui-accent); width:100%; }
.avatar-modal-footer{ gap:8px; }
.avatar-modal-footer.hidden{ display:none; }
.avatar-modal-seg{ margin-bottom:4px; }
#avatarModalModal{ transition:height .3s cubic-bezier(.2,.8,.2,1); }
#avatarModalBody{ overflow:hidden; }
.avatar-modal-pane{ display:flex; flex-direction:column; align-items:center; gap:16px; width:100%; animation:avatar-pane-in .26s ease; }
@keyframes avatar-pane-in{ from{ opacity:0; transform:translateY(4px); } to{ opacity:1; transform:none; } }
.avatar-modal-actions{ display:flex; gap:8px; width:100%; }
.avatar-modal-actions .btn{ flex:1; justify-content:center; }
#personalInfoModalOverlay{
  display:none; position:fixed; inset:0; background:rgba(20,24,32,0.45); z-index:var(--z-modal);
  align-items:center; justify-content:center;
}
#personalInfoModalOverlay.open{ display:flex; }
#personalInfoModalOverlay.closing #personalInfoModalModal{ animation:modal-fall-out .45s cubic-bezier(.2,.8,.2,1); }
#personalInfoModalModal{
  width:460px; max-width:90vw; background:var(--md-color-grey-white); border-radius:16px;
  box-shadow:var(--shadow-modal); display:flex; flex-direction:column; overflow:hidden;
  animation:modal-rise-in .32s cubic-bezier(.2,.8,.2,1);
}
#personalInfoModalModal .tpl-lib-grid-wrap{ overflow:visible; display:flex; flex-direction:column; gap:14px; }
.personal-info-section-title{ font-family:var(--font-regular); font-size:var(--text-md); color:var(--ui-text); margin-bottom:6px; }
.personal-info-section-title:not(:first-child){ border-top:1px solid var(--ui-border); padding-top:20px; margin-top:6px; }
.personal-info-row{ display:flex; gap:20px; align-items:flex-start; }
.profile-seg{ display:flex; gap:2px; padding:3px; border-radius:8px; background:var(--md-neutral-background-2-rest); width:100%; box-sizing:border-box; }
.profile-seg button{
  flex:1; display:inline-flex; align-items:center; justify-content:center; gap:7px; padding:6px 10px; border:none; border-radius:5px;
  background:transparent; color:var(--ui-muted); font-family:var(--font-sans); font-size:var(--text-md); cursor:pointer; transition:color .15s, background .15s;
}
.profile-seg button:hover{ color:var(--md-neutral-foreground-1-rest); }
.profile-seg button.active{ background:var(--md-neutral-background-1-rest); color:var(--md-neutral-foreground-1-rest); font-family:var(--font-regular); box-shadow:0 2px 2px rgba(var(--shadow-rgb), 0.16); }
.personal-info-fields .prop-field > .profile-seg{ margin-top:2px; }
.personal-info-avatar-wrap{ position:relative; width:72px; height:72px; flex-shrink:0; border-radius:50%; }
.personal-info-avatar-wrap img{ width:100%; height:100%; border-radius:50%; object-fit:cover; display:block; }
.personal-info-avatar-wrap img.hidden{ display:none; }
.personal-info-avatar-wrap span{
  width:100%; height:100%; border-radius:50%; background:var(--ui-accent); color:var(--md-color-grey-white);
  font-family:var(--font-sans); font-size:var(--text-5xl); font-weight:var(--font-weight-semibold);
  display:flex; align-items:center; justify-content:center;
}
.personal-info-avatar-wrap span.hidden{ display:none; }
.personal-info-edit-btn{
  position:absolute; top:-4px; right:-4px; width:24px; height:24px; border-radius:50%;
  border:1px solid var(--ui-border); background:var(--md-color-grey-white); color:var(--ui-text); font-size:var(--text-xs);
  display:flex; align-items:center; justify-content:center; cursor:pointer;
  opacity:0; transition:opacity .15s;
}
.personal-info-avatar-wrap:hover .personal-info-edit-btn{ opacity:1; }
.personal-info-fields{ flex:1; min-width:0; display:flex; flex-direction:column; gap:14px; }
#addComponentBlockedOverlay{
  display:none; position:fixed; inset:0; background:rgba(20,24,32,0.45); z-index:var(--z-modal-menu);
  align-items:center; justify-content:center;
}
#addComponentBlockedOverlay.open{ display:flex; }
#addComponentBlockedOverlay.closing #addComponentBlockedModal{ animation:modal-fall-out .45s cubic-bezier(.2,.8,.2,1); }
#addComponentBlockedModal{
  width:320px; padding:48px 24px 24px; box-sizing:border-box; background:var(--md-color-grey-white); border-radius:16px;
  box-shadow:var(--shadow-modal); display:flex; flex-direction:column; align-items:center; text-align:center;
  animation:modal-rise-in .32s cubic-bezier(.2,.8,.2,1);
}
#addComponentBlockedModal img{ width:156px; height:156px; }
#addComponentBlockedTextWrap{ padding-top:10px; padding-bottom:20px; width:100%; }
#addComponentBlockedTitle{ font-size:var(--text-xl); font-weight:var(--font-weight-bold); color:var(--ui-text); }
#addComponentBlockedDesc{ margin-top:4px; font-size:var(--text-base); font-weight:var(--font-weight-light); color:var(--md-neutral-foreground-3-rest); line-height:1.5; }
#addComponentBlockedCheckboxRow{ justify-content:center; padding-bottom:20px; }
#addComponentBlockedConfirmBtn{ width:100%; justify-content:center; box-sizing:border-box; }
.tpl-lib-grid-wrap .empty-hint{ font-size:var(--text-base); color:var(--md-neutral-foreground-3-rest); }
.image-lib-empty{
  grid-column:1 / -1; display:flex; flex-direction:column; align-items:center; gap:12px;
  padding:40px 16px; color:var(--md-neutral-foreground-3-rest); font-size:var(--text-base); text-align:center;
}
.image-lib-empty img{ width:96px; height:96px; }
#imgLibGridWrap.image-lib-empty-state #imgLibGrid{ display:flex; align-items:center; justify-content:center; height:100%; }

.slide-empty-bar{
  position:absolute; left:var(--grid-system-slide-grid-margin-horizontal);
  right:var(--grid-system-slide-grid-margin-horizontal); bottom:8px;
  z-index:2; pointer-events:none;
  display:flex; flex-direction:column; align-items:flex-start; gap:18px;
}
.slide-empty-bar .slide-quickpick-row{ width:100%; }
.slide-empty-bar .slide-quickpick-card{ flex:1 1 0; min-width:0; max-width:150px; }
.slide-empty-bar .slide-quickpick-caption{ max-width:100%; }
.slide-empty-bar button, .slide-empty-bar .slide-quickpick-card{ pointer-events:auto; }
body.palette-dragging .slide-empty-bar,
body.palette-dragging .slide-empty-toppick,
body.palette-dragging .slide-empty-bar button,
body.palette-dragging .slide-empty-bar .slide-quickpick-card,
body.palette-dragging .slide-empty-toppick .slide-quickpick-card{ pointer-events:none; }
.slide-empty-toppick{
  position:absolute; left:var(--grid-system-slide-grid-margin-horizontal);
  right:var(--grid-system-slide-grid-margin-horizontal); z-index:2;
  display:flex; flex-direction:column; align-items:flex-start; gap:6px;
}
.slide-empty-toppick-heading{ font-size:var(--text-2xl); color:var(--ui-muted-light); margin:0; font-family:var(--font-sans); }
.slide-quickpick-row{ display:flex; gap:12px; }
.slide-quickpick-card{
  position:relative;
  width:150px; display:flex; flex-direction:column; align-items:center; gap:6px;
  cursor:pointer; font-family:var(--font-sans); font-size:var(--text-base); color:var(--ui-text);
}
.slide-quickpick-caption{
  width:100%; font-size:var(--text-sm); line-height:1.2; text-align:center;
  color:var(--ui-muted);
  overflow:hidden; text-overflow:ellipsis; white-space:nowrap;
  pointer-events:none;
}
.slide-quickpick-thumb{
  width:100%; aspect-ratio:16/9; border:1px solid var(--ui-border); border-radius:12px;
  overflow:hidden; background:var(--frame-bg); position:relative;
  transition:border-color .15s, box-shadow .15s;
}
.slide-quickpick-card:hover .slide-quickpick-thumb{ border-color:var(--ui-accent); box-shadow:0 4px 12px rgba(var(--shadow-rgb),0.14); }
.slide-quickpick-icon-box{
  position:relative; width:100%; aspect-ratio:1/1; border-radius:10px; background:none;
  border:1.5px dashed var(--md-neutral-stroke-1-rest);
  display:flex; align-items:center; justify-content:center; font-size:var(--text-6xl); color:var(--ui-muted);
  transition:background .15s, border-color .15s, border-style .15s;
}
.slide-quickpick-icon-box .icon-hover{ display:none; }
.slide-quickpick-card:hover .slide-quickpick-icon-box{ background:var(--md-neutral-background-2-rest); border-style:solid; }
.slide-quickpick-card:hover .slide-quickpick-icon-box .icon-rest{ display:none; }
.slide-quickpick-card:hover .slide-quickpick-icon-box .icon-hover{ display:block; }
.slide-quickpick-icon-box i{ transition:transform .18s cubic-bezier(.4,0,.2,1); }
.slide-quickpick-card:hover .slide-quickpick-icon-box i{ transform:translateY(-12%); }
.slide-quickpick-name{
  position:absolute; left:8px; right:8px; bottom:16%;
  font-size:var(--text-sm); line-height:1.2; text-align:center; color:var(--ui-muted);
  overflow:hidden; text-overflow:ellipsis; white-space:nowrap;
  opacity:0; transform:translateY(6px); pointer-events:none;
  transition:opacity .18s ease, transform .18s cubic-bezier(.4,0,.2,1);
}
.slide-quickpick-card:hover .slide-quickpick-name{ opacity:1; transform:none; }
.slide-quickpick-card.active .slide-quickpick-thumb{ background:var(--ui-surface-2); box-shadow:0 0 0 2px var(--ui-accent); }
.slide-empty-bar-btn{
  display:flex; align-items:center; gap:8px;
  font-family:var(--font-sans); font-size:var(--text-lg); color:var(--ui-accent);
  background:transparent; border:none; border-radius:10px;
  padding:12px 20px; cursor:pointer;
}
.slide-empty-bar-btn:hover{ background:var(--ui-surface-2); }

#rowModesList{ display:flex; flex-direction:column; gap:10px; }
.row-mode-row{ display:flex; align-items:center; justify-content:space-between; font-size:var(--text-base); font-family:"lexend Regular"; color:var(--ui-text); }


.deck-history{ text-align:left; display:flex; flex-direction:column; gap:8px; margin-top:6px; }
.deck-history-row{ display:flex; align-items:center; justify-content:space-between; gap:12px; font-size:var(--text-md); }
.deck-history-row-block{ flex-direction:column; align-items:stretch; gap:6px; }
.deck-history-label{ color:var(--ui-muted); flex-shrink:0; }
.deck-history-value{ color:var(--ui-text); display:flex; align-items:center; gap:6px; flex-wrap:wrap; justify-content:flex-end; }
.deck-history-person{ display:inline-flex; align-items:center; gap:6px; color:var(--ui-text); }
.deck-history-avatar{ width:22px; height:22px; font-size:var(--text-xs); margin:0; }
.deck-history-editors{ list-style:none; margin:0; padding:0; display:flex; flex-direction:column; gap:6px; max-height:200px; overflow-y:auto; }
.deck-history-editors li{ display:flex; align-items:center; justify-content:space-between; gap:10px; }
.deck-history-muted{ color:var(--ui-muted); font-size:var(--text-sm); }

.recap-overlay{
  display:none; position:fixed; inset:0; background:rgba(20,24,32,0.45); z-index:var(--z-modal);
  align-items:center; justify-content:center; padding:24px;
}
.recap-overlay.open{ display:flex; }
.recap-modal{
  width:520px; max-width:100%; max-height:86vh; background:var(--md-color-grey-white);
  border-radius:16px; box-shadow:var(--shadow-modal); display:flex; flex-direction:column;
  overflow:hidden; animation:modal-rise-in .32s cubic-bezier(.2,.8,.2,1);
}
.recap-body{ padding:0 20px 20px; display:flex; flex-direction:column; gap:16px; }
.recap-thumb{
  width:100%; aspect-ratio:16/9; border:1px solid var(--ui-border); border-radius:10px;
  overflow:hidden; background:var(--frame-bg); position:relative; flex-shrink:0;
}
.recap-thumb[hidden]{ display:none; }
.recap-thumb-img{ width:100%; height:100%; object-fit:cover; display:block; }
.recap-thumb-contain{ object-fit:contain; background:var(--ui-surface-2); }
.recap-description{ flex-shrink:0; }
.recap-thumb-actions{ display:flex; justify-content:flex-end; margin-top:-8px; }
.recap-thumb-actions[hidden]{ display:none; }
.recap-section{ display:flex; flex-direction:column; gap:6px; }
.recap-section + .recap-section{ margin-top:24px; padding-top:24px; border-top:1px solid var(--ui-border); }
.recap-section-title{
  font-family:var(--font-display); font-size:var(--text-md); color:var(--ui-muted);
  text-transform:uppercase; letter-spacing:.04em;
}
.recap-row-input, .recap-row-textarea{
  width:100%; box-sizing:border-box; border:1px solid var(--ui-border); border-radius:8px;
  background:var(--md-color-grey-white);
  font-family:inherit; font-size:var(--text-base); color:var(--ui-text);
}
.recap-row-input{ height:42px; padding:0 12px; }
.recap-row-textarea{ resize:vertical; min-height:72px; line-height:1.4; padding:10px 12px; }
.recap-row-input:focus, .recap-row-textarea:focus{ outline:none; border-color:var(--ui-accent); }
.recap-overlay .deck-history-row[hidden]{ display:none; }


.recap-meta-grid{ display:flex; flex-direction:row; flex-wrap:wrap; gap:14px 12px; }
.recap-meta-grid > *{ flex:1 1 100%; min-width:0; }
.recap-meta-grid > .recap-prop-half{ flex:1 1 calc(50% - 6px); }
.recap-prop-field > .recap-field-host > .icon-select{ width:100%; }
.recap-prop-field .team-select-trigger{ height:42px; padding:0 12px; box-sizing:border-box; }
.recap-prop-field .icon-select-caret{ margin-left:auto; }
.recap-kw-box{ padding:11px 8px 5px; }
.recap-share-row > .recap-field-host{ display:flex; align-items:center; gap:12px; width:100%; }
.recap-share-avatars{ display:flex; align-items:center; flex:1; min-width:0; }
.recap-share-avatars .share-modal-member-avatar{ box-shadow:0 0 0 2px var(--md-color-grey-white); }
.recap-share-avatars .share-modal-member-avatar + .share-modal-member-avatar{ margin-left:-8px; }
.recap-share-more{ background:var(--md-neutral-background-2-rest); color:var(--ui-muted); font-size:var(--text-sm); }
.recap-share-row .deck-history-muted{ flex:1; }
.recap-share-row .btn{ flex-shrink:0; margin-left:auto; }

.avatar-modal-link-field{ margin-top:14px; }
.avatar-modal-color{ width:100%; display:flex; flex-direction:column; gap:10px; }
.avatar-modal-color-title{ font-size:var(--text-md); color:var(--ui-text); }
.avatar-modal-color-row{ display:grid; grid-template-columns:repeat(7, minmax(0, 1fr)); gap:10px; }
.avatar-color-option{
  width:100%; aspect-ratio:1; height:auto; border-radius:50%; border:2px solid transparent; cursor:pointer;
  color:#fff; font-family:var(--font-display); font-size:var(--text-xl);
  display:flex; align-items:center; justify-content:center; box-shadow:0 0 0 2px var(--md-color-grey-white) inset;
}
.avatar-color-option:hover{ transform:scale(1.06); }
.avatar-color-option.active{ border-color:var(--ui-text); }
.image-card-edit-link-hint.is-bad{ color:var(--md-color-pink-500); }

.recap-prop-field{ position:relative; display:block; }
.recap-prop-field > span:first-child{
  position:absolute; left:9px; top:0; font-size:var(--text-xs); line-height:1; transform:translateY(-50%);
  background:var(--md-color-grey-white); padding:0 3px; margin-left:-3px; z-index:1; pointer-events:none;
}
.recap-prop-field > .recap-field-host{ display:block; }
.recap-prop-field .recap-row-input{ width:100%; box-sizing:border-box; }


#deckTemplatePreviewModal{ width:720px; }
#deckTemplatePreviewBody{ padding:0 20px 20px; }
.dtpl-preview-empty{ padding:24px 0; text-align:center; color:var(--ui-muted); font-size:var(--text-base); }

.dtpl-carousel{
  position:relative; --dtpl-slide:74%; --dtpl-peek:13%; --dtpl-bleed:20px;
  margin-left:calc(-1 * var(--dtpl-bleed)); margin-right:calc(-1 * var(--dtpl-bleed));
}
.dtpl-carousel-track{
  display:flex; gap:12px; overflow-x:auto; scroll-snap-type:x mandatory;
  scrollbar-width:none; padding:2px var(--dtpl-bleed);
}
.dtpl-carousel-track::-webkit-scrollbar{ display:none; }
.dtpl-carousel-slide{ flex:0 0 var(--dtpl-slide); scroll-snap-align:center; display:flex; flex-direction:column; gap:6px; }
.dtpl-carousel-slide:first-child{ scroll-snap-align:start; scroll-margin-left:var(--dtpl-bleed); }
.dtpl-carousel-slide:last-child{ scroll-snap-align:end; scroll-margin-right:var(--dtpl-bleed); }
.dtpl-carousel-slide .layout-thumb-frame{
  width:100%; aspect-ratio:16 / 9; border:1px solid var(--ui-border); border-radius:10px;
  overflow:hidden; background:var(--md-neutral-background-2-rest); position:relative;
}
.dtpl-carousel-num{ font-family:var(--font-sans); font-size:var(--text-sm); color:var(--ui-muted); }
.dtpl-carousel-nav{
  position:absolute; top:50%; transform:translateY(-50%); z-index:2;
  width:36px; height:36px; border-radius:50%; border:1px solid var(--ui-border);
  background:var(--md-color-grey-white); color:var(--ui-text); cursor:pointer;
  display:flex; align-items:center; justify-content:center; box-shadow:var(--shadow-menu);
}
.dtpl-carousel-nav:hover:not(:disabled){ background:var(--ui-surface-2); }
.dtpl-carousel-nav:disabled{ opacity:0; pointer-events:none; }
.dtpl-carousel-prev{ left:6px; }
.dtpl-carousel-next{ right:6px; }
.dtpl-carousel::before, .dtpl-carousel::after{
  content:''; position:absolute; top:0; bottom:0;
  width:calc(var(--dtpl-peek) + var(--dtpl-bleed) + 24px);
  pointer-events:none; z-index:1; opacity:1; transition:opacity .28s ease;
}
.dtpl-carousel::before{ left:0; background:linear-gradient(to right, var(--md-color-grey-white) 35%, rgba(255,255,255,0.72) 70%, rgba(255,255,255,0) 100%); }
.dtpl-carousel::after{ right:0; background:linear-gradient(to left, var(--md-color-grey-white) 35%, rgba(255,255,255,0.72) 70%, rgba(255,255,255,0) 100%); }
.dtpl-carousel.at-start::before, .dtpl-carousel.at-end::after{ opacity:0; }
html[data-ui-theme="dark"] .dtpl-carousel::before{ background:linear-gradient(to right, var(--md-color-grey-white) 35%, rgba(26,31,39,0.72) 70%, rgba(26,31,39,0) 100%); }
html[data-ui-theme="dark"] .dtpl-carousel::after{ background:linear-gradient(to left, var(--md-color-grey-white) 35%, rgba(26,31,39,0.72) 70%, rgba(26,31,39,0) 100%); }
