.canvas-editor-page .moveable-control-box{box-sizing:border-box}.canvas-editor-page .moveable-line-box{pointer-events:none;border:1px solid #4af;position:absolute;inset:0}.canvas-editor-page .moveable-control-box .moveable-direction{box-sizing:border-box;background:#4af;border:2px solid #fff;border-radius:50%;width:14px;height:14px;margin:-7px 0 0 -7px;position:absolute}.canvas-editor-page .moveable-control-box .moveable-nw,.canvas-editor-page .moveable-control-box .moveable-se{cursor:nwse-resize}.canvas-editor-page .moveable-control-box .moveable-ne,.canvas-editor-page .moveable-control-box .moveable-sw{cursor:nesw-resize}.canvas-editor-page .moveable-control-box .moveable-w,.canvas-editor-page .moveable-control-box .moveable-e{cursor:ew-resize}.canvas-editor-page .moveable-control-box .moveable-n,.canvas-editor-page .moveable-control-box .moveable-s{cursor:ns-resize}.canvas-editor-page .moveable-control-box .moveable-rotation-control{cursor:grab;background:#fff;border:1px solid #333;border-radius:50%;justify-content:center;align-items:center;width:24px;height:24px;margin-top:18px;margin-left:-12px;display:flex;position:absolute;top:100%;left:50%;box-shadow:0 2px 5px #0003}.canvas-editor-page .moveable-control-box .moveable-rotation-control:active{cursor:grabbing}.canvas-editor-page .move-drag-handle{cursor:move;z-index:1;background-color:#fff;border:1px solid #333;border-radius:50%;width:24px;height:24px;margin-top:18px;position:absolute;top:100%;left:calc(50% - 30px);box-shadow:0 2px 5px #0003}.canvas-editor-page .move-drag-handle:hover{background-color:#f0f0f0}.canvas-editor-page .editor-marquee{pointer-events:none;z-index:100001;background:#44aaff1f;border:1px solid #4af;position:absolute}
.canvas-editor-page .card-bgm-picker-panel .card-bgm-picker-row{align-items:stretch;gap:4px;display:flex;position:relative}.canvas-editor-page .card-bgm-picker-trim{color:#b0b0b0;cursor:pointer;z-index:1;background:0 0;border:0;border-radius:8px;justify-content:center;align-items:center;width:28px;height:28px;padding:0;display:flex;position:absolute;top:50%;right:8px;transform:translateY(-50%)}.canvas-editor-page .card-bgm-picker-row:has(.card-bgm-picker-delete) .card-bgm-picker-trim{right:46px}.canvas-editor-page .card-bgm-picker-row:has(.card-bgm-picker-trim)>.card-bgm-picker-item{padding-right:40px}.canvas-editor-page .card-bgm-picker-trim:hover:not(:disabled){color:#444;background:#44444414}.canvas-editor-page .card-bgm-picker-trim:disabled{cursor:not-allowed;opacity:.45}.canvas-editor-page .card-bgm-picker-panel .card-bgm-picker-row>.card-bgm-picker-item{flex:auto;width:auto;min-width:0}.canvas-editor-page .card-bgm-picker-panel .card-bgm-picker-row>.card-bgm-picker-item.is-deleting{opacity:.55;pointer-events:none}.canvas-editor-page .card-bgm-picker-delete{color:#b42318;cursor:pointer;background:0 0;border:0;border-radius:8px;flex:none;justify-content:center;align-self:center;align-items:center;width:36px;height:36px;padding:0;display:flex}.canvas-editor-page .card-bgm-picker-delete:hover:not(:disabled){background:#fff5f1}.canvas-editor-page .card-bgm-picker-delete:disabled{cursor:not-allowed;opacity:.45}.canvas-editor-page .user-image-picker-scroll .photo-folder-list{padding-bottom:8px}.canvas-editor-page .user-image-picker-modal .photo-folder-list{flex:none;padding:0;overflow:visible}.canvas-editor-page .photo-folder-list{min-height:0}.canvas-editor-page .photo-folder-list__item:hover .photo-folder-list__menu-btn,.canvas-editor-page .photo-folder-list__menu-btn:focus-visible{opacity:1}@media (hover:none){.canvas-editor-page .photo-folder-list__menu-btn{opacity:1}}.canvas-editor-page .canvas-opening-envelope{z-index:10000000;background:#d9d2c5;width:100vw;height:100dvh;position:fixed;inset:0}.canvas-editor-page .canvas-opening-envelope .opening-envelope-page{width:100%;height:100%}@media (hover:none),(pointer:coarse){.canvas-editor-page .photo-grid-tick,.canvas-editor-page .photo-grid-more{opacity:1}.canvas-editor-page .photo-grid-tick{width:24px;height:24px}.canvas-editor-page .photo-grid-more{width:28px;height:28px}.canvas-editor-page .photo-grid-overlay:not(.is-selected){background:#0000001f}.canvas-editor-page .photo-grid-item:hover .photo-grid-thumb__img{transform:none}}@media (max-width:999px){.canvas-editor-page .canvas-image-picker-modal{align-items:flex-end;padding:0}.canvas-editor-page .canvas-image-picker-modal.is-closing{opacity:1}.canvas-editor-page .canvas-image-picker-modal.is-closing .canvas-image-picker-modal__backdrop{opacity:0;transition:opacity .3s}.canvas-editor-page .canvas-image-picker-modal__handle{background:#00000029;border-radius:999px;flex-shrink:0;width:36px;height:4px;margin:10px auto 0;display:block}.canvas-editor-page .canvas-image-picker-modal__panel{opacity:1;border-radius:16px 16px 0 0;width:100%;max-width:100%;height:min(86vh,100dvh);max-height:min(86vh,100dvh);transform:translateY(100%);box-shadow:0 -8px 24px #0000001f}.canvas-editor-page .canvas-image-picker-modal.is-open .canvas-image-picker-modal__panel{transform:translateY(0)}.canvas-editor-page .canvas-image-picker-modal.is-closing .canvas-image-picker-modal__panel{opacity:1;transform:translateY(100%)}.canvas-editor-page .canvas-image-picker-modal__head{align-items:center;padding:10px 16px 8px}.canvas-editor-page .canvas-image-picker-modal__desc{display:none}.canvas-editor-page .canvas-image-picker-modal__grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:8px}.canvas-editor-page .canvas-image-picker-modal__footer{padding:12px 16px calc(12px + env(safe-area-inset-bottom,0px));gap:10px}.canvas-editor-page .canvas-image-picker-modal__btn{flex:1;min-height:44px}}@media (max-width:480px){.canvas-editor-page .canvas-image-picker-modal__grid{grid-template-columns:repeat(3,minmax(0,1fr))}}.canvas-editor-page .canvas-intro-opening{box-sizing:border-box;z-index:999999;background:0 0;width:100%;max-width:700px;height:100%;margin:auto;padding:0;transition:opacity .5s ease-out;position:fixed;inset:0}.canvas-editor-page .canvas-intro-opening--exiting{opacity:0;pointer-events:none}.canvas-editor-page .canvas-intro-opening__skip{color:#fff;cursor:pointer;letter-spacing:.08em;right:max(12px, env(safe-area-inset-right,0px));top:max(12px, env(safe-area-inset-top,0px));z-index:40;background:#00000059;border:none;border-radius:999px;align-items:center;gap:8px;padding:8px 12px;font-size:13px;font-weight:600;transition:background .2s;display:inline-flex;position:absolute}.canvas-editor-page .canvas-intro-opening__skip:hover{background:#00000080}.canvas-editor-page .canvas-intro-opening__bg,.canvas-editor-page .canvas-intro-opening__text{box-sizing:border-box;margin:auto;position:absolute;left:0;right:0;overflow:hidden}.canvas-editor-page .canvas-intro-opening__bg{z-index:10;width:100%;height:100%;top:0;bottom:0}.canvas-editor-page .canvas-intro-opening__text{aspect-ratio:1080/500;z-index:20;background:0 0;width:90%;bottom:4%}.canvas-editor-page .canvas-intro-opening--variant-b .canvas-intro-opening__text{aspect-ratio:16/9;top:50%;bottom:auto;transform:translateY(-50%)}.canvas-editor-page .canvas-intro-opening__lottie{max-width:600px;margin:auto;position:absolute;inset:0;width:100%!important;height:auto!important}.canvas-editor-page .canvas-intro-opening__bg-inner{opacity:1;background:#f9f4ee;width:100%;height:100%;margin:auto;position:relative;inset:0;overflow:hidden}.canvas-editor-page .canvas-intro-opening__bg-inner>img{backface-visibility:hidden;object-fit:cover;object-position:center;margin:auto;position:absolute;top:0;bottom:0}.canvas-editor-page .canvas-intro-opening__img-02{opacity:1;transform-origin:50%;z-index:1;width:100%;height:100%;left:0;right:0;transform:scale(1.02)}.canvas-editor-page .canvas-intro-opening__img-01{opacity:1;transform-origin:50%;z-index:2;width:140%;max-width:none;height:100%;left:50%;right:auto;transform:translate(-50%)}.canvas-editor-page .canvas-intro-opening__overlay{opacity:.4;z-index:11;background:#f9f4ee;width:100%;height:100%;margin:auto;position:absolute;inset:0}.canvas-editor-page .canvas-intro-opening--purple .canvas-intro-opening__bg-inner,.canvas-editor-page .canvas-intro-opening--purple .canvas-intro-opening__overlay{background-color:#382c30!important}.canvas-editor-page .canvas-intro-opening--keys .canvas-intro-opening__bg-inner{animation:5s linear forwards canvas-intro-whole-wrap}.canvas-editor-page .canvas-intro-opening--keys .canvas-intro-opening__overlay{animation:5s linear forwards canvas-intro-overlay}.canvas-editor-page .canvas-intro-opening--keys .canvas-intro-opening__img-01{animation:2s linear forwards canvas-intro-move-x,5s linear forwards canvas-intro-move-x-img}.canvas-editor-page .canvas-intro-opening--keys .canvas-intro-opening__img-02{animation:5s linear forwards canvas-intro-scale-up-img,5s linear forwards canvas-intro-scale-up}.canvas-editor-page .canvas-intro-opening--keys .canvas-intro-opening__text,.canvas-editor-page .canvas-intro-opening--keys .canvas-intro-opening__skip{animation:4.5s linear forwards canvas-intro-whole-wrap}@keyframes canvas-intro-move-x{0%{transform:translate(-50%)}to{transform:translate(-60%)}}@keyframes canvas-intro-move-x-img{0%,40.3%{opacity:1}40.4%,to{opacity:0}}@keyframes canvas-intro-scale-up{0%,40%{transform:scale(1.02)}to{transform:scale(1.15)}}@keyframes canvas-intro-scale-up-img{0%,74%{opacity:1}80%,to{opacity:0}}@keyframes canvas-intro-overlay{0%{opacity:.4}25.3%{opacity:.4}40.3%{opacity:1}44%{opacity:.4}80%{opacity:.4}84.7%{opacity:1}to{opacity:0}}@keyframes canvas-intro-whole-wrap{0%,84.7%{opacity:1}94.7%{opacity:.3}to{opacity:0}}.canvas-editor-page .mobile-bottom-sheet .photo-list-tabs__btn{padding:8px 12px}.canvas-editor-page .photo-uploader__icon{color:var(--brand-accent);flex-shrink:0;font-size:38px}.canvas-editor-page .photo-uploader__hint{color:#8c8c8c;max-width:280px;margin:0;font-size:12px;line-height:1.5}.canvas-editor-page .photo-uploader__hint--limit{color:#d48806}.canvas-editor-page .photo-uploader__stats{color:#bfbfbf;font-size:12px;line-height:1.5}.canvas-editor-page .photo-uploader__stats strong{color:#595959;font-weight:600}.canvas-editor-page .photo-uploader__remaining{color:var(--brand-accent)!important}.canvas-editor-page .photo-uploader__stats-sep{margin:0 8px}.canvas-editor-page .photo-uploader__loading{color:var(--brand-accent);margin:0;font-size:12px}.canvas-editor-page .photo-uploader__error{color:#dc2626;margin:8px 0 0;font-size:12px}.canvas-editor-page .photo-list-title{color:#1a1a1a;margin:12px 0 4px;font-size:14px;font-weight:600;line-height:1.4}.canvas-editor-page .photo-list-total-assets{color:#666;margin:10px 0 4px;font-size:13px;line-height:1.5}.canvas-editor-page .photo-grid{grid-template-columns:repeat(3,1fr);gap:8px;padding:12px;display:grid}.canvas-editor-page .photo-grid-wrap{-webkit-overflow-scrolling:touch;flex:1;min-height:0;padding-bottom:12px;position:relative;overflow-y:auto}.canvas-editor-page .photo-grid-loading-more{text-align:center;color:#737373;padding:8px 12px 4px;font-size:12px}.canvas-editor-page .photo-grid-sentinel{width:100%;height:1px}.canvas-editor-page .photo-grid-item{z-index:0;position:relative}.canvas-editor-page .photo-grid-item.is-menu-open{z-index:20}.canvas-editor-page .photo-grid-thumb{aspect-ratio:1;cursor:pointer;background:#f9fafb;border:2px solid #e5e7eb;border-radius:8px;justify-content:center;align-items:center;transition:border-color .15s,box-shadow .15s;display:flex;position:relative;overflow:visible}.canvas-editor-page .photo-grid-thumb:hover{border-color:#c4b5fd;box-shadow:0 4px 12px #7c3aed1f}.canvas-editor-page .photo-grid-thumb.is-selected{border-color:#a855f7;box-shadow:0 0 0 2px #a855f740,0 4px 12px #7c3aed2e}.canvas-editor-page .photo-grid-thumb__media{border-radius:6px;position:absolute;inset:0;overflow:hidden}.canvas-editor-page .photo-grid-thumb__img{object-fit:contain;width:100%;height:100%;transition:transform .2s;display:block}.canvas-editor-page .photo-grid-item:hover .photo-grid-thumb__img{transform:scale(1.04)}.canvas-editor-page .photo-grid-thumb:active{cursor:pointer}.canvas-editor-page .photo-grid-overlay{pointer-events:none;z-index:2;transition:background .15s;position:absolute;inset:0}.canvas-editor-page .photo-grid-item:hover .photo-grid-overlay:not(.is-selected){background:#0003}.canvas-editor-page .photo-grid-overlay.is-selected{background:#a855f71a}.canvas-editor-page .photo-grid-tick{color:#fff;cursor:pointer;opacity:0;pointer-events:auto;background:#fffffff2;border:2px solid #d1d5db;border-radius:4px;justify-content:center;align-items:center;width:20px;height:20px;transition:opacity .15s,border-color .15s,background .15s;display:flex;position:absolute;top:6px;left:6px}.canvas-editor-page .photo-grid-item:hover .photo-grid-tick,.canvas-editor-page .photo-grid-overlay.is-select-mode .photo-grid-tick,.canvas-editor-page .photo-grid-tick.is-checked{opacity:1}.canvas-editor-page .photo-grid-tick:hover{border-color:#a855f7}.canvas-editor-page .photo-grid-tick.is-checked{background:#9333ea;border-color:#9333ea}.canvas-editor-page .photo-grid-more{color:#4b5563;cursor:pointer;opacity:0;pointer-events:auto;background:#fffffff2;border:none;border-radius:6px;justify-content:center;align-items:center;width:24px;height:24px;transition:opacity .15s;display:flex;position:absolute;top:4px;right:4px;box-shadow:0 1px 3px #0000001f}.canvas-editor-page .photo-grid-item:hover .photo-grid-more,.canvas-editor-page .photo-grid-more.is-open{opacity:1}@media (hover:none),(pointer:coarse){.canvas-editor-page .photo-grid-tick,.canvas-editor-page .photo-grid-more{opacity:1}.canvas-editor-page .photo-grid-tick{width:24px;height:24px}.canvas-editor-page .photo-grid-more{width:28px;height:28px}.canvas-editor-page .photo-grid-overlay:not(.is-selected){background:#0000001f}.canvas-editor-page .photo-grid-item:hover .photo-grid-thumb__img{transform:none}}.canvas-editor-page .photo-grid-item.is-touch .photo-grid-tick,.canvas-editor-page .photo-grid-item.is-touch .photo-grid-more{opacity:1}.canvas-editor-page .photo-grid-item.is-touch .photo-grid-tick{width:24px;height:24px}.canvas-editor-page .photo-grid-item.is-touch .photo-grid-more{width:28px;height:28px}.canvas-editor-page .photo-grid-item.is-touch .photo-grid-overlay:not(.is-selected){background:#0000001f}.canvas-editor-page .photo-grid-more:hover,.canvas-editor-page .photo-grid-more.is-open{color:#111827;background:#fff}.canvas-editor-page .photo-grid-menu{z-index:40;background:#fff;border:1px solid #e5e7eb;border-radius:8px;min-width:168px;margin-left:4px;padding:4px;position:absolute;top:4px;left:100%;right:auto;box-shadow:0 8px 24px #0000001f}.canvas-editor-page .photo-grid-menu--move,.canvas-editor-page .photo-grid-menu--bulk{max-height:200px;overflow-y:auto}.canvas-editor-page .photo-grid-menu--bulk{inset:auto auto calc(100% + 8px) 50%;transform:translate(-50%)}.canvas-editor-page .photo-grid-menu button{color:#374151;cursor:pointer;text-align:left;background:0 0;border:none;border-radius:6px;align-items:center;gap:6px;width:100%;padding:8px 10px;font-size:12px;display:flex}.canvas-editor-page .photo-grid-menu button:hover:not(:disabled){background:#f3f4f6}.canvas-editor-page .photo-grid-menu button:disabled{cursor:default;opacity:.7}.canvas-editor-page .photo-grid-menu button.is-current{color:#7c3aed;background:#f5f3ff;font-weight:500}.canvas-editor-page .photo-grid-menu button.is-danger{color:#dc2626}.canvas-editor-page .photo-grid-menu__back{margin-bottom:2px;font-weight:500;color:#6b7280!important;border-bottom:1px solid #f3f4f6!important;border-radius:6px 6px 0 0!important}.canvas-editor-page .photo-grid-menu__current{color:#a78bfa;margin-left:4px;font-size:11px;font-weight:400}.canvas-editor-page .photo-select-bar{pointer-events:none;z-index:30;justify-content:center;display:flex;position:sticky;bottom:12px;left:0;right:0}.canvas-editor-page .photo-select-bar__inner{pointer-events:auto;background:#fff;border:1px solid #e5e7eb;border-radius:999px;align-items:center;gap:8px;padding:8px 14px;display:flex;box-shadow:0 8px 24px #00000024}.canvas-editor-page .photo-select-bar__count{color:#1f2937;white-space:nowrap;font-size:13px;font-weight:600}.canvas-editor-page .photo-select-bar__btn{color:#4b5563;cursor:pointer;background:0 0;border:none;border-radius:999px;justify-content:center;align-items:center;width:28px;height:28px;display:flex}.canvas-editor-page .photo-select-bar__btn:hover{background:#f3f4f6}.canvas-editor-page .photo-select-bar__btn--danger:hover{color:#dc2626;background:#fef2f2}.canvas-editor-page .photo-select-bar__menu-wrap{position:relative}.canvas-editor-page .photo-list-tabs{border-bottom:1px solid #e5e7eb;align-items:center;gap:0;margin-top:12px;display:flex}.canvas-editor-page .photo-list-tabs__btn{color:#6b7280;cursor:pointer;background:0 0;border:none;border-bottom:2px solid #0000;margin-bottom:-1px;padding:10px 12px;font-size:13px;font-weight:500;position:relative}.canvas-editor-page .photo-list-tabs__btn.is-active{color:#111827;border-bottom-color:#9333ea}.canvas-editor-page .photo-list-tabs__spacer{flex:1}.canvas-editor-page .photo-list-tabs__select{color:#374151;cursor:pointer;background:0 0;border:1px solid #e5e7eb;border-radius:999px;margin:0 0 6px;padding:5px 12px;font-size:12px;font-weight:600}.canvas-editor-page .photo-list-tabs__select.is-active{color:#7c3aed;background:#f5f3ff;border-color:#c4b5fd}.canvas-editor-page .photo-folder-back{color:#374151;cursor:pointer;background:0 0;border:none;align-items:center;gap:6px;margin:12px 0 4px;padding:0;font-size:14px;font-weight:600;display:inline-flex}.canvas-editor-page .photo-folder-back__count{color:#9ca3af;font-size:12px;font-weight:400}.canvas-editor-page .photo-folder-upload-hint{color:#6b7280;margin:8px 0 0;font-size:12px}.canvas-editor-page .photo-folder-upload-hint strong{color:#7c3aed}.canvas-editor-page .photo-folder-list{-webkit-overflow-scrolling:touch;flex:1;min-height:0;padding:8px 12px 16px;overflow-y:auto}.canvas-editor-page .photo-folder-list__create,.canvas-editor-page .photo-folder-list__open{cursor:pointer;text-align:left;background:0 0;border:none;align-items:center;gap:12px;width:100%;padding:8px 4px;display:flex}.canvas-editor-page .photo-folder-list__create:hover,.canvas-editor-page .photo-folder-list__item:hover{background:#f9fafb;border-radius:8px}.canvas-editor-page .photo-folder-list__create-icon,.canvas-editor-page .photo-folder-list__thumb{color:#9ca3af;background:#f3f4f6;border-radius:8px;flex-shrink:0;justify-content:center;align-items:center;width:48px;height:48px;display:flex;overflow:hidden}.canvas-editor-page .photo-folder-list__create-icon{background:#fff;border:2px dashed #d1d5db;font-size:22px}.canvas-editor-page .photo-folder-list__create-icon svg,.canvas-editor-page .photo-folder-list__thumb svg{width:22px;height:22px;display:block}.canvas-editor-page .photo-folder-list__thumb img{object-fit:cover;width:100%;height:100%;display:block}.canvas-editor-page .photo-folder-list__meta{flex-direction:column;gap:2px;min-width:0;display:flex}.canvas-editor-page .photo-folder-list__name{color:#111827;text-overflow:ellipsis;white-space:nowrap;font-size:14px;font-weight:600;overflow:hidden}.canvas-editor-page .photo-folder-list__count{color:#6b7280;font-size:12px}.canvas-editor-page .photo-folder-list__item{align-items:center;gap:4px;display:flex}.canvas-editor-page .photo-folder-list__menu-wrap{position:relative}.canvas-editor-page .photo-folder-list__menu-btn{color:#9ca3af;cursor:pointer;opacity:0;background:0 0;border:none;border-radius:6px;justify-content:center;align-items:center;width:28px;height:28px;display:flex}.canvas-editor-page .photo-folder-list__item:hover .photo-folder-list__menu-btn{opacity:1}.canvas-editor-page .photo-folder-list__menu-btn:hover{color:#4b5563;background:#f3f4f6}.canvas-editor-page .photo-folder-list__menu{z-index:30;background:#fff;border:1px solid #e5e7eb;border-radius:8px;min-width:120px;padding:4px;position:absolute;top:calc(100% + 4px);right:0;box-shadow:0 8px 24px #0000001f}.canvas-editor-page .photo-folder-list__menu button{color:#374151;cursor:pointer;background:0 0;border:none;border-radius:6px;align-items:center;gap:6px;width:100%;padding:8px 10px;font-size:12px;display:flex}.canvas-editor-page .photo-folder-list__menu button:hover{background:#f3f4f6}.canvas-editor-page .photo-folder-list__menu button.is-danger{color:#dc2626}.canvas-editor-page .photo-folder-list__empty{color:#9ca3af;text-align:center;padding:24px 0;font-size:13px}.canvas-editor-page .photo-folder-dialog{z-index:12200;position:fixed;inset:0}.canvas-editor-page .photo-folder-dialog__backdrop{cursor:default;background:#00000073;border:none;position:absolute;inset:0}.canvas-editor-page .photo-folder-dialog__panel{background:#fff;border-radius:12px;width:calc(100% - 32px);max-width:420px;padding:20px;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);box-shadow:0 20px 50px #0003}.canvas-editor-page .photo-folder-dialog__title{color:#111827;margin:0 0 12px;font-size:16px;font-weight:600}.canvas-editor-page .photo-folder-dialog__input{border:1px solid #d1d5db;border-radius:8px;width:100%;margin-bottom:16px;padding:10px 12px;font-size:14px}.canvas-editor-page .photo-folder-dialog__hint,.canvas-editor-page .photo-folder-dialog__warning{color:#4b5563;margin:0 0 12px;font-size:13px;line-height:1.5}.canvas-editor-page .photo-folder-dialog__warning{color:#92400e;background:#fffbeb;border:1px solid #fde68a;border-radius:8px;padding:10px 12px}.canvas-editor-page .photo-folder-dialog__check{color:#374151;align-items:flex-start;gap:8px;margin-bottom:12px;font-size:13px;display:flex}.canvas-editor-page .photo-folder-dialog__actions{justify-content:flex-end;gap:8px;display:flex}.canvas-editor-page .photo-folder-dialog__btn{color:#fff;cursor:pointer;background:#111827;border:none;border-radius:8px;padding:8px 14px;font-size:13px;font-weight:500}.canvas-editor-page .photo-folder-dialog__btn--muted{color:#374151;background:#f3f4f6}.canvas-editor-page .photo-folder-dialog__btn--danger{background:#dc2626}.canvas-editor-page .photo-folder-dialog__btn:disabled{cursor:not-allowed;opacity:.6}.canvas-editor-page .canvas-image-picker-modal{z-index:12100;opacity:0;pointer-events:none;justify-content:center;align-items:center;padding:16px;transition:opacity .3s;display:flex;position:fixed;inset:0}.canvas-editor-page .canvas-image-picker-modal.is-open{opacity:1;pointer-events:auto}.canvas-editor-page .canvas-image-picker-modal.is-closing{opacity:0;pointer-events:none}.canvas-editor-page .canvas-image-picker-modal__backdrop{background:#00000073;position:absolute;inset:0}.canvas-editor-page .canvas-image-picker-modal__panel{opacity:0;background:#fff;border-radius:16px;flex-direction:column;width:min(100%,520px);height:min(85vh,680px);max-height:min(85vh,680px);transition:opacity .3s,transform .3s cubic-bezier(.22,1,.36,1);display:flex;position:relative;overflow:hidden;transform:scale(.96)translateY(16px)}.canvas-editor-page .canvas-image-picker-modal.is-open .canvas-image-picker-modal__panel{opacity:1;transform:scale(1)translateY(0)}.canvas-editor-page .canvas-image-picker-modal.is-closing .canvas-image-picker-modal__panel{opacity:0;transform:scale(.98)translateY(8px)}.canvas-editor-page .canvas-image-picker-modal__head{justify-content:space-between;align-items:flex-start;gap:12px;padding:16px 16px 8px;display:flex}.canvas-editor-page .canvas-image-picker-modal__title{color:#1a1a1a;margin:0;font-size:16px;font-weight:600;line-height:1.4}.canvas-editor-page .canvas-image-picker-modal__desc{color:#888;margin:4px 0 0;font-size:12px;line-height:1.5}.canvas-editor-page .canvas-image-picker-modal__close{color:#666;cursor:pointer;background:0 0;border:none;padding:0 4px;font-size:24px;line-height:1}.canvas-editor-page .canvas-image-picker-modal__main{flex-direction:column;flex:1;min-height:0;display:flex}.canvas-editor-page .canvas-image-picker-modal__chrome{background:#fff;flex-shrink:0;padding:0 16px}.canvas-editor-page .canvas-image-picker-modal__body{flex:1;min-height:0;padding:8px 16px 12px;overflow-y:auto}.canvas-editor-page .canvas-image-picker-modal__grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin:10px 0;padding:0;list-style:none;display:grid}.canvas-editor-page .canvas-image-picker-modal__add,.canvas-editor-page .canvas-image-picker-modal__thumb{aspect-ratio:1;cursor:pointer;background-color:#f5f5f5;background-position:50%;background-repeat:no-repeat;background-size:cover;border:1px solid #e5e5e5;border-radius:8px;justify-content:center;align-items:center;width:100%;padding:0;display:flex}.canvas-editor-page .canvas-image-picker-modal__add{color:#888}.canvas-editor-page .canvas-image-picker-modal__add:hover:not(:disabled){color:#444;border-color:#444}.canvas-editor-page .canvas-image-picker-modal__add:disabled,.canvas-editor-page .canvas-image-picker-modal__thumb:disabled{cursor:not-allowed;opacity:.6}.canvas-editor-page .canvas-image-picker-modal__thumb.is-selected{border-color:#444;box-shadow:0 0 0 2px #4443}.canvas-editor-page .canvas-image-picker-modal__check{color:#fff;background:#444;border-radius:50%;justify-content:center;align-items:center;width:22px;height:22px;font-size:12px;font-weight:700;display:flex}.canvas-editor-page .canvas-image-picker-modal__cell{position:relative}.canvas-editor-page .canvas-image-picker-modal__cell:hover .canvas-image-picker-modal__delete{opacity:1}.canvas-editor-page .canvas-image-picker-modal__delete{color:#c0392b;cursor:pointer;opacity:0;background:#fffffff2;border:none;border-radius:50%;justify-content:center;align-items:center;width:22px;height:22px;transition:opacity .15s;display:flex;position:absolute;top:4px;right:4px}.canvas-editor-page .canvas-image-picker-modal__delete:disabled{cursor:not-allowed;opacity:.4}.canvas-editor-page .canvas-image-picker-modal__status,.canvas-editor-page .canvas-image-picker-modal__error{text-align:center;margin:8px 0 0;font-size:12px}.canvas-editor-page .canvas-image-picker-modal__error{color:#c0392b}.canvas-editor-page .canvas-image-picker-modal__status{color:#888}.canvas-editor-page .canvas-image-picker-modal__login{text-align:center;color:#666;padding:24px 8px;font-size:13px}.canvas-editor-page .canvas-image-picker-modal__login-btn{color:#fff;background:#444;border-radius:8px;margin-top:12px;padding:8px 16px;font-size:13px;text-decoration:none;display:inline-block}.canvas-editor-page .canvas-image-picker-modal__footer{border-top:1px solid #f0f0f0;flex-shrink:0;justify-content:flex-end;gap:8px;padding:12px 16px 16px;display:flex}.canvas-editor-page .canvas-image-picker-modal__btn{cursor:pointer;border-radius:8px;min-width:88px;padding:8px 16px;font-size:13px;font-weight:500}.canvas-editor-page .canvas-image-picker-modal__btn--ghost{color:#333;background:#fff;border:1px solid #e5e5e5}.canvas-editor-page .canvas-image-picker-modal__btn--primary{color:#fff;background:#444;border:none}.canvas-editor-page .canvas-image-picker-modal__btn--primary:disabled{cursor:not-allowed;opacity:.5}.canvas-editor-page .canvas-image-picker-modal__handle{display:none}.canvas-editor-page .canvas-image-picker-modal__tabs{margin-top:0}.canvas-editor-page .canvas-image-picker-modal__body .photo-folder-list{min-height:auto;padding:4px 0 8px;overflow:visible}.canvas-editor-page .canvas-image-picker-modal__body .photo-folder-back{margin:8px 0}@media (max-width:999px){.canvas-editor-page .canvas-image-picker-modal{align-items:flex-end;padding:0}.canvas-editor-page .canvas-image-picker-modal.is-closing{opacity:1}.canvas-editor-page .canvas-image-picker-modal.is-closing .canvas-image-picker-modal__backdrop{opacity:0;transition:opacity .3s}.canvas-editor-page .canvas-image-picker-modal__handle{background:#00000029;border-radius:999px;flex-shrink:0;width:36px;height:4px;margin:10px auto 0;display:block}.canvas-editor-page .canvas-image-picker-modal__panel{opacity:1;border-radius:16px 16px 0 0;width:100%;max-width:100%;height:min(86vh,100dvh);max-height:min(86vh,100dvh);transform:translateY(100%);box-shadow:0 -8px 24px #0000001f}.canvas-editor-page .canvas-image-picker-modal.is-open .canvas-image-picker-modal__panel{transform:translateY(0)}.canvas-editor-page .canvas-image-picker-modal.is-closing .canvas-image-picker-modal__panel{opacity:1;transform:translateY(100%)}.canvas-editor-page .canvas-image-picker-modal__head{align-items:center;padding:10px 16px 8px}.canvas-editor-page .canvas-image-picker-modal__desc{display:none}.canvas-editor-page .canvas-image-picker-modal__grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:8px}.canvas-editor-page .canvas-image-picker-modal__footer{padding:12px 16px calc(12px + env(safe-area-inset-bottom,0px));gap:10px}.canvas-editor-page .canvas-image-picker-modal__btn{flex:1;min-height:44px}}@media (max-width:480px){.canvas-editor-page .canvas-image-picker-modal__grid{grid-template-columns:repeat(3,minmax(0,1fr))}}.canvas-editor-page .material-component{width:100%;height:100%}.canvas-editor-page .material-component .photo-bg-wrap{background-position:50%;background-repeat:no-repeat;background-size:cover;background-clip:border-box;width:100%;height:100%}.canvas-editor-page .material-component .svg-wrap{width:100%;height:100%;overflow:hidden}.canvas-editor-page .material-component .svg-wrap__inner{width:100%;height:100%}.canvas-editor-page .photo-list-header{flex-shrink:0;padding:12px 12px 0}.canvas-editor-page .photo-uploader-wrap{margin-bottom:12px}.canvas-editor-page .photo-uploader{cursor:pointer;background:#fafafa;border:1px dashed #d9d9d9;border-radius:12px;transition:border-color .2s,background-color .2s;position:relative}.canvas-editor-page .photo-uploader:hover:not(.is-disabled){background:#f8fbff;border-color:#91caff}.canvas-editor-page .photo-uploader.is-dragging{border-color:var(--brand-accent);background:#f0f7ff}.canvas-editor-page .photo-uploader.is-disabled{cursor:not-allowed;opacity:.85}.canvas-editor-page .photo-uploader__badge{color:var(--brand-accent);text-transform:capitalize;background:#e8eef5;border-radius:999px;padding:4px 10px;font-size:12px;font-weight:500;line-height:1;position:absolute;top:8px;left:8px}.canvas-editor-page .photo-uploader__body{text-align:center;flex-direction:column;align-items:center;gap:8px;padding:20px 16px 16px;display:flex}.canvas-editor-page .photo-uploader__main{text-align:center;flex-direction:column;align-items:center;gap:8px;width:100%;display:flex}.canvas-editor-page .photo-uploader--compact{border-radius:10px}.canvas-editor-page .photo-uploader--compact .photo-uploader__body{text-align:left;flex-direction:row;gap:10px;padding:10px 12px}.canvas-editor-page .photo-uploader--compact .photo-uploader__main{text-align:left;flex:1;align-items:flex-start;gap:2px;min-width:0}.canvas-editor-page .photo-uploader--compact .photo-uploader__icon{font-size:22px}.canvas-editor-page .photo-uploader--compact .photo-uploader__hint{color:#333;max-width:none;font-size:13px;font-weight:500;line-height:1.35}.canvas-editor-page .photo-uploader--compact .photo-uploader__stats{font-size:11px;line-height:1.35}.canvas-editor-page .photo-uploader--compact .photo-uploader__stats-sep{margin:0 4px}.canvas-editor-page .photo-uploader__badge--inline{align-self:flex-start;margin-bottom:2px;position:static}.canvas-editor-page .photo-uploader-wrap:has(.photo-uploader--compact){margin-bottom:8px}.canvas-editor-page .mobile-bottom-sheet .photo-list-header{padding:8px 12px 0}.canvas-editor-page .mobile-bottom-sheet .photo-list-tabs{margin-top:8px}.canvas-editor-page .material-tab{flex-direction:column;height:100%;min-height:0;display:flex}.canvas-editor-page .material-category-list{border-bottom:1px solid #f4f5f6;padding:12px}.canvas-editor-page .material-main-categories{flex-wrap:wrap;display:flex}.canvas-editor-page .material-category-pill{color:#333;cursor:pointer;-webkit-user-select:none;user-select:none;white-space:nowrap;background:#fff;border:1px solid #e0e0e0;border-radius:4px;justify-content:center;align-items:center;min-height:34px;padding:0 12px;font-size:13px;font-weight:500;line-height:1.3;transition:background-color .15s,border-color .15s,color .15s;display:inline-flex}.canvas-editor-page .material-category-pill:hover{color:var(--brand-ink-strong);background:#ebebeb;border-color:#ccc}.canvas-editor-page .material-category-pill.is-active,.canvas-editor-page .material-category-pill.is-active:hover{color:var(--brand-ink-strong);border-color:var(--brand-ink-strong);background:#fff;font-weight:600}.canvas-editor-page .material-category-pill--more{gap:4px}.canvas-editor-page .material-subcategory-menu{background:#fff;border:1px solid #e5e5e5;border-radius:8px;flex-wrap:wrap;gap:6px;padding:12px;display:flex;box-shadow:0 4px 16px #0000001a}.canvas-editor-page .material-subcategory-menu--inline{box-shadow:none;width:100%;margin-top:8px}.canvas-editor-page .material-scroll-list{flex:1;padding-bottom:20px;overflow-y:auto}.canvas-editor-page .material-loading{text-align:center;color:#888;padding:24px;font-size:13px}.canvas-editor-page .material-category-section{margin-bottom:24px}.canvas-editor-page .material-category-header{justify-content:space-between;align-items:center;margin-bottom:12px;padding:0 12px;display:flex}.canvas-editor-page .material-category-header h3{color:#333;margin:0;font-size:15px;font-weight:600}.canvas-editor-page .material-view-more{color:#666;cursor:pointer;background:0 0;border:none;padding:0;font-size:13px}.canvas-editor-page .material-view-more:hover{color:#444}.canvas-editor-page .material-grid{grid-template-columns:repeat(3,1fr);gap:7px;padding:0 10px 0 12px;display:grid}.canvas-editor-page .material-item{cursor:grab;background:#f4f5f6;border-radius:4px;justify-content:center;align-items:center;width:85px;height:85px;margin:0 auto;padding:10px;transition:background-color .15s;display:flex}.canvas-editor-page .material-item:hover{background:#00000014}.canvas-editor-page .material-item:active{cursor:grabbing}.canvas-editor-page .material-item-img{object-fit:contain;object-position:center;pointer-events:none;width:100%;height:100%}.canvas-editor-page .toolbox-template-list{flex-direction:column;height:100%;min-height:0;display:flex}.canvas-editor-page .toolbox-template-list__header{flex-shrink:0;padding:12px 12px 0}.canvas-editor-page .toolbox-template-list__header h3{color:var(--brand-ink-strong);margin:8px 0 6px;font-size:16px;font-weight:600}.canvas-editor-page .toolbox-template-list__header p{color:#666;margin:0 0 12px;font-size:13px;line-height:1.5}.canvas-editor-page .toolbox-template-list__scroll{flex:1;min-height:0;padding-bottom:20px;overflow-y:auto}.canvas-editor-page .toolbox-template-list__status{color:#666;text-align:center;padding:24px 12px;font-size:13px}.canvas-editor-page .toolbox-template-list__status--error{color:#cf1322}.canvas-editor-page .preset-list{flex-direction:column;height:100%;min-height:0;display:flex}.canvas-editor-page .preset-list__header{flex-shrink:0;padding:12px 12px 0}.canvas-editor-page .preset-list__header h3{color:var(--brand-ink-strong);margin:8px 0 6px;font-size:16px;font-weight:600}.canvas-editor-page .preset-list__header p{color:#666;margin:0 0 12px;font-size:13px;line-height:1.5}.canvas-editor-page .preset-list__categories{flex-wrap:wrap;flex-shrink:0;gap:6px;padding:0 12px 12px;display:flex}.canvas-editor-page .preset-list__scroll{flex:1;min-height:0;padding:0 12px 24px;overflow-y:auto}.canvas-editor-page .preset-list__status{color:#666;text-align:center;padding:24px 0;font-size:13px}.canvas-editor-page .preset-list__status--error{color:#cf1322}.canvas-editor-page .preset-list__masonry{column-count:2;column-gap:12px}.canvas-editor-page .preset-list__card{break-inside:avoid;cursor:pointer;background:#fff;border:1px solid #e5e5e5;border-radius:12px;margin-bottom:12px;transition:border-color .15s,box-shadow .15s;position:relative;overflow:hidden}.canvas-editor-page .preset-list__card:hover{border-color:var(--brand-ink-strong);box-shadow:0 6px 16px #00000014}.canvas-editor-page .preset-list__card.is-adding{opacity:.7;pointer-events:none}.canvas-editor-page .preset-list__media{width:100%;position:relative}.canvas-editor-page .preset-list__media img{width:100%;height:auto;display:block}.canvas-editor-page .preset-list__placeholder{color:#999;text-align:center;background:#f5f5f5;justify-content:center;align-items:center;min-height:120px;padding:12px;font-size:12px;display:flex}.canvas-editor-page .preset-list__overlay{color:#333;background:#ffffffc7;justify-content:center;align-items:center;font-size:12px;display:flex;position:absolute;inset:0}.canvas-editor-page .preset-list__edit{color:#222;cursor:pointer;opacity:0;pointer-events:none;z-index:2;background:#fffffff0;border:1px solid #e5e5e5;border-radius:999px;justify-content:center;align-items:center;width:28px;height:28px;transition:opacity .15s,background .15s,border-color .15s;display:inline-flex;position:absolute;top:8px;right:8px;box-shadow:0 2px 8px #0000001f}.canvas-editor-page .preset-list__card:hover .preset-list__edit,.canvas-editor-page .preset-list__edit:focus-visible{opacity:1;pointer-events:auto}.canvas-editor-page .preset-list__edit:hover{border-color:var(--brand-ink-strong);background:#fff}.canvas-editor-page .preset-list--mobile .preset-list__edit{opacity:1;pointer-events:auto}.canvas-editor-page .preset-list--mobile .preset-list__header h3,.canvas-editor-page .mobile-bottom-sheet .preset-list__header h3{display:none}.canvas-editor-page .preset-list--mobile,.canvas-editor-page .mobile-bottom-sheet .preset-list{height:auto}.canvas-editor-page .preset-list--mobile .preset-list__scroll,.canvas-editor-page .mobile-bottom-sheet .preset-list__scroll{flex:none;overflow:visible}.canvas-editor-page .toolbox-template-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;padding:0 10px 10px;display:grid}.canvas-editor-page .toolbox-template-card{cursor:pointer;text-align:left;background:0 0;border:none;padding:0}.canvas-editor-page .toolbox-template-card:disabled{cursor:not-allowed;opacity:.6}.canvas-editor-page .toolbox-template-card__media{aspect-ratio:9/16;background:#f2f2f2;border-radius:8px;outline:1px solid #e4e4e4;position:relative;overflow:hidden}.canvas-editor-page .toolbox-template-card__badge{color:#fff;z-index:2;background:#111114b8;border-radius:999px;padding:3px 8px;font-size:10px;font-weight:700;position:absolute;top:8px;left:8px}.canvas-editor-page .toolbox-template-card__placeholder,.canvas-editor-page .toolbox-template-card__media img{object-fit:cover}.canvas-editor-page .toolbox-template-card__placeholder{color:#888;text-align:center;justify-content:center;align-items:center;height:100%;padding:8px;font-size:12px;display:flex}.canvas-editor-page .toolbox-template-card__shade{color:#fff;opacity:0;background:#00000059;justify-content:center;align-items:center;font-size:12px;font-weight:600;transition:opacity .2s;display:flex;position:absolute;inset:0}.canvas-editor-page .toolbox-template-card:hover .toolbox-template-card__shade,.canvas-editor-page .toolbox-template-card:focus-visible .toolbox-template-card__shade{opacity:1}.canvas-editor-page .toolbox-template-card__name{color:#333;text-overflow:ellipsis;white-space:nowrap;margin:6px 0 0;font-size:12px;line-height:1.4;overflow:hidden}.canvas-editor-page .plugin-list{height:100%;padding:12px;overflow:auto}.canvas-editor-page .plugin-list-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px 10px;display:grid}.canvas-editor-page .plugin-list-item{min-width:0}.canvas-editor-page .plugin-list-card{cursor:pointer;background:#fff;border:1px solid #e5e7eb;border-radius:12px;flex-direction:column;align-items:center;width:100%;padding:10px 8px;transition:border-color .2s,box-shadow .2s;display:flex}.canvas-editor-page .plugin-list-card:hover{border-color:#93c5fd;box-shadow:0 4px 12px #3b82f61f}.canvas-editor-page .plugin-list-thumb{justify-content:center;align-items:center;width:40px;height:40px;margin-bottom:8px;display:flex}.canvas-editor-page .plugin-list-thumb svg{color:#4b5563;flex-shrink:0}.canvas-editor-page .plugin-list-card:hover .plugin-list-thumb svg{color:var(--brand-accent)}.canvas-editor-page .plugin-list-title{color:#374151;text-align:center;font-size:12px;font-weight:500;line-height:1.35}.canvas-editor-page .plugin-list-card:hover .plugin-list-title{color:var(--brand-accent)}.canvas-editor-page .canvas-background-tab{flex-direction:column;gap:20px;padding:16px 12px 24px;display:flex}.canvas-editor-page .canvas-background-tab__section{flex-direction:column;gap:10px;display:flex}.canvas-editor-page .canvas-background-section__title{color:#333;margin:0;font-size:13px;font-weight:600}.canvas-editor-page .canvas-background-section__hint{color:#666;margin-bottom:10px;font-size:12px;line-height:1.5}.canvas-editor-page .canvas-background-section__hint--note{color:#888;font-size:11px}.canvas-editor-page .canvas-background-mode-switch{background:#f5f5f5;border-radius:8px;grid-template-columns:1fr 1fr;gap:8px;padding:4px;display:grid}.canvas-editor-page .canvas-background-mode-switch__btn{color:#666;cursor:pointer;background:0 0;border:none;border-radius:6px;padding:8px 10px;font-size:13px;font-weight:500}.canvas-editor-page .canvas-background-mode-switch__btn.is-active{color:#333;background:#fff;box-shadow:0 1px 3px #00000014}.canvas-editor-page .canvas-background-colors{grid-template-columns:repeat(6,32px);justify-content:start;gap:10px;display:grid}.canvas-editor-page .canvas-background-color-dot{cursor:pointer;width:32px;height:32px;position:relative}.canvas-editor-page .canvas-background-color-dot input[type=radio]{opacity:0;pointer-events:none;position:absolute}.canvas-editor-page .canvas-background-color-dot__swatch{border:1px solid #ddd;border-radius:50%;width:100%;height:100%;transition:box-shadow .15s,transform .15s;display:block}.canvas-editor-page .canvas-background-color-dot.is-selected .canvas-background-color-dot__swatch,.canvas-editor-page .canvas-background-color-dot:hover .canvas-background-color-dot__swatch{transform:scale(1.05);box-shadow:0 0 0 2px #444}.canvas-editor-page .canvas-background-color-dot--custom .canvas-background-color-dot__picker{opacity:0;cursor:pointer;z-index:2;position:absolute;inset:0}.canvas-editor-page .canvas-background-color-dot--custom .custom-color-picker-badge{color:#555;pointer-events:none;z-index:3;background:#fff;border-radius:50%;justify-content:center;align-items:center;width:14px;height:14px;display:flex;position:absolute;top:0;right:0;transform:translate(20%,-20%);box-shadow:0 0 0 1px #0000001f}.canvas-editor-page .canvas-background-image-card{cursor:pointer;text-align:left;background:#fff;border:1px solid #e5e5e5;border-radius:10px;align-items:center;gap:12px;width:100%;padding:10px 12px;display:flex}.canvas-editor-page .canvas-background-image-card:hover{background:#fafafa;border-color:#444}.canvas-editor-page .canvas-background-image-card__preview{color:#888;background:#f4f5f6;border-radius:8px;flex-shrink:0;justify-content:center;align-items:center;width:52px;height:52px;display:flex;overflow:hidden}.canvas-editor-page .canvas-background-image-card__preview.has-image{border:1px solid #e5e5e5}.canvas-editor-page .canvas-background-image-card__meta{flex-direction:column;gap:2px;min-width:0;display:flex}.canvas-editor-page .canvas-background-image-card__title{color:#333;font-size:13px;font-weight:600}.canvas-editor-page .canvas-background-image-card__desc{color:#888;font-size:12px}.canvas-editor-page .canvas-background-image-settings{border-top:1px solid #f0f0f0;flex-direction:column;gap:12px;margin-top:4px;padding-top:12px;display:flex}.canvas-editor-page .canvas-background-image-settings__group{flex-direction:column;align-items:flex-start;gap:8px;display:flex}.canvas-editor-page .canvas-background-image-settings__controls-row{align-items:center;gap:10px;padding-left:24px;display:flex}.canvas-editor-page .canvas-background-check{color:#444;cursor:pointer;align-items:center;gap:8px;font-size:13px;display:flex}.canvas-editor-page .canvas-background-check input{accent-color:#444}.canvas-editor-page .canvas-background-image-settings__opacity{color:#666;align-items:center;gap:8px;font-size:12px;display:flex}.canvas-editor-page .canvas-background-image-settings__opacity select{border:1px solid #e5e5e5;border-radius:6px;padding:4px 8px;font-size:12px}.canvas-editor-page .plugin-list-notice{color:#9a3412;background:#fff7ed;border:1px solid #fdba74;border-radius:8px;margin:0 12px 10px;padding:8px 10px;font-size:12px;line-height:1.4}.canvas-editor-page .canvas-background-image-settings .check-wrap{gap:2px;display:flex;position:relative}.canvas-editor-page .canvas-background-image-settings .check-wrap.is-disabled{cursor:not-allowed;opacity:.45}.canvas-editor-page .canvas-background-image-settings .check-wrap.is-disabled label{cursor:not-allowed}.canvas-editor-page .canvas-background-image-settings .check-wrap input{opacity:0;pointer-events:none;position:absolute;width:0!important;height:0!important}.canvas-editor-page .canvas-background-image-settings .check-wrap input+label{color:#374151;cursor:pointer;letter-spacing:.3px;-webkit-user-select:none;user-select:none;align-items:center;gap:6px;font-size:14px;font-weight:400;line-height:1.5;display:inline-flex}.canvas-editor-page .canvas-background-image-settings .check-wrap input+label:before{box-sizing:border-box;content:"";background:color-mix(in srgb, var(--brand-ink-soft) 30%, transparent);border-radius:4px;flex-shrink:0;width:18px;height:18px;display:block}.canvas-editor-page .canvas-background-image-settings .check-wrap input:checked+label:before{background-color:#000;background-image:url(/src/img/check@2x.png);background-position:50%;background-repeat:no-repeat;background-size:12px}.canvas-editor-page .fx-tab{--fx-accent:#444;--fx-accent-dark:#222;--fx-accent-soft:#44444414;--fx-accent-ring:#4443;background:#fff;flex-direction:column;height:100%;display:flex}.canvas-editor-page .fx-main{flex-direction:column;gap:4px;padding:16px 14px;display:flex}.canvas-editor-page .fx-title{color:var(--fx-accent-dark);margin:0 0 2px;font-size:15px;font-weight:700}.canvas-editor-page .fx-subtitle{color:#9ca3af;margin:0 0 14px;font-size:12px}.canvas-editor-page .fx-cards{flex-direction:column;gap:10px;display:flex}.canvas-editor-page .fx-card{cursor:pointer;text-align:left;background:#fafafa;border:1.5px solid #e5e5e5;border-radius:12px;align-items:center;gap:14px;width:100%;padding:14px 16px;transition:all .2s;display:flex}.canvas-editor-page .fx-card:hover{border-color:var(--fx-accent);background:#fff;transform:translateY(-1px);box-shadow:0 2px 8px #0000000f}.canvas-editor-page .fx-card__icon{background:#fff;border:1px solid #e5e5e5;border-radius:10px;flex-shrink:0;justify-content:center;align-items:center;width:52px;height:52px;display:flex}.canvas-editor-page .fx-card__body{flex-direction:column;flex:1;gap:3px;min-width:0;display:flex}.canvas-editor-page .fx-card__label{color:var(--fx-accent-dark);font-size:13px;font-weight:600}.canvas-editor-page .fx-card__desc{color:#9ca3af;font-size:11px;line-height:1.4}.canvas-editor-page .fx-card__arrow{color:#d1d5db;flex-shrink:0;transition:color .2s,transform .2s}.canvas-editor-page .fx-card:hover .fx-card__arrow{color:var(--fx-accent-dark);transform:translate(2px)}.canvas-editor-page .fx-detail{flex-direction:column;height:100%;display:flex}.canvas-editor-page .fx-back{cursor:pointer;color:var(--fx-accent-dark);background:0 0;border:none;border-bottom:1px solid #f0f0f0;flex-shrink:0;align-items:center;gap:6px;padding:10px 12px;font-size:13px;font-weight:600;display:flex}.canvas-editor-page .fx-back:hover{background:#fafafa}.canvas-editor-page .fx-detail__content{flex:1;overflow:hidden}.canvas-editor-page .canvas-transition-effect__card{background:#fff;border:1px solid #f0f0f0;border-radius:10px;padding:12px}.canvas-editor-page .canvas-transition-effect__card-title{color:var(--fx-accent-dark,#222);margin-bottom:8px;font-size:14px;font-weight:600}.canvas-editor-page .canvas-transition-effect__hint{color:#888;font-size:12px;line-height:1.45}.canvas-editor-page .canvas-transition-effect__actions{justify-content:center;align-items:center;gap:8px;margin:0 auto;display:flex}.canvas-editor-page .canvas-transition-effect__preview-note{text-align:center;color:#666;font-size:13px;font-style:italic}.canvas-editor-page .canvas-transition-effect__preset-name{color:var(--fx-accent,#444);font-style:normal;font-weight:600}.canvas-editor-page .canvas-effects-action-btn{cursor:pointer;border-radius:8px;padding:8px 16px;font-size:13px;font-weight:600;transition:background-color .2s,border-color .2s,color .2s}.canvas-editor-page .canvas-effects-action-btn--secondary{color:#374151;background:#fff;border:1px solid #d1d5db}.canvas-editor-page .canvas-effects-action-btn--secondary:hover{border-color:var(--fx-accent,#444);color:var(--fx-accent-dark,#222);background:#fafafa}.canvas-editor-page .canvas-effects-action-btn--primary{border:1px solid var(--fx-accent,#444);background:var(--fx-accent,#444);color:#fff}.canvas-editor-page .canvas-effects-action-btn--primary:hover{background:#333;border-color:#333}.canvas-editor-page .canvas-opening-effect .scroll-list{flex:1;width:100%;height:calc(100% - 110px);padding-bottom:20px;overflow-y:auto}.canvas-editor-page .canvas-opening-effect .effect-grid-container{padding:10px}.canvas-editor-page .canvas-opening-effect .effect-grid{grid-template-columns:repeat(2,1fr);gap:16px 12px;padding-bottom:80px;display:grid}.canvas-editor-page .canvas-opening-effect .effect-item{width:100%}.canvas-editor-page .canvas-opening-effect .effect-card{background:#fff;border-radius:8px;width:100%}.canvas-editor-page .canvas-opening-effect .effect-container{cursor:pointer;background:#fff;border:2px solid #0000;border-radius:8px;position:relative}.canvas-editor-page .canvas-opening-effect .effect-container:hover{transform:translateY(-2px);box-shadow:0 4px 12px #00000026}.canvas-editor-page .canvas-opening-effect .effect-container.selected{box-shadow:0 4px 12px var(--fx-accent-ring,#4443);border-color:var(--fx-accent,#444)}.canvas-editor-page .canvas-opening-effect .image-container{aspect-ratio:9/16;border-radius:6px;width:100%;position:relative;overflow:hidden}.canvas-editor-page .canvas-opening-effect .effect-image,.canvas-editor-page .canvas-opening-effect .effect-video{object-fit:cover;width:100%;height:100%}.canvas-editor-page .canvas-opening-effect .selected-badge{background:var(--fx-accent,#444);color:#fff;z-index:2;border-radius:50%;justify-content:center;align-items:center;width:24px;height:24px;display:flex;position:absolute;top:8px;right:8px}.canvas-editor-page .canvas-opening-effect__empty{text-align:center;color:#9ca3af;padding:24px;font-size:13px}.canvas-editor-page .canvas-opening-effect__desc{color:#888;margin:0;font-size:12px;line-height:1.45}.canvas-editor-page .canvas-effects-modal{z-index:12000;justify-content:center;align-items:center;padding:16px;display:flex;position:fixed;inset:0}.canvas-editor-page .canvas-effects-modal.editor-modal-animated{opacity:0;pointer-events:none;transition:opacity .3s}.canvas-editor-page .canvas-effects-modal.editor-modal-animated.is-open{opacity:1;pointer-events:auto}.canvas-editor-page .canvas-effects-modal.editor-modal-animated.is-closing{opacity:0;pointer-events:none}.canvas-editor-page .canvas-effects-modal .bg{opacity:0;background:#0f172a73;transition:opacity .3s;position:absolute;inset:0}.canvas-editor-page .canvas-effects-modal.editor-modal-animated.is-open .bg{opacity:1}.canvas-editor-page .canvas-effects-modal.editor-modal-animated.is-closing .bg{opacity:0}.canvas-editor-page .canvas-effects-modal .inner{opacity:0;background:#fff;border-radius:12px;flex-direction:column;width:100%;max-height:calc(100vh - 32px);transition:opacity .3s,transform .3s cubic-bezier(.22,1,.36,1);display:flex;position:relative;overflow:hidden;transform:scale(.96)translateY(16px);box-shadow:0 20px 50px #0f172a33}.canvas-editor-page .canvas-effects-modal.editor-modal-animated.is-open .inner{opacity:1;transform:scale(1)translateY(0)}.canvas-editor-page .canvas-effects-modal.editor-modal-animated.is-closing .inner{opacity:0;transform:scale(.98)translateY(8px)}.canvas-editor-page .canvas-effects-modal__header{border-bottom:1px solid #f0f0f0;justify-content:space-between;align-items:center;padding:14px 16px;display:flex}.canvas-editor-page .canvas-effects-modal__header h3{margin:0;font-size:15px;font-weight:600}.canvas-editor-page .canvas-effects-modal__close{cursor:pointer;color:#6b7280;background:0 0;border:none;font-size:24px;line-height:1}.canvas-editor-page .canvas-effects-modal__body{padding:16px;overflow:auto}.canvas-editor-page .canvas-effects-modal__footer{border-top:1px solid #f0f0f0;justify-content:flex-end;gap:8px;padding:12px 16px;display:flex}.canvas-editor-page .canvas-effects-modal__btn{color:#374151;cursor:pointer;background:#fff;border:1px solid #d1d5db;border-radius:8px;padding:8px 14px;font-size:13px}.canvas-editor-page .canvas-effects-modal__btn--primary{background:var(--fx-accent,#444);border-color:var(--fx-accent,#444);color:#fff}.canvas-editor-page .canvas-effects-modal__btn--primary:hover{background:#333;border-color:#333}.canvas-editor-page .canvas-opening-nudge{color:#374151;flex-direction:column;gap:12px;font-size:14px;line-height:1.55;display:flex}.canvas-editor-page .canvas-opening-nudge__preview{flex-direction:column;align-items:center;gap:8px;display:flex}.canvas-editor-page .canvas-opening-nudge__preview-frame{aspect-ratio:9/16;background:#111827;border:1px solid #e5e7eb;border-radius:14px;width:148px;overflow:hidden;box-shadow:0 8px 20px #0f172a1f}.canvas-editor-page .canvas-opening-nudge__preview-img{object-fit:cover;width:100%;height:100%;display:block}.canvas-editor-page .canvas-opening-nudge__preview-label{color:#6b7280;letter-spacing:.01em;font-size:12px;font-weight:600}.canvas-editor-page .canvas-opening-nudge__lead{margin:0}.canvas-editor-page .canvas-opening-nudge__hint{color:#1f2937;background:#f8fafc;border:1px solid #e5e7eb;border-radius:8px;margin:0;padding:10px 12px}.canvas-editor-page .canvas-opening-nudge__path{color:#6b7280;margin:0;font-size:13px}.canvas-editor-page .canvas-effects-mobile-preview-hint{color:#4b5563;background:#f8fafc;border:1px dashed #d1d5db;border-radius:8px;align-items:flex-start;gap:8px;margin:0 0 12px;padding:10px 12px;font-size:12.5px;line-height:1.45;display:none}.canvas-editor-page .canvas-effects-mobile-preview-hint__icon{color:#6b7280;flex-shrink:0;margin-top:1px}@media (max-width:900px){.canvas-editor-page .sl-modal-grid .canvas-effects-mobile-preview-hint{display:flex}}@media (max-width:640px){.canvas-editor-page .animated-image-modal .canvas-effects-mobile-preview-hint{display:flex}}.canvas-editor-page .canvas-effects-form{flex-direction:column;gap:12px;display:flex}.canvas-editor-page .canvas-effects-form__field{flex-direction:column;gap:6px;font-size:13px;display:flex}.canvas-editor-page .canvas-effects-form__field input,.canvas-editor-page .canvas-effects-form__field textarea{border:1px solid #d1d5db;border-radius:8px;outline:none;padding:8px 10px;font-size:13px;transition:border-color .2s,box-shadow .2s}.canvas-editor-page .canvas-effects-form__field input:focus,.canvas-editor-page .canvas-effects-form__field textarea:focus{border-color:var(--fx-accent,#444);box-shadow:0 0 0 3px var(--fx-accent-soft,#44444414)}.canvas-editor-page .canvas-effects-image-selector-host{width:100%;position:relative}.canvas-editor-page .canvas-effects-image-selector{cursor:pointer;background:#f9fafb;border:1px dashed #d1d5db;border-radius:8px;justify-content:center;align-items:center;width:100%;min-height:120px;display:flex;position:relative;overflow:hidden}.canvas-editor-page .canvas-effects-image-selector__clear{color:#fff;cursor:pointer;z-index:2;background:#0000008a;border:none;border-radius:50%;justify-content:center;align-items:center;width:24px;height:24px;padding:0;font-size:16px;line-height:1;display:inline-flex;position:absolute;top:6px;right:6px}.canvas-editor-page .canvas-effects-image-selector__clear:hover{background:#000000b3}.canvas-editor-page .canvas-effects-image-selector__preview{object-fit:cover;width:100%;height:120px}.canvas-editor-page .canvas-effects-image-selector--intro-slot{background:#f8fafc;border:2px dashed #d1d5db;border-radius:10px;min-height:0;padding:10px;transition:border-color .2s,box-shadow .2s}.canvas-editor-page .canvas-effects-image-selector--intro-slot:hover{border-color:var(--fx-accent,#444);box-shadow:0 0 0 3px var(--fx-accent-soft,#44444414)}.canvas-editor-page .canvas-effects-image-selector--intro-slot .canvas-effects-image-selector__preview{object-fit:contain;border-radius:6px;width:100%;height:auto;max-height:160px;display:block}.canvas-editor-page .canvas-effects-image-selector__overlay{color:#fff;opacity:0;background:#0f172a73;justify-content:center;align-items:center;font-size:12px;font-weight:600;transition:opacity .2s;display:flex;position:absolute;inset:0}.canvas-editor-page .canvas-effects-image-selector--intro-slot:hover .canvas-effects-image-selector__overlay{opacity:1}.canvas-editor-page .canvas-effects-image-selector__empty{color:#9ca3af;flex-direction:column;justify-content:center;align-items:center;gap:6px;min-height:120px;font-size:12px;display:flex}.canvas-editor-page .canvas-effects-intro-images{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;display:grid}.canvas-editor-page .canvas-intro-images-section{border-top:1px solid #f0f0f0;margin-top:18px;padding-top:16px}.canvas-editor-page .canvas-intro-variant-picker{margin-bottom:0}.canvas-editor-page .canvas-intro-variant-picker__label{color:#374151;margin:0 0 8px;font-size:13px;font-weight:600}.canvas-editor-page .canvas-intro-variant-picker__grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;display:grid}.canvas-editor-page .canvas-intro-variant-picker__grid--three{grid-template-columns:repeat(3,minmax(0,1fr))}@media (max-width:520px){.canvas-editor-page .canvas-intro-variant-picker__grid--three{grid-template-columns:repeat(2,minmax(0,1fr))}.canvas-editor-page .canvas-intro-variant-picker--envelope .canvas-intro-variant-picker__grid--three{grid-template-columns:repeat(3,minmax(0,1fr));gap:6px}.canvas-editor-page .canvas-intro-variant-picker--envelope .canvas-intro-variant-picker__item{border-width:1.5px;border-radius:8px;gap:4px;padding:5px}.canvas-editor-page .canvas-intro-variant-picker--envelope .canvas-intro-variant-picker__media{border-radius:6px}.canvas-editor-page .canvas-intro-variant-picker--envelope .canvas-intro-variant-picker__label-text{font-size:10px;line-height:1.2}.canvas-editor-page .canvas-intro-variant-picker--envelope .canvas-intro-variant-picker__item.is-selected{box-shadow:0 0 0 2px var(--fx-accent-soft,#44444414)}}.canvas-editor-page .canvas-intro-variant-picker__item{cursor:pointer;text-align:center;background:#fff;border:2px solid #e5e7eb;border-radius:12px;flex-direction:column;align-items:stretch;gap:8px;padding:10px;transition:border-color .2s,box-shadow .2s;display:flex}.canvas-editor-page .canvas-intro-variant-picker__media{aspect-ratio:9/16;background:#f3f4f6;border-radius:8px;width:100%;position:relative;overflow:hidden}.canvas-editor-page .canvas-intro-variant-picker__thumb,.canvas-editor-page .canvas-intro-variant-picker__video{object-fit:cover;width:100%;height:100%}.canvas-editor-page .canvas-intro-variant-picker__play-badge{color:#fff;pointer-events:none;background:#0f172a8c;border-radius:999px;justify-content:center;align-items:center;width:24px;height:24px;display:flex;position:absolute;bottom:8px;right:8px}.canvas-editor-page .canvas-intro-variant-picker__item:hover .canvas-intro-variant-picker__play-badge,.canvas-editor-page .canvas-intro-variant-picker__item.is-selected .canvas-intro-variant-picker__play-badge{opacity:0}.canvas-editor-page .canvas-intro-variant-picker__label-text{color:#374151;font-size:13px;font-weight:600}.canvas-editor-page .canvas-intro-variant-picker__item.is-selected{border-color:var(--fx-accent,#444);box-shadow:0 0 0 3px var(--fx-accent-soft,#44444414);background:#fafafa}.canvas-editor-page .canvas-intro-variant-picker__item:hover{border-color:#ccc}.canvas-editor-page .canvas-effects-preview-section{background:#f5f5f5;border:1px solid #d9d9d9;border-radius:8px;margin-top:8px;padding:16px}.canvas-editor-page .canvas-effects-preview-section h4{margin:0 0 12px;font-size:14px}.canvas-editor-page .canvas-effects-preview-content{aspect-ratio:9/16;text-align:center;background:linear-gradient(135deg,#820000 0%,#5a0000 50%,#3a0000 100%);border-radius:14px;flex-direction:column;justify-content:space-between;gap:12px;width:100%;max-width:240px;margin:0 auto;padding:20px 14px 22px;display:flex;box-shadow:0 10px 28px #0f172a38}.canvas-editor-page .canvas-effects-preview-title,.canvas-editor-page .canvas-effects-preview-subtitle{color:#fff;flex-shrink:0}.canvas-editor-page .canvas-effects-preview-title{text-shadow:0 1px 3px #00000073;font-size:13px;font-weight:700;line-height:1.3}.canvas-editor-page .canvas-effects-preview-subtitle{opacity:.92;text-shadow:0 1px 2px #0006;font-size:12px;line-height:1.45}.canvas-editor-page .canvas-effects-preview-image-container{flex:1;justify-content:center;align-items:center;width:100%;min-height:0;display:flex}.canvas-editor-page .canvas-effects-preview-image{object-fit:contain;border-radius:8px;width:auto;max-width:100%;height:auto;max-height:100%}.canvas-editor-page .canvas-effects-preview-placeholder{aspect-ratio:1;color:#fff9;border:2px dashed #ffffff4d;border-radius:8px;justify-content:center;align-items:center;width:56%;max-width:120px;height:auto;font-size:11px;display:flex}.canvas-editor-page .animated-image-modal .canvas-effects-preview-content{width:100%;max-width:240px}.canvas-editor-page .photobooth-strip-images .canvas-effects-image-selector--intro-slot{aspect-ratio:1;justify-content:center;align-items:center;width:100%;min-height:0;padding:4px;display:flex;overflow:hidden}.canvas-editor-page .photobooth-strip-images .canvas-effects-image-selector--intro-slot .canvas-effects-image-selector__preview{aspect-ratio:1;object-fit:cover;width:100%;height:100%;max-height:none}.canvas-editor-page .photobooth-strip-images .canvas-effects-image-selector__empty{aspect-ratio:auto;gap:2px;min-height:0;padding:0;font-size:10px}.canvas-editor-page .photobooth-strip-images .canvas-effects-image-selector__empty svg{width:16px;height:16px}@media (max-width:999px){.canvas-editor-page .canvas-effects-modal{align-items:flex-end;padding:0}.canvas-editor-page .canvas-effects-modal .inner{border-radius:16px 16px 0 0;max-width:100%!important;max-height:min(86vh,100dvh)!important}.canvas-editor-page .canvas-effects-modal.editor-modal-animated.is-open .inner{transform:translateY(0)}.canvas-editor-page .canvas-effects-modal.editor-modal-animated .inner,.canvas-editor-page .canvas-effects-modal.editor-modal-animated.is-closing .inner{transform:translateY(100%)}}@media (max-width:768px){.canvas-editor-page .fx-main{padding:12px 10px}.canvas-editor-page .fx-card{gap:12px;padding:12px 14px}.canvas-editor-page .fx-card__icon{width:44px;height:44px}.canvas-editor-page .canvas-opening-effect .effect-grid{gap:12px 8px}}.canvas-editor-page .canvas-music-tab{flex-direction:column;height:100%;min-height:0;display:flex}.canvas-editor-page .canvas-music-tab__current{border-bottom:1px solid #eee;flex-shrink:0;padding:12px 14px}.canvas-editor-page .canvas-music-tab__current-head{justify-content:space-between;align-items:center;margin-bottom:10px;display:flex}.canvas-editor-page .canvas-music-tab__current-head h4{color:#222;margin:0;font-size:13px;font-weight:600}.canvas-editor-page .canvas-music-tab__clear{color:#888;cursor:pointer;background:0 0;border:none;padding:0;font-size:12px;font-weight:600}.canvas-editor-page .canvas-music-tab__player{background:linear-gradient(135deg,#fafafa 0%,#f3f3f3 100%);border:1px solid #e8e8e8;border-radius:14px;align-items:center;gap:12px;min-height:72px;padding:12px 14px;display:flex}.canvas-editor-page .canvas-music-tab__player.is-playing{border-color:#ccc;box-shadow:inset 0 0 0 1px #44444414}.canvas-editor-page .canvas-music-tab__player-art{color:#fff;background:#444;border:0;border-radius:12px;flex-shrink:0;justify-content:center;align-items:center;width:44px;height:44px;display:flex}.canvas-editor-page .canvas-music-tab__player-body{flex-direction:column;flex:1;gap:4px;min-width:0;display:flex}.canvas-editor-page .canvas-music-tab__player-title{color:#222;white-space:nowrap;text-overflow:ellipsis;font-size:14px;font-weight:600;overflow:hidden}.canvas-editor-page .canvas-music-tab__player-meta{color:#888;white-space:nowrap;text-overflow:ellipsis;font-size:12px;overflow:hidden}.canvas-editor-page .canvas-music-tab__player-actions{flex-shrink:0;align-items:center;gap:2px;display:flex}.canvas-editor-page .canvas-music-tab__player-trim{color:#999;cursor:pointer;background:0 0;border:0;border-radius:8px;justify-content:center;align-items:center;width:28px;height:28px;padding:0;display:flex}.canvas-editor-page .canvas-music-tab__player-trim:hover{color:#444;background:#44444414}.canvas-editor-page .canvas-music-tab__player-play{color:#444;cursor:pointer;background:0 0;border:none;flex-shrink:0;padding:0;line-height:1;display:flex}.canvas-editor-page .canvas-music-tab__picker{flex-direction:column;flex:1;min-height:0;display:flex}.canvas-editor-page .canvas-music-tab__login-hint{color:#888;margin:0;padding:8px 14px 14px;font-size:12px}.canvas-editor-page .canvas-music-tab__login-hint a{color:#444;text-underline-offset:2px;font-weight:600;text-decoration:underline}.canvas-editor-page .canvas-music-tab .card-bgm-picker-main-tabs{border-bottom:1px solid #eee;gap:0;margin:0 12px 10px;display:flex}.canvas-editor-page .canvas-music-tab .card-bgm-picker-main-tab{color:#888;cursor:pointer;background:0 0;border:0;border-bottom:2px solid #0000;flex:50%;margin-bottom:-1px;padding:10px 8px;font-size:13px;font-weight:500;line-height:1}.canvas-editor-page .canvas-music-tab .card-bgm-picker-main-tab.is-active{color:#222;border-bottom-color:#444}.canvas-editor-page .canvas-music-tab .card-bgm-picker-tabs{flex-wrap:wrap;gap:8px;padding:0 12px 10px;display:flex}.canvas-editor-page .canvas-music-tab .card-bgm-picker-tab{color:#555;cursor:pointer;background:#f5f5f5;border:0;border-radius:999px;padding:8px 12px;font-size:12px;line-height:1}.canvas-editor-page .canvas-music-tab .card-bgm-picker-tab.is-active{color:#fff;background:#444}.canvas-editor-page .canvas-music-tab .card-bgm-picker-search-wrap{padding:0 12px 10px}.canvas-editor-page .canvas-music-tab .card-bgm-picker-search{box-sizing:border-box;border:1px solid #ddd;border-radius:8px;outline:none;width:100%;padding:9px 12px;font-size:13px}.canvas-editor-page .canvas-music-tab .card-bgm-picker-search:focus{border-color:#bbb}.canvas-editor-page .canvas-music-tab .card-bgm-picker-content{flex:1;min-height:0;padding:0 12px 12px;overflow:auto}.canvas-editor-page .canvas-music-tab .card-bgm-picker-empty{color:#888;text-align:center;margin:20px 0;font-size:13px}.canvas-editor-page .canvas-music-tab .card-bgm-picker-list{flex-direction:column;gap:8px;margin:0;padding:0;list-style:none;display:flex}.canvas-editor-page .canvas-music-tab .card-bgm-picker-item{cursor:pointer;text-align:left;background:#fafafa;border:1px solid #eee;border-radius:10px;align-items:center;gap:10px;width:100%;padding:10px 12px;display:flex}.canvas-editor-page .canvas-music-tab .card-bgm-picker-item:hover{border-color:#ccc}.canvas-editor-page .canvas-music-tab .card-bgm-picker-item.is-selected{background:#fafafa;border-color:#444;box-shadow:inset 0 0 0 1px #444}.canvas-editor-page .canvas-music-tab .card-bgm-picker-play{color:#444;flex-shrink:0;line-height:1}.canvas-editor-page .canvas-music-tab .card-bgm-picker-item-body{flex-direction:column;flex:1;gap:4px;min-width:0;display:flex}.canvas-editor-page .canvas-music-tab .card-bgm-picker-item-title{color:#222;white-space:nowrap;text-overflow:ellipsis;font-size:13px;font-weight:500;overflow:hidden}.canvas-editor-page .canvas-music-tab .card-bgm-picker-item-meta{color:#888;font-size:12px}.canvas-editor-page .canvas-music-tab .card-bgm-picker-selected-badge{color:#444;white-space:nowrap;flex-shrink:0;font-size:11px;font-weight:600}.canvas-editor-page .canvas-music-tab .card-bgm-upload-panel{flex-direction:column;gap:10px;min-height:0;padding:8px 12px 16px;display:flex;overflow:auto}.canvas-editor-page .canvas-music-tab .card-bgm-upload-zone{cursor:pointer;text-align:center;background:#fafafa;border:1.5px dashed #d8d8d8;border-radius:14px;flex-direction:column;justify-content:center;align-items:center;gap:8px;min-height:160px;padding:24px 16px;transition:background .15s,border-color .15s;display:flex}.canvas-editor-page .canvas-music-tab .card-bgm-upload-zone:hover{background:#f5f5f5;border-color:#bbb}.canvas-editor-page .canvas-music-tab .card-bgm-upload-zone.is-uploading,.canvas-editor-page .canvas-music-tab .card-bgm-upload-zone.is-disabled{cursor:wait;opacity:.72;pointer-events:none}.canvas-editor-page .canvas-music-tab .card-bgm-upload-icon{color:#666;background:#f0f0f0;border-radius:50%;justify-content:center;align-items:center;width:64px;height:64px;display:flex}.canvas-editor-page .canvas-music-tab .card-bgm-upload-title{color:#222;font-size:15px;font-weight:600}.canvas-editor-page .canvas-music-tab .card-bgm-upload-hint{color:#888;font-size:12px;line-height:1.5}.canvas-editor-page .canvas-music-tab .card-bgm-upload-zone-cta{color:#444;text-underline-offset:2px;font-size:13px;font-weight:600;text-decoration:underline}.canvas-editor-page .canvas-music-tab .card-bgm-upload-selected{color:#444;background:#fafafa;border:1px solid #eee;border-radius:10px;align-items:center;gap:8px;padding:10px 12px;display:flex}.canvas-editor-page .canvas-music-tab .card-bgm-upload-filename{text-overflow:ellipsis;white-space:nowrap;flex:1;font-size:13px;overflow:hidden}.canvas-editor-page .canvas-music-tab .card-bgm-upload-active{color:#444;font-size:11px;font-weight:600}.canvas-editor-page .canvas-music-tab .card-bgm-upload-library-title{color:#666;text-align:left;margin:4px 0;font-size:12px;font-weight:600}.canvas-editor-page .canvas-music-tab .user-image-picker-login{text-align:center;color:#666;padding:24px 12px;font-size:13px}.canvas-editor-page .canvas-music-tab .user-image-picker-login-btn{color:#fff;background:#444;border-radius:8px;margin-top:8px;padding:6px 12px;font-size:12px;font-weight:600;text-decoration:none;display:inline-block}.canvas-editor-page .canvas-music-tab--mobile .card-bgm-picker-content{max-height:none}.canvas-editor-page .canvas-envelope-preset-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;display:grid}.canvas-editor-page .canvas-envelope-preset-card{text-align:left;cursor:pointer;border:1px solid color-mix(in srgb, var(--brand-ink-soft) 12%, transparent);background:#fff;border-radius:10px;flex-direction:column;gap:8px;padding:10px;display:flex}.canvas-editor-page .canvas-envelope-preset-card__swatches{gap:4px;display:flex}.canvas-editor-page .canvas-envelope-preset-card__swatches i{border-radius:4px;flex:1;height:20px}.canvas-editor-page .canvas-envelope-pattern-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;display:grid}.canvas-editor-page .canvas-envelope-pattern-card{text-align:left;cursor:pointer;border:1px solid color-mix(in srgb, var(--brand-ink-soft) 12%, transparent);background:#fff;border-radius:10px;flex-direction:column;gap:6px;padding:10px;display:flex}.canvas-editor-page .canvas-envelope-pattern-card.is-active{border-color:#7c3aed;box-shadow:0 0 0 1px #7c3aed59}.canvas-editor-page .canvas-envelope-pattern-card__preview{border:1px solid color-mix(in srgb, var(--brand-ink-soft) 10%, transparent);border-radius:8px;width:100%;height:44px;display:block}.canvas-editor-page .canvas-envelope-pattern-card__label{color:#1d1d1f;font-size:13px;font-weight:600}.canvas-editor-page .canvas-envelope-pattern-card__desc{color:color-mix(in srgb, var(--brand-ink-soft) 65%, transparent);font-size:11px;line-height:1.3}.canvas-editor-page .sliding-door-image-slot .canvas-effects-image-selector--intro-slot{aspect-ratio:3/4;min-height:0;padding:8px}.canvas-editor-page .sliding-door-image-slot .canvas-effects-image-selector__preview{object-fit:contain;height:100%;max-height:none}.canvas-editor-page .sliding-door-seal-picker .canvas-effects-image-selector-host{width:100%}.canvas-editor-page .sliding-door-seal-picker .canvas-effects-image-selector__clear{width:22px;height:22px;top:4px;right:4px}.canvas-editor-page .sliding-door-seal-picker .canvas-effects-image-selector--intro-slot{aspect-ratio:1;width:100%;min-height:0;padding:10px;overflow:hidden}.canvas-editor-page .sliding-door-seal-picker .canvas-effects-image-selector__preview{aspect-ratio:1;object-fit:contain;width:100%;height:auto;max-height:none}.canvas-editor-page .sliding-door-seal-picker .canvas-effects-image-selector__empty{text-align:center;gap:4px;min-height:0;padding:0;font-size:10px}.canvas-editor-page .sliding-door-seal-upload.is-selected .canvas-effects-image-selector--intro-slot{border-color:var(--fx-accent,#444);box-shadow:0 0 0 3px var(--fx-accent-soft,#44444429)}.canvas-editor-page .sliding-door-seal-upload .canvas-effects-image-selector--intro-slot{aspect-ratio:auto;background:#f8fafc;border-radius:12px;width:auto;height:auto;min-height:0;padding:6px;position:absolute;inset:0}.canvas-editor-page .sliding-door-seal-upload .canvas-effects-image-selector__preview{aspect-ratio:1;object-fit:contain;height:100%;max-height:none}.canvas-editor-page .sliding-door-seal-upload .canvas-effects-image-selector__empty{gap:4px;min-height:0;padding:0;font-size:10px}.canvas-editor-page .sliding-door-seal-upload .canvas-effects-image-selector__empty svg{width:18px;height:18px}
