/* Studio UI v3: tariff cards, native previews and compact mobile layouts. */
body.modal-open,body.nav-open{overflow:hidden}
[hidden]{display:none!important}
.mobile-header{display:none}
.sidebar .new-main{margin-top:30px}
.nav-scrim{position:fixed;inset:0;z-index:19;background:#20233366;backdrop-filter:blur(3px)}
.main,.welcome,.hero-copy,.quick-card>span,.deck-meta>button:first-child{min-width:0}
.deck-grid,.template-grid,.wizard-theme-grid{grid-template-columns:repeat(3,minmax(0,1fr))}
.wizard-theme-grid{grid-template-columns:repeat(4,minmax(0,1fr))}
.settings-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
.template-card{position:relative;min-width:0;border-width:2px;transition:border-color .18s,box-shadow .18s}
.template-card.tariff-start{border-color:#7db7aa}
.template-card.tariff-premium{border-color:#c7a55e}
.template-card:hover{box-shadow:0 4px 18px #242b4514}
.template-card.selected{border-color:var(--accent);box-shadow:0 0 0 2px #5263ef24}
.template-card .deck-preview img{width:100%;height:100%;object-fit:cover;display:block}
.template-name{gap:6px;align-items:flex-start;min-width:0;line-height:1.45}
.template-name>span{min-width:0;overflow-wrap:anywhere}
.tier-badge,.template-name .tier-badge{display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;padding:3px 6px;border-radius:5px;font-size:9px;font-weight:700;line-height:1.2;white-space:nowrap}
.tier-free{color:#687388;background:#eef1f6}
.tier-start{color:#397b6b;background:#e4f4ee}
.tier-premium{color:#8a672b;background:#faf0d8}
.design-selected{position:absolute;top:7px;right:7px;background:var(--accent);color:#fff;width:25px;height:25px;display:grid;place-items:center;border-radius:50%;box-shadow:0 2px 8px #20233330}
.design-selected svg{width:16px;height:16px}
.template-card.locked .deck-preview img{filter:grayscale(1) blur(.7px);opacity:.58}
.design-lock{position:absolute;inset:auto 5px 7px;display:flex;justify-content:center;align-items:center;gap:5px;background:#ffffffee;border-radius:5px;color:#66718a;font-size:10px;padding:5px}
.design-lock svg{width:12px;height:12px}
.selected-design-summary{display:flex;gap:12px;align-items:center;justify-content:space-between;font-size:12px;line-height:1.6;min-height:38px}
.modal-shell{--modal-radius:19px;width:820px;max-width:100%;min-width:0;overflow:hidden;border-radius:var(--modal-radius);background:#fff;box-shadow:0 30px 90px #111d4344;animation:pop .2s ease-out}
.modal-shell.small-modal{width:510px}
.modal-shell .modal{width:100%;max-width:100%;border-radius:var(--modal-radius);overflow-x:hidden;box-shadow:none;animation:none}
.modal-shell,.modal-shell *{scrollbar-width:thin;scrollbar-color:#bdd7f3 transparent}
@supports selector(::-webkit-scrollbar){
  .modal-shell,.modal-shell *{scrollbar-width:auto;scrollbar-color:auto}
  .modal-shell::-webkit-scrollbar,.modal-shell *::-webkit-scrollbar{width:10px;height:10px}
  .modal-shell::-webkit-scrollbar-track,.modal-shell *::-webkit-scrollbar-track{background:transparent;margin:12px 0;border-radius:999px}
  .modal-shell::-webkit-scrollbar-thumb,.modal-shell *::-webkit-scrollbar-thumb{background:#bdd7f3;border:2px solid #fff;border-radius:999px;min-height:36px}
  .modal-shell::-webkit-scrollbar-thumb:hover,.modal-shell *::-webkit-scrollbar-thumb:hover{background:#a5c9ee}
  .modal-shell::-webkit-scrollbar-button,.modal-shell *::-webkit-scrollbar-button{display:none;width:0;height:0}
  .modal-shell::-webkit-scrollbar-corner,.modal-shell *::-webkit-scrollbar-corner{background:transparent}
}
.modal-top{position:sticky;top:0;background:#fff;z-index:5}
.wizard-bottom{position:sticky;bottom:0;z-index:5;gap:12px}
.preview-heading{display:flex;justify-content:space-between;align-items:center;gap:12px}
.preview-heading h2{font-size:23px;letter-spacing:-.6px;margin:0}
.preview-loading{min-height:250px;display:flex;align-items:center;justify-content:center;gap:10px;color:var(--muted);font-size:13px}
.preview-loading svg{animation:breathe 1.5s infinite}
.design-preview-stage{aspect-ratio:16/9;width:100%;container-type:inline-size;border-radius:8px;overflow:hidden;border:1px solid var(--line)}
.design-preview-stage .slide{font-size:2.65cqw}
.preview-navigation{display:flex;align-items:center;justify-content:center;gap:18px;margin:15px 0}
.preview-navigation span{text-align:center;min-width:140px;font-size:12px}
.preview-navigation small{display:block;margin-top:4px;color:var(--muted);font-size:10px}
.preview-thumbnails{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}
.preview-thumbnail{padding:5px;min-width:0;border:2px solid var(--line);border-radius:8px;font-size:10px;text-align:left;line-height:1.5}
.preview-thumbnail.selected{border-color:var(--accent);background:var(--accent-soft)}
.preview-thumbnail .deck-preview{border-radius:4px}
.preview-thumbnail>span{display:block;margin:6px 2px 1px;overflow-wrap:anywhere}
.deck-meta>button:first-child{padding:0;text-align:left;flex:1}
.deck-meta h3{max-width:100%}
.deck-meta p{font-size:10px;line-height:1.7;overflow-wrap:anywhere}
.generating-preview{width:100%;height:100%;display:flex;align-items:center;justify-content:center;flex-direction:column;gap:14px;background:linear-gradient(135deg,#eef1fc,#f6f0fa);color:#707caa}
.generating-preview>span{font-size:11px;display:flex;align-items:center;gap:6px}
.generating-preview>span svg{width:15px;height:15px}
.animated-slide{width:44%;aspect-ratio:16/9;background:#ffffffcc;border:1px solid #d7ddf4;border-radius:6px;box-shadow:0 9px 24px #5263ef12;position:relative;padding:0;animation:slide-bob 3s ease-in-out infinite}
.animated-slide i{display:block;position:absolute;left:10%;top:23%;width:46%;height:7%;border-radius:4px;background:#b9c4f0;animation:slide-ink 2.4s ease-in-out infinite}
.animated-slide i:nth-child(2){top:44%;width:37%;background:#d2d9f1;animation-delay:.2s}
.animated-slide i:nth-child(3){top:60%;width:30%;background:#d2d9f1;animation-delay:.4s}
.animated-slide b{position:absolute;right:8%;top:22%;width:24%;height:55%;border-radius:4px;background:#dae1fa;animation:slide-ink 2.4s .6s ease-in-out infinite}
.generation-status{display:flex;align-items:center;gap:6px;margin-top:7px;color:#7481b2;font-size:10px;line-height:1.5}
.generation-status i{width:6px;height:6px;background:var(--accent);border-radius:50%;animation:breathe 1.5s infinite}
.failed-card{color:#a06d69;background:#fbf0ef}
@keyframes slide-bob{50%{transform:translateY(-3px) rotate(2deg)}}
@keyframes slide-ink{0%,100%{opacity:.4;transform:scaleX(.85);transform-origin:left}50%{opacity:1;transform:scaleX(1)}}
@media(max-width:1100px){.wizard-theme-grid,.preview-thumbnails{grid-template-columns:repeat(3,minmax(0,1fr))}.template-name{flex-wrap:wrap}.welcome{padding:30px 26px}.quick-card{min-width:0}.quick-card strong{overflow-wrap:anywhere}}
@media(max-width:920px){.deck-grid,.template-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:700px){
  html{scroll-padding-top:64px}body{overflow-x:clip}
  .mobile-header{display:flex;align-items:center;gap:10px;padding:10px 16px;padding-top:max(10px,env(safe-area-inset-top));background:#ffffffee;border-bottom:1px solid var(--line)}
  .mobile-header strong{font-size:13px;letter-spacing:-.3px}.mobile-header .icon-btn{width:44px;height:44px}
  .sidebar{width:min(290px,85vw);height:100vh;height:100dvh;padding:22px 18px max(20px,env(safe-area-inset-bottom));overflow-y:auto;overscroll-behavior:contain}
  .sidebar .brand{margin-bottom:0}.sidebar .new-main{margin-top:24px}.sidebar .sidebar-bottom{padding-top:24px}.sidebar .tip-card{padding:14px}.sidebar .nav-item{min-height:46px;font-size:13px}.sidebar .profile{font-size:12px}
  .welcome{padding:22px 16px max(24px,env(safe-area-inset-bottom))}.welcome h1{font-size:clamp(24px,6.7vw,29px);line-height:1.3;letter-spacing:-.9px}.intro{line-height:1.7;margin-bottom:20px;font-size:12px}.greeting{font-size:11px;line-height:1.6}
  .hero{min-height:0;display:block}.hero-copy{max-width:none;padding:22px}.hero-art{display:none}.hero h2{font-size:24px}.hero p{max-width:none;font-size:12px}.hero .btn{min-height:44px;font-size:12px}
  .quick-card{padding:14px;font-size:12px;min-height:68px}.quick-card strong{font-size:12px}.quick-card small{font-size:10px;line-height:1.5}
  .deck-grid{grid-template-columns:minmax(0,1fr);gap:16px}.deck-meta{padding:14px}.deck-meta h3{font-size:13px}.deck-meta p{font-size:11px}.deck-meta .icon-btn{width:44px;height:44px}.generating-preview>span{font-size:12px}.generation-status{font-size:11px}
  .gallery-tools{min-width:0}.search input{font-size:16px;min-width:0}.search{padding:10px}.section-line{margin-top:24px}.section-line h2{font-size:17px}
  .live-history-line{font-size:11px;line-height:1.6}.footer-note{font-size:10px;line-height:1.6}
  .template-grid,.wizard-theme-grid,.preview-thumbnails{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
  .template-name,.wizard-theme-grid .template-name{font-size:11px;flex-direction:column;gap:6px}.template-name .tier-badge,.wizard-theme-grid .template-name .tier-badge{font-size:9px}
  .overlay{padding:10px;padding-top:max(10px,env(safe-area-inset-top));padding-bottom:max(10px,env(safe-area-inset-bottom));overscroll-behavior:contain}
  .modal-shell{--modal-radius:13px}
  .modal{max-height:calc(100vh - 20px);max-height:calc(100dvh - 20px - env(safe-area-inset-top) - env(safe-area-inset-bottom));width:100%;overscroll-behavior:contain;-webkit-overflow-scrolling:touch}
  .modal-top{padding:10px 14px;min-height:56px}.modal-top .icon-btn{width:44px;height:44px}.modal-content{padding:20px 16px}.wizard-title{font-size:22px}.wizard-desc{font-size:12px;line-height:1.7}.wizard-progress{justify-content:space-between;gap:8px}.wizard-progress span{min-width:0}
  .prompt-input,.field input,.field select,.field textarea,.outline-row input,.native-fields input{font-size:16px}.prompt-input{min-height:145px}.field label{font-size:11px;line-height:1.4}.settings-grid{gap:14px 10px}.field select{min-height:46px;padding:10px 8px}.segmented{max-width:100%;gap:5px}.segmented button{min-height:44px;font-size:12px;padding:8px}
  .btn,.btn.small{min-height:44px;height:auto;padding:10px 12px;font-size:12px;line-height:1.45}.wizard-bottom{padding:12px 14px}.wizard-bottom .btn{height:auto;min-height:44px;font-size:12px}.selected-design-summary{align-items:flex-start;flex-wrap:wrap;font-size:12px}.design-lock{font-size:9px}
  .outline-row{padding:10px 8px;gap:5px}.outline-list{max-height:none}.demo-notice{font-size:11px}.preview-heading h2{font-size:22px}.preview-thumbnail{font-size:10px}.preview-navigation{gap:12px}.preview-navigation .icon-btn{width:44px;height:44px}.preview-loading{min-height:180px}
  .editor-top{height:auto;min-height:64px;flex-wrap:wrap;padding:8px 10px;gap:6px}.editor-title{flex:1;min-width:0}.editor-title input{font-size:16px;max-width:none;width:100%;min-width:0}.editor-title .icon-btn{width:44px;min-width:44px;height:44px}.editor-actions{margin-left:auto;flex-wrap:wrap;gap:5px}.editor-actions .btn{min-height:40px;font-size:11px}.editor-actions .demo-badge{display:none}.editor-shell{height:auto;min-height:calc(100dvh - 80px)}.editor-center{flex:initial;overflow:visible}.slide-stage{flex:none;min-height:0;padding:8px 12px 16px}.stage-wrap{max-width:100%}.editor-toolbar{flex-wrap:wrap;gap:5px;padding:8px 10px}.toolbar-group .icon-btn{width:36px;height:36px}.editor-bottom{flex-wrap:wrap;gap:8px}.slide-rail{height:145px;min-height:145px;gap:9px;padding:10px}.native-fields input{min-height:44px}.native-selection-tools button{width:32px;height:32px}.editor-inspector .segmented button{font-size:12px}.presenter{padding:max(10px,env(safe-area-inset-left)) max(10px,env(safe-area-inset-right))}.toast{bottom:max(20px,env(safe-area-inset-bottom));font-size:12px}
}
@media(max-width:360px){.settings-grid{grid-template-columns:minmax(0,1fr)}.welcome{padding-left:12px;padding-right:12px}.hero-copy{padding:18px}.modal-content{padding:18px 12px}.wizard-bottom{gap:6px;padding:10px}.wizard-bottom .btn{padding:10px 8px;font-size:11px}.preview-heading h2{font-size:19px}}
@media(max-height:540px) and (max-width:950px){.sidebar .tip-card{display:none}.sidebar .new-main{margin-top:15px;margin-bottom:12px}.sidebar-bottom{margin-top:16px}.overlay{align-items:flex-start}.editor-shell{height:auto}.slide-rail{height:120px;min-height:120px}}
@media(prefers-reduced-motion:reduce){.animated-slide,.animated-slide i,.animated-slide b,.generation-status i,.preview-loading svg{animation:none}}
/* Keep centering unchanged while notifications fade in and out. */
.toast{left:50%;right:auto;transform:translateX(-50%);opacity:0;animation:none;transition:opacity .22s ease;pointer-events:none}
.toast.visible{opacity:1}
@media(prefers-reduced-motion:reduce){.toast{transition:none}.modal-shell{animation:none}}

/* v3.6: keep the window in place between steps and render the full exit. */
#modal-layer{opacity:1;transition:opacity .28s cubic-bezier(.22,.61,.36,1);overscroll-behavior:contain}
#modal-layer .modal-shell{animation:none;opacity:1;transform:none;transition:opacity .28s cubic-bezier(.22,.61,.36,1),transform .28s cubic-bezier(.22,.61,.36,1)}
#modal-layer.is-closing{opacity:0;pointer-events:none}
#modal-layer.is-closing .modal-shell{opacity:.7;transform:translateY(10px)}
.modal-body{min-width:0;display:flow-root}
.nav-scrim{opacity:0;visibility:hidden;pointer-events:none;transition:opacity .32s ease,visibility 0s linear .32s}
.nav-scrim.is-open{opacity:1;visibility:visible;pointer-events:auto;transition-delay:0s}
@media(max-width:700px){
  .sidebar,.sidebar.mobile-open{display:flex}
  .sidebar{transform:translateX(-102%);visibility:hidden;pointer-events:none;transition:transform .32s cubic-bezier(.22,.61,.36,1),visibility 0s linear .32s}
  .sidebar.mobile-open{transform:translateX(0);visibility:visible;pointer-events:auto;transition-delay:0s}
  .template-card:hover,.deck-card:hover,.quick-card:hover{transform:none}
  #modal-layer{overflow-anchor:none}
}
@media(prefers-reduced-motion:reduce){
  #modal-layer,#modal-layer .modal-shell,.sidebar,.nav-scrim{transition:none}
}
.demo-link{width:40px;height:40px;padding:8px;justify-content:flex-start;color:#9297a7}
.demo-link svg{width:19px;height:19px;margin:0}
.avatar{position:relative;overflow:hidden;flex-shrink:0}
.avatar img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;border-radius:inherit}
.restricted-design{display:flex;justify-content:flex-end;align-items:center;flex-wrap:wrap;gap:8px;min-width:0}
.restricted-design>span{flex-basis:100%;text-align:right;font-size:11px;line-height:1.6;color:#8992a7}
.restricted-design .btn:disabled{cursor:not-allowed}
.gallery-filter-summary{display:flex;align-items:center;flex-wrap:wrap;gap:8px;margin:-3px 0 17px;font-size:11px;line-height:1.5}
.gallery-filter-summary:empty{display:none}
.filter-result{color:#8a92a6;margin-right:4px}
.filter-chip{display:inline-flex;align-items:center;gap:6px;border:1px solid #dfe3f5;border-radius:7px;background:#eef0ff;padding:6px 9px;font-size:10px;color:#6070b5}
.filter-chip svg{width:12px;height:12px}
.clear-filters{padding:6px;font-size:10px;color:var(--accent)}
.filter-button{position:relative}
.filter-button.has-filters{background:var(--accent-soft);color:var(--accent)}
.filter-count{position:absolute;top:-3px;right:-3px;min-width:15px;height:15px;border-radius:8px;background:var(--accent);color:white;font-size:8px;display:grid;place-items:center;padding:0 3px;box-shadow:0 0 0 2px var(--bg)}
.filter-matches{color:#7b86a2;font-size:12px;line-height:1.6;margin:15px 0 0}
.gallery-filter-panel .settings-grid{margin-bottom:0}
@media(max-width:700px){.demo-link{width:44px;height:44px}.filter-chip{font-size:11px;min-height:36px;line-height:1.5}.clear-filters{font-size:12px;min-height:36px}.gallery-filter-summary{font-size:12px;margin-bottom:16px}.filter-button{width:44px;height:44px;flex-shrink:0}.restricted-design{flex:1;gap:6px}.restricted-design .btn{font-size:11px;padding:9px 10px}.restricted-design>span{font-size:11px}.gallery-filter-panel .settings-grid{gap:14px 10px}.filter-count{font-size:9px;min-width:17px;height:17px}}

/* Keep the viewport width fixed when a dialog or mobile navigation locks scrolling. */
html{scrollbar-gutter:stable}
@supports not (scrollbar-gutter:stable){html{overflow-y:scroll}body.modal-open,body.nav-open{overflow:visible}}
.source-upload{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin:12px 0 20px}
.source-upload small{color:#7b8499;font-size:11px;line-height:1.6;overflow-wrap:anywhere}
.source-upload .btn{flex-shrink:0}
#modal-layer{overscroll-behavior:contain}
