/* Presentations inherit Fusion's shell and palette. The presentation owns its canvas. */
.presentations-page, .presentations-admin { color: var(--fusion-text); min-width: 0; }
.presentations-page { width: 100%; box-sizing: border-box; padding: 1.5rem; }
.presentations-page [hidden], .presentations-admin [hidden] { display: none !important; }
.presentation-heading { display: flex; justify-content: space-between; align-items: flex-start; gap: 1.5rem; margin-bottom: 2rem; }
.presentation-heading h1 { font-size: 1.75rem; line-height: 1.2; margin: 0 0 .5rem; }
.presentation-heading p { margin: 0; max-width: 65ch; }
.presentation-search { display: flex; align-items: center; gap: .75rem; margin: 0 0 1.25rem; }
.presentation-search input { flex: 1; min-width: 0; padding: .7rem .85rem; border: 1px solid var(--fusion-border); border-radius: var(--fusion-radius-sm); background: var(--presentation-input, #fff); color: inherit; }
.presentation-list { list-style: none; margin: 0; padding: 0; }
.presentation-row { display: flex; justify-content: space-between; gap: 1.5rem; padding: 1.5rem 0; border-bottom: 1px solid var(--fusion-border); }
.presentation-row > div { min-width: 0; }
.presentation-row h2 { font-size: 1.15rem; line-height: 1.4; margin: 0 0 .35rem; }
.presentation-title-button { display: block; padding: 0; border: 0; background: transparent; color: var(--fusion-accent); font: inherit; font-weight: 650; text-align: left; cursor: pointer; overflow-wrap: anywhere; }
.presentation-title-button:hover { text-decoration: underline; text-underline-offset: .2em; }
.presentation-description { margin: .35rem 0 .6rem; max-width: 70ch; white-space: pre-line; overflow-wrap: anywhere; line-height: 1.55; }
.presentation-meta, .presentation-help { color: var(--fusion-muted); font-size: .85rem; line-height: 1.5; overflow-wrap: anywhere; }
.presentation-row > .presentation-meta { flex-shrink: 0; font-variant-numeric: tabular-nums; padding-top: .3rem; }
.presentation-actions, .presentation-pagination { display: flex; flex-wrap: wrap; align-items: center; gap: .65rem; }
.presentation-pagination { justify-content: center; margin-top: 1.5rem; font-variant-numeric: tabular-nums; }
.presentation-empty { padding: 4rem 1rem; text-align: center; }
.presentation-empty h2 { font-size: 1.25rem; margin-bottom: .5rem; }
.presentation-empty p { color: var(--fusion-muted); }
.presentation-status { margin: .75rem 0; }
.presentations-page .is-error, .presentations-admin .is-error { color: #b42318; }
.presentation-viewer { background: var(--fusion-surface); display: flex; flex-direction: column; min-height: 70vh; }
.presentation-viewer:fullscreen { padding: 1rem; height: 100%; }
.presentation-viewer-bar { display: flex; gap: 1rem; align-items: center; flex-wrap: wrap; padding-bottom: 1rem; }
.presentation-viewer-bar h1 { flex: 1; min-width: 10rem; font-size: 1.25rem; margin: 0; overflow-wrap: anywhere; }
.presentation-frame { display: block; width: 100%; height: calc(100dvh - 235px); min-height: 380px; border: 1px solid var(--fusion-border); background: #fff; flex: 1; }
.presentation-viewer:fullscreen .presentation-frame { min-height: 0; height: 100%; }
.presentation-viewer-hint { color: var(--fusion-muted); font-size: .85rem; margin: .75rem 0 0; }
/* One native modal serves catalog playback and administrative previews. */
body.presentation-modal-open { overflow:hidden; }
body.fusion-21st dialog.presentation-modal { position:fixed; inset:0; box-sizing:border-box; width:calc(100vw - 48px); max-width:1800px; height:calc(100dvh - 48px); max-height:none; margin:auto; padding:0; border:1px solid var(--ui-line); border-radius:12px; overflow:hidden; background:var(--ui-bg); color:var(--ui-fg); font:inherit; }
body.fusion-21st .presentation-modal::backdrop { background:#07101dcc; backdrop-filter:blur(4px); }
.presentation-modal-canvas { display:flex; flex-direction:column; width:100%; height:100%; min-height:0; background:var(--ui-bg); color:var(--ui-fg); }
.presentation-modal-bar { display:flex; flex-shrink:0; align-items:center; gap:12px; padding:8px 12px 8px 20px; border-bottom:1px solid var(--ui-line); }
body.fusion-21st .presentation-modal-bar h2 { flex:1; min-width:0; margin:0; font-size:16px; line-height:24px; font-weight:600; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.presentation-modal-tools { display:flex; align-items:center; flex-wrap:wrap; gap:4px; flex-shrink:0; }
body.fusion-21st .presentation-modal-tools button { min-height:44px; margin:0; white-space:nowrap; }
body.fusion-21st .presentation-modal-close { display:grid; place-items:center; width:44px; padding:0; }
.presentation-modal .presentation-frame { flex:1; min-height:0; height:0; width:100%; box-sizing:border-box; border:0; }
.presentation-modal .presentation-status { padding:12px 20px; margin:0; }
.presentation-modal :focus-visible { outline:2px solid var(--fusion-accent); outline-offset:-3px; }
.presentation-modal-canvas:fullscreen { width:100%; height:100%; }
@media (max-width:640px) {
  body.fusion-21st dialog.presentation-modal { width:100vw; max-width:100vw; height:100dvh; border:0; border-radius:0; }
  .presentation-modal-bar { flex-wrap:wrap; padding:8px 8px 8px 12px; gap:0 8px; }
  .presentation-modal-tools { width:100%; justify-content:flex-end; }
  body.fusion-21st .presentation-modal-bar h2 { min-height:32px; display:flex; align-items:center; }
}
.presentation-admin-layout { display: grid; grid-template-columns: minmax(260px, 360px) minmax(0, 1fr); gap: 2.5rem; }
.presentation-editor { align-self: start; padding: 1.25rem; border: 1px solid var(--fusion-border); border-radius: var(--fusion-radius); }
.presentation-editor h2 { margin: 0 0 1.25rem; font-size: 1.15rem; }
.presentation-editor label { display: flex; flex-direction: column; gap: .5rem; margin-bottom: 1.15rem; font-size: .9rem; font-weight: 550; }
.presentation-editor input:not([type=checkbox]), .presentation-editor textarea, .presentation-editor select { width: 100%; min-width: 0; box-sizing: border-box; padding: .7rem; border: 1px solid var(--fusion-border); border-radius: var(--fusion-radius-sm); background: var(--presentation-input, #fff); color: inherit; font: inherit; }
.presentation-editor textarea { resize: vertical; min-height: 6rem; }
.presentation-editor .presentation-publish-label { flex-direction: row; align-items: center; font-weight: 400; }
.presentation-publish-label input { width: 1.1rem; height: 1.1rem; accent-color: var(--fusion-accent); }
.presentation-admin-row { padding: 1.25rem 0; border-bottom: 1px solid var(--fusion-border); }
.presentation-row-heading { display: flex; justify-content: space-between; align-items: baseline; gap: 1rem; }
.presentation-row-heading h3 { margin: 0; font-size: 1.05rem; overflow-wrap: anywhere; }
.presentation-badge { border-radius: var(--fusion-radius-sm); padding: .2rem .5rem; font-size: .75rem; background: var(--fusion-border); white-space: nowrap; }
.presentation-badge.is-published { background: #d8f3e6; color: #14553a; }
.presentation-delete { margin-left: auto; }
.presentation-share-actions { margin-top: .75rem; }
.presentation-share-panel { margin-top: 1.5rem; padding: 1.25rem; border: 1px solid var(--fusion-border); border-radius: var(--fusion-radius); }
.presentation-share-panel h2 { font-size: 1.15rem; margin-top: 0; }
.presentation-share-panel input { display: block; box-sizing: border-box; width: 100%; padding: .7rem; margin: .5rem 0 1rem; border: 1px solid var(--fusion-border); border-radius: var(--fusion-radius-sm); background: var(--presentation-input, #fff); color: inherit; font: inherit; }
body.presentation-public { margin: 0; background: var(--fusion-surface); color: var(--fusion-text); font-family: var(--fusion-font); }
/* Public links use the available viewport immediately, including fullscreen. */
body.presentation-public { height:100dvh; overflow:hidden; }
.presentation-public .presentations-page { height:100dvh; padding:0; }
.presentation-public .presentation-viewer,
.presentation-public .presentation-viewer:fullscreen { box-sizing:border-box; width:100%; height:100dvh; min-height:0; padding:0; overflow:hidden; }
.presentation-public .presentation-viewer-bar { flex-shrink:0; gap:8px 12px; padding:8px 12px; border-bottom:1px solid var(--fusion-border); }
.presentation-public .presentation-viewer-bar h1 { min-width:0; font-size:16px; line-height:24px; }
.presentation-public .presentation-viewer .presentation-frame { box-sizing:border-box; flex:1 1 0%; width:100%; height:0; min-height:0; border:0; }
.presentation-public .presentation-status { flex-shrink:0; margin:0; padding:12px; }
.presentation-public .presentation-viewer-bar button { min-height:44px; }
.presentation-public button { font: inherit; padding: .65rem 1rem; border: 1px solid var(--fusion-border); border-radius: var(--fusion-radius-sm); background: #fff; color: var(--fusion-text); cursor: pointer; }
.presentation-public button:hover { border-color: var(--fusion-accent); }
.presentation-public .presentation-viewer-hint { color: #526075; }
.presentations-page :focus-visible, .presentations-admin :focus-visible { outline: 2px solid var(--fusion-accent); outline-offset: 3px; }
.presentations-page button:disabled, .presentations-admin button:disabled { opacity: .5; cursor: not-allowed; }
.presentations-page ::selection, .presentations-admin ::selection { background: #c9ddff; color: #102744; }
.presentations-page .sr-only, .presentations-admin .sr-only { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; border: 0; }
body.theme-dark .presentations-page, body.theme-dark .presentations-admin { --presentation-input: #131f30; --fusion-accent: #8ebcff; }
body.theme-dark .presentations-page .is-error, body.theme-dark .presentations-admin .is-error { color: #ffb4a9; }
body.theme-dark .presentation-badge.is-published { background: #153e2e; color: #a5e9c3; }
@media (max-width: 1100px) {
  .presentation-admin-layout { grid-template-columns: 1fr; gap: 2rem; }
  .presentation-editor { max-width: 640px; }
}
@media (max-width: 640px) {
  .presentations-page { padding: 1rem; }
  .presentation-heading, .presentation-row { flex-direction: column; gap: .6rem; }
  .presentation-heading { margin-bottom: 1.25rem; }
  .presentation-search { flex-wrap: wrap; }
  .presentation-search input { flex-basis: 100%; }
  .presentation-row-heading { flex-wrap: wrap; gap: .5rem; }
  .presentation-frame { min-height: 300px; height: 65dvh; }
  .presentation-viewer-bar h1 { flex-basis: 100%; order: -1; }
  .presentation-delete { margin-left: 0; }
}

/* Native adaptations: existing Fusion cards, Sheet 25002, Share Dialog 2413,
   EmptyState 1435 and Upload 21308. See third-party/presentations-21st.txt. */
body.fusion-21st .presentations-page { padding:0; background:transparent; border:0; box-shadow:none; }
body.fusion-21st .presentation-heading { margin-bottom:24px; gap:24px; }
body.fusion-21st .presentation-heading h1 { font-size:30px; line-height:36px; font-weight:600; letter-spacing:-.025em; margin:0 0 8px; }
body.fusion-21st .presentation-heading p { font-size:14px; line-height:20px; color:var(--ui-secondary); }
body.fusion-21st .presentation-list { display:grid; grid-template-columns:minmax(0,1fr); gap:24px; margin-bottom:24px; }
body.fusion-21st .presentation-row.tw21-card { display:flex; padding:0; min-height:0; overflow:hidden; }
body.fusion-21st .presentation-row h2 { margin:0 0 8px; font-size:18px; line-height:28px; font-weight:600; }
body.fusion-21st .presentation-title-button { color:var(--ui-fg); font-weight:inherit; }
body.fusion-21st .presentation-row .presentation-description { margin:0; font-size:14px; line-height:20px; color:var(--ui-secondary); }
body.fusion-21st .presentation-row>.presentation-meta { padding:0; margin-top:auto; }
body.fusion-21st .presentation-empty { padding:0; }
body.fusion-21st .presentation-admin-layout { gap:24px; grid-template-columns:minmax(0,1fr); }
body.fusion-21st .presentation-editor { box-sizing:border-box; padding:0; border-radius:0; }
body.fusion-21st .presentation-editor h2 { font-size:18px; line-height:28px; margin-bottom:24px; }
body.fusion-21st .presentation-editor label { font-size:14px; line-height:20px; font-weight:500; gap:8px; margin-bottom:16px; }
body.fusion-21st .presentation-admin-catalog { min-width:0; }
body.fusion-21st .presentation-row-heading h3 { font-size:18px; line-height:28px; font-weight:600; }
body.fusion-21st .presentation-admin-catalog .presentation-list { grid-template-columns:minmax(0,1fr); }
body.fusion-21st .presentation-share-panel { border-radius:12px; padding:24px; background:var(--ui-bg); }
@media (min-width:768px) {
  body.fusion-21st #presentationList { grid-template-columns:repeat(2,minmax(0,1fr)); }
}
.presentation-card-link { display:flex; flex:1; flex-direction:column; gap:12px; padding:20px; color:inherit; text-decoration:none; min-width:0; }
.presentation-card-link { position:relative; isolation:isolate; justify-content:flex-end; box-sizing:border-box; aspect-ratio:16/9; min-height:200px; overflow:hidden; background:var(--fusion-navy); color:#fff; }
.presentation-card-preview { position:absolute; inset:0; z-index:-3; width:100%; height:100%; object-fit:cover; filter:blur(1px); transform:scale(1.02); transition:filter .2s ease,transform .2s ease; }
.presentation-card-shade { position:absolute; inset:0; z-index:-2; background:linear-gradient(180deg,rgba(7,15,29,.45) 0%,rgba(7,15,29,.70) 45%,rgba(7,15,29,.92) 100%); }
.presentation-card-copy { width:100%; min-width:0; position:relative; }
.presentation-preview-status { position:absolute; top:16px; left:20px; right:20px; font-size:12px; color:#e2e8f0; }
.presentation-card-link:hover .presentation-card-preview, .presentation-card-link:focus-visible .presentation-card-preview { filter:blur(0); transform:scale(1.04); }
.presentation-card-link:hover .presentation-card-action { transform:translate(2px,-2px); }
body.fusion-21st .presentation-card-link h2 { color:#fff; font-size:20px; line-height:1.3; margin:0 0 8px; }
body.fusion-21st .presentation-card-link .presentation-description { color:#e2e8f0; -webkit-line-clamp:2; margin:0 0 12px; }
.presentation-card-link .presentation-meta { color:#e2e8f0; font-size:12px; }
.presentation-card-link .presentation-card-action { color:#fff; display:flex; flex-shrink:0; transition:transform .2s ease; }
.presentation-card-link .presentation-card-footer { margin-top:12px; }
body.fusion-21st .presentation-row.tw21-card { border-color:transparent; box-shadow:none; }
@media (min-width:1440px) { body.fusion-21st #presentationList { grid-template-columns:repeat(3,minmax(0,1fr)); } }
@media (prefers-reduced-motion:reduce) { .presentation-card-preview, .presentation-card-action { transition:none; } .presentation-card-link:hover .presentation-card-preview { transform:scale(1.02); } }
.presentation-card-link h2 { overflow-wrap:anywhere; }
.presentation-card-link .presentation-description { display:-webkit-box; -webkit-line-clamp:3; -webkit-box-orient:vertical; overflow:hidden; }
.presentation-card-footer { display:flex; justify-content:space-between; align-items:center; gap:12px; margin-top:auto; padding-top:4px; }
.presentation-card-action { color:var(--fusion-accent); font-weight:600; font-size:14px; }
body.fusion-21st .presentation-card-link:focus-visible { outline-offset:-3px; }
.presentations-admin .presentation-admin-list { border:1px solid var(--ui-line); border-radius:12px; }
body.fusion-21st #presentationAdminList { gap:0; border:1px solid var(--ui-line); border-radius:12px; background:var(--ui-bg); }
#presentationAdminList:empty { display:none; }
.presentation-admin-row { display:flex; justify-content:space-between; align-items:center; gap:24px; padding:20px; }
.presentation-admin-row:last-child { border-bottom:0; }
.presentation-row-copy { min-width:0; flex:1; }
.presentation-admin-row .presentation-row-heading { justify-content:flex-start; align-items:center; flex-wrap:wrap; gap:8px 12px; }
.presentation-admin-row .presentation-description { display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden; font-size:14px; color:var(--ui-secondary); }
.presentation-admin-row .presentation-meta { margin:8px 0 0; font-size:12px; }
.presentation-admin-row > .presentation-actions { flex-shrink:0; gap:4px; }
.presentation-more { position:relative; }
.presentation-more summary { list-style:none; padding:10px; font-size:14px; cursor:pointer; border-radius:6px; }
.presentation-more summary::-webkit-details-marker { display:none; }
.presentation-more summary:hover { background:var(--ui-muted); }
.presentation-more[open] { display:flex; }
.presentation-more .presentation-delete { position:absolute; right:0; top:100%; z-index:2; background:var(--ui-bg); border:1px solid var(--ui-line); min-width:120px; margin:0; }
.presentations-admin .presentation-delete, .presentations-admin .presentation-danger { color:#b42318; }
body.theme-dark .presentations-admin .presentation-delete, body.theme-dark .presentations-admin .presentation-danger { color:#ffb4a9; }
.presentations-admin .presentation-primary:hover { filter:brightness(.93); }
.presentations-admin dialog { color:var(--ui-fg); background:var(--ui-bg); font:inherit; }
.presentations-admin dialog::backdrop { background:#0f172a80; }
.presentations-admin .presentation-sheet { position:fixed; inset:0 0 0 auto; margin:0; width:min(540px,100vw); max-width:100vw; height:100dvh; max-height:100dvh; border:0; border-left:1px solid var(--ui-line); }
.presentation-sheet form { height:100%; display:flex; flex-direction:column; }
.presentation-dialog-header { display:flex; justify-content:space-between; align-items:center; gap:16px; padding:20px 24px; border-bottom:1px solid var(--ui-line); }
body.fusion-21st .presentation-dialog-header h2 { font-size:20px; line-height:28px; margin:0; }
.presentation-sheet-body { padding:24px; overflow:auto; flex:1; min-height:0; }
.presentation-sheet-footer { padding:16px 24px; border-top:1px solid var(--ui-line); }
.presentation-sheet-footer > p { font-size:14px; margin:0 0 12px; }
.presentation-sheet-footer .presentation-actions { justify-content:flex-end; }
.presentation-sheet .tw21-upload { min-height:150px; padding:20px; }
.presentation-technical { font-size:13px; margin-top:16px; }
.presentation-technical summary { cursor:pointer; padding:8px 0; }
.presentations-admin .presentation-access { width:min(520px,calc(100vw - 32px)); max-width:none; max-height:calc(100dvh - 32px); box-sizing:border-box; padding:0; border:1px solid var(--ui-line); border-radius:12px; }
.presentation-access-body { padding:0 24px 24px; }
#presentationShareName { font-size:15px; font-weight:600; overflow-wrap:anywhere; margin:20px 0; }
.presentation-access-section { padding:20px 0; border-top:1px solid var(--ui-line); }
.presentation-access-section h3 { font-size:14px; margin:0 0 8px; }
.presentation-access-section p { margin:0 0 16px; }
.presentation-access-section label { font-size:13px; }
.presentation-copy-row { display:flex; gap:8px; margin:8px 0 16px; }
.presentation-copy-row input { width:100%; min-width:0; padding:10px; border:1px solid var(--ui-line); border-radius:6px; background:var(--presentation-input,#fff); color:inherit; font:inherit; font-size:13px; }
.presentations-admin [aria-busy=true] { opacity:.6; }
.presentation-sheet-body, .presentation-access { scrollbar-color:var(--ui-line) transparent; scrollbar-width:thin; }
@media (max-width:1100px) {
  .presentation-admin-row { align-items:flex-start; flex-direction:column; gap:16px; }
}
@media (max-width:640px) {
  .presentation-heading > .presentation-actions { width:100%; }
  .presentation-heading > .presentation-actions > * { flex:1; text-align:center; }
  .presentation-dialog-header, .presentation-sheet-body { padding:16px; }
  .presentation-sheet-footer { padding:12px 16px; }
  .presentation-access-body { padding:0 16px 16px; }
  .presentation-admin-row { padding:16px; }
  .presentation-admin-row > .presentation-actions { gap:4px; }
}

/* The same native speed control appears in modal and public viewers. */
.presentation-speed { display:inline-flex; align-items:center; gap:8px; margin:0 8px 0 0; font-size:13px; white-space:nowrap; }
.presentation-speed select { box-sizing:border-box; min-height:44px; width:auto; margin:0; padding:6px 8px; border:1px solid var(--ui-line,var(--fusion-border)); border-radius:6px; background:var(--ui-bg,var(--fusion-surface,#fff)); color:inherit; font:inherit; cursor:pointer; }
.presentation-speed select:disabled { opacity:.55; cursor:wait; }
.presentation-speed select:focus-visible { outline:2px solid var(--fusion-accent); outline-offset:2px; }
@media (max-width:640px) { .presentation-speed { margin-right:auto; } }
