*{margin:0;padding:0;box-sizing:border-box}.login-container{display:flex;height:100vh;width:100vw;overflow:hidden;position:relative}.login-toast{position:absolute;top:40px;left:50%;transform:translate(-50%);background:#000c;color:#fff;padding:12px 24px;border-radius:8px;font-size:14px;z-index:1000;box-shadow:0 4px 12px #00000026;animation:toast-slide-down .3s ease-out}@keyframes toast-slide-down{0%{opacity:0;transform:translate(-50%,-20px)}to{opacity:1;transform:translate(-50%)}}.login-left{flex:0 0 55%;background:#fff}.login-right{flex:0 0 45%;min-width:0;background:#0d0d0d;display:flex;flex-direction:column;align-items:center;padding-bottom:60px;position:relative;color:#fff;overflow:hidden}.login-close{position:absolute;top:16px;right:16px;width:32px;height:32px;border:none;background:transparent;color:#666;font-size:18px;cursor:pointer;display:flex;align-items:center;justify-content:center;border-radius:4px;transition:color .2s;z-index:1}.login-close:hover{color:#fff}.login-header{display:flex;flex-direction:column;align-items:center;padding-top:52px;width:100%}.login-grow{flex:1}.login-grow-bottom{flex:2}.login-form-wrapper{width:350px;display:flex;flex-direction:column;align-items:center}.login-logo{display:flex;align-items:center;gap:8px;margin-top:30px}.login-logo-icon{width:24px;height:24px;background:linear-gradient(135deg,#6366f1,#8b5cf6);border-radius:6px;display:flex;align-items:center;justify-content:center;font-weight:700;font-size:14px;color:#fff}.login-logo-text{font-size:18px;font-weight:500;color:#ccc;letter-spacing:1px}.login-title{text-align:center;margin-top:50px}.login-title h1{font-size:26px;font-weight:600;line-height:1.6;color:#fff}.login-tabs{display:flex;gap:24px;margin-bottom:24px;width:100%;justify-content:center}.login-tab{background:none;border:none;color:#666;font-size:14px;cursor:pointer;padding:4px 0;position:relative;transition:color .2s}.login-tab.active{color:#fff}.login-tab.active:after{content:"";position:absolute;bottom:-2px;left:0;right:0;height:2px;background:#fff;border-radius:1px}.login-tab:hover{color:#bbb}.login-tab.active:hover{color:#fff}.login-form{width:100%;display:flex;flex-direction:column;gap:12px}.input-group{display:flex;align-items:center;background:#2a2a2a;border:1px solid #333;border-radius:8px;height:48px;padding:0 16px;transition:border-color .2s}.input-group:focus-within{border-color:#555}.input-prefix{color:#999;font-size:14px;white-space:nowrap;margin-right:8px;padding-right:8px;border-right:1px solid #444;-webkit-user-select:none;user-select:none}.input-group input{flex:1;background:none;border:none;outline:none;color:#fff;font-size:14px;height:100%}.input-group input::placeholder{color:#666}.input-clear{background:none;border:none;color:#666;font-size:16px;cursor:pointer;padding:0 0 0 8px;display:flex;align-items:center;justify-content:center;flex-shrink:0;transition:color .2s}.input-clear:hover{color:#999}.input-suffix-text{color:#888;font-size:13px;white-space:nowrap;padding-left:8px;-webkit-user-select:none;user-select:none;flex-shrink:0}.input-suffix-btn{background:none;border:none;color:#888;font-size:13px;cursor:pointer;white-space:nowrap;padding:4px 0;transition:color .2s}.input-suffix-btn:hover{color:#bbb}.login-btn{width:100%;height:48px;margin-top:16px;border:none;border-radius:24px;background:#5bc8e8;color:#0d0d0d;font-size:15px;font-weight:500;cursor:pointer;transition:opacity .2s,transform .1s}.login-btn:hover{opacity:.9;transform:translateY(-1px)}.login-error{color:#ef4444;font-size:13px;margin-top:4px}.login-btn:disabled,.input-suffix-btn:disabled{opacity:.5;cursor:not-allowed}.input-group input:disabled{color:#555}.login-footer{position:absolute;bottom:20px;left:0;right:0;padding:0 32px;text-align:center}.login-footer p{font-size:11px;color:#555;line-height:1.6}.login-footer a{color:#666;text-decoration:none;transition:color .2s}.login-footer a:hover{color:#999}.invitation-code-group{border-style:dashed;border-color:#2a2a2a;background:transparent}.invitation-code-group:focus-within{border-color:#444;background:#2a2a2a}.invitation-code-group input{letter-spacing:4px;font-size:15px;text-transform:none}.gallery-section{padding:48px 24px 80px;width:100%;box-sizing:border-box}.gallery-title{font-size:18px;font-weight:600;color:#ffffffb3;margin:0 0 24px;letter-spacing:.02em}.gallery-masonry{display:grid;gap:12px;align-items:start}.gallery-col{display:flex;flex-direction:column;gap:12px}.gallery-card{background:#ffffff0a;border:1px solid rgba(255,255,255,.07);border-radius:12px;overflow:hidden;transition:transform .2s ease,border-color .2s ease;cursor:pointer}.gallery-card:hover{transform:translateY(-2px);border-color:#ffffff26}.gallery-img-wrapper{position:relative;width:100%;overflow:hidden}.gallery-img{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;object-fit:cover;display:block;transition:transform .3s ease}.gallery-card:hover .gallery-img{transform:scale(1.03)}.gallery-card-footer{position:absolute;bottom:0;left:0;right:0;padding:28px 10px 10px;background:linear-gradient(to top,rgba(0,0,0,.72) 0%,transparent 100%);display:flex;align-items:center;justify-content:space-between;gap:6px;opacity:0;transition:opacity .2s ease}.gallery-card:hover .gallery-card-footer{opacity:1}.gallery-author{display:flex;align-items:center;gap:6px;min-width:0}.gallery-avatar{width:24px;height:24px;border-radius:50%;background:linear-gradient(135deg,#6366f1,#8b5cf6);display:flex;align-items:center;justify-content:center;font-size:11px;font-weight:600;color:#fff;flex-shrink:0;border:1.5px solid rgba(255,255,255,.3)}.gallery-author-name{font-size:12px;color:#ffffffe6;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:90px}.gallery-like-btn{display:flex;align-items:center;gap:4px;background:none;border:none;color:#ffffffd9;font-size:12px;cursor:pointer;padding:0;flex-shrink:0;transition:color .2s}.gallery-like-btn:hover{color:#f87171}.gallery-loading{display:flex;align-items:center;justify-content:center;gap:10px;padding:32px;color:#fff6;font-size:14px}.gallery-spinner{display:inline-block;width:18px;height:18px;border:2px solid rgba(255,255,255,.15);border-top-color:#fff9;border-radius:50%;animation:spin .8s linear infinite}.gallery-load-more{display:flex;justify-content:center;padding:24px}.gallery-load-more-btn{padding:10px 32px;background:#ffffff0f;border:1px solid rgba(255,255,255,.12);color:#ffffffb3;border-radius:24px;font-size:14px;cursor:pointer;transition:background .2s,border-color .2s}.gallery-load-more-btn:hover{background:#ffffff1a;border-color:#fff3}.video-toolbar{display:flex;align-items:center;gap:6px;flex-wrap:nowrap;overflow:visible;min-width:0;flex:1;opacity:1;max-height:60px;transition:opacity .25s ease,max-height .3s ease,margin .3s ease}.vtb-dropdown{position:relative;flex-shrink:0}.vtb-tag-btn{display:inline-flex;align-items:center;gap:5px;height:36px;padding:0 6px;border-radius:8px;border:1px solid rgba(255,255,255,.1);background:#ffffff0d;color:#ffffffd9;font-size:16px;cursor:pointer;white-space:nowrap;transition:background .15s,border-color .15s,color .15s;line-height:1;box-sizing:border-box}.vtb-tag-btn .vtb-model-icon{width:22px;height:22px;border-radius:6px;flex-shrink:0}.vtb-tag-btn .vtb-model-icon-version{font-size:8px;font-weight:700}.vtb-tag-btn .vtb-model-icon-badge{display:none}.vtb-tag-btn:hover{background:#ffffff1a;border-color:#ffffff2e;color:#ffffffe6}.vtb-tag-btn.open{background:#ffffff1f;border-color:#ffffff40;color:#fff}.vtb-tag-label{font-size:14px;line-height:1;display:flex;align-items:center}.vtb-tag-divider{color:#fff3;margin:0 6px;font-size:12px}.vtb-tag-btn .vtb-ratio-icon{width:20px;height:20px}.vtb-tag-arrow{width:8px;height:8px;flex-shrink:0;opacity:.6;transition:transform .15s}.vtb-tag-btn.open .vtb-tag-arrow{transform:rotate(180deg);opacity:.9}.vtb-panel{position:absolute;top:calc(100% + 6px);left:0;background:#1c1e22;border:1px solid rgba(255,255,255,.12);border-radius:12px;padding:12px;z-index:200;box-shadow:0 8px 32px #00000080;animation:vtb-panel-in .12s ease}.vtb-panel.vtb-panel-up{top:auto;bottom:calc(100% + 6px);animation:vtb-panel-up-in .12s ease}@keyframes vtb-panel-in{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}}@keyframes vtb-panel-up-in{0%{opacity:0;transform:translateY(4px)}to{opacity:1;transform:translateY(0)}}.vtb-panel-title{font-size:12px;color:#ffffff59;margin-bottom:8px;padding:4px 4px 0}.vtb-panel-divider{height:1px;background:#ffffff14;margin:10px 0}.vtb-model-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:2px}.vtb-model-item{display:flex;align-items:center;gap:10px;padding:8px 10px;border-radius:8px;cursor:pointer;transition:background .12s}.vtb-model-item:hover{background:#ffffff12}.vtb-model-item.selected{background:#ffffff0f}.vtb-model-icon{width:40px;height:40px;border-radius:10px;display:flex;flex-direction:column;align-items:center;justify-content:center;flex-shrink:0;gap:1px}.vtb-model-icon-version{font-size:12px;font-weight:700;color:#fff;line-height:1}.vtb-model-icon-badge{font-size:9px;font-weight:600;color:#ffffffbf;letter-spacing:.3px;line-height:1}.vtb-model-info{flex:1;min-width:0;display:flex;flex-direction:column;gap:3px}.vtb-model-name{font-size:13px;font-weight:500;color:#ffffffe6;display:flex;align-items:center;gap:6px}.vtb-badge-new{font-size:10px;font-weight:600;color:#5eead4;background:#5eead41f;border:1px solid rgba(94,234,212,.25);border-radius:8px;padding:1px 5px;line-height:1.4}.vtb-model-desc{font-size:11px;color:#ffffff59;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:200px}.vtb-check{width:14px;height:14px;flex-shrink:0;color:#fff9}.vtb-ratio-container{background:#ffffff08;border-radius:10px;padding:4px}.vtb-ratio-grid{display:flex;gap:2px;flex-wrap:nowrap;justify-content:space-between}.vtb-tooltip-wrapper{position:relative;display:flex;flex:1}.vtb-tooltip-wrapper .vtb-ratio-item{width:100%}.vtb-tooltip{position:absolute;bottom:calc(100% + 8px);left:50%;transform:translate(-50%);padding:8px 12px;background:#000000d9;color:#fff;font-size:13px;border-radius:8px;white-space:nowrap;pointer-events:none;opacity:0;visibility:hidden;transition:opacity .2s,visibility .2s;z-index:10;box-shadow:0 4px 12px #0003}.vtb-tooltip:after{content:"";position:absolute;top:100%;left:50%;transform:translate(-50%);border-width:5px;border-style:solid;border-color:rgba(0,0,0,.85) transparent transparent transparent}.vtb-tooltip-wrapper:hover .vtb-tooltip{opacity:1;visibility:visible}.vtb-ratio-item{display:flex;flex-direction:column;align-items:center;gap:8px;padding:10px 4px;border-radius:8px;border:none;background:transparent;color:#ffffff73;cursor:pointer;transition:background .12s,color .12s;flex:1}.vtb-ratio-item:hover{background:#ffffff0a;color:#fffc}.vtb-ratio-item.active{background:#ffffff1a;color:#fff}.vtb-ratio-item.disabled{opacity:.3;cursor:not-allowed;pointer-events:none}.vtb-ratio-icon{color:#fff6;transition:color .12s}.vtb-ratio-icon.active,.vtb-ratio-item.active .vtb-ratio-icon{color:#fff}.vtb-ratio-label{font-size:12px;line-height:1;white-space:nowrap}.vtb-resolution-container{background:#ffffff08;border-radius:10px;padding:4px}.vtb-resolution-row{display:flex;gap:2px}.vtb-resolution-btn{flex:1;display:flex;align-items:center;justify-content:center;gap:6px;padding:10px 12px;border-radius:8px;border:none;background:transparent;color:#ffffff8c;font-size:13px;font-weight:500;cursor:pointer;transition:background .12s,color .12s}.vtb-resolution-btn:hover{background:#ffffff0a;color:#ffffffd9}.vtb-resolution-btn.active{background:#ffffff1a;color:#fff;font-weight:600}.vtb-resolution-btn.disabled{opacity:.3;cursor:not-allowed;pointer-events:none}.vtb-duration-icon,.vtb-duration-item-icon{width:18px;height:18px;flex-shrink:0}.vtb-duration-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:2px}.vtb-duration-item{display:flex;align-items:center;justify-content:space-between;padding:10px 12px;border-radius:6px;cursor:pointer;color:#ffffffb3;transition:background .12s,color .12s;background:transparent;margin:0}.vtb-duration-item:hover{background:#ffffff12;color:#ffffffe6}.vtb-duration-item.selected{background:#ffffff0f;color:#fff}.vtb-duration-item-content{display:flex;align-items:center;gap:8px;font-size:15px}.vtb-frame-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:2px}.vtb-frame-item{display:flex;align-items:center;justify-content:space-between;padding:8px 10px;border-radius:8px;cursor:pointer;font-size:13px;color:#ffffffb3;transition:background .12s,color .12s}.vtb-frame-item:hover{background:#ffffff12;color:#ffffffe6}.vtb-frame-item.selected{background:#ffffff0f;color:#fff}.vtb-frame-item.disabled{opacity:.3;cursor:not-allowed;pointer-events:none}.vtb-audio-toggle{display:inline-flex;align-items:center;gap:6px;height:36px;padding:0 6px;border-radius:8px;border:1px solid rgba(255,255,255,.1);background:#ffffff0d;cursor:pointer;-webkit-user-select:none;user-select:none;flex-shrink:0;transition:background .15s,border-color .15s}.vtb-audio-toggle:hover{background:#ffffff1a;border-color:#ffffff2e}.vtb-audio-icon{width:14px;height:14px;flex-shrink:0;opacity:.6}.vtb-audio-label{font-size:14px;color:#ffffffa6;line-height:1;white-space:nowrap}.vtb-switch{position:relative;width:36px;height:20px;border-radius:10px;background:#ffffff26;cursor:pointer;transition:background .2s;flex-shrink:0}.vtb-switch.on{background:#5eead4}.vtb-switch-thumb{position:absolute;top:2px;left:2px;width:16px;height:16px;border-radius:50%;background:#fff;transition:transform .2s;box-shadow:0 1px 3px #0000004d}.vtb-switch.on .vtb-switch-thumb{transform:translate(16px)}.image-size-panel{display:flex;flex-direction:column;gap:16px;padding:12px 16px;background:#1a1a24;border-radius:12px;color:#fff}.size-section{display:flex;flex-direction:column;gap:8px}.size-section-title{font-size:13px;color:#ffffff80;margin-bottom:4px}.ratio-grid{display:flex;flex-wrap:nowrap;gap:4px;background:#ffffff0a;padding:4px;border-radius:12px;overflow-x:auto}.ratio-btn{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;padding:8px 4px;border:none;background:transparent;color:#fff9;border-radius:8px;cursor:pointer;transition:all .2s ease;flex:1;min-width:40px}.ratio-btn:hover{background:#ffffff14;color:#fff}.ratio-btn.active{background:#ffffff1f;color:#fff}.ratio-icon{width:32px;height:32px;display:flex;align-items:center;justify-content:center}.ratio-label{font-size:11px;font-weight:500}.res-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px}.res-btn{display:flex;align-items:center;justify-content:center;gap:6px;padding:10px;border:1px solid rgba(255,255,255,.08);background:#ffffff0a;color:#ffffffb3;border-radius:8px;cursor:pointer;transition:all .2s ease;font-size:13px;font-weight:500}.res-btn:hover{background:#ffffff14;color:#fff}.res-btn.active{background:#ffffff1f;border-color:#fff3;color:#fff}.res-sparkle{width:14px;height:14px;color:#38bdf8}.dim-row{display:flex;align-items:center;gap:12px}.dim-input-group{display:flex;align-items:center;gap:8px;background:#ffffff0a;border:1px solid rgba(255,255,255,.08);border-radius:8px;padding:8px 12px;flex:1;transition:all .2s ease}.dim-input-group:focus-within{border-color:#fff3;background:#ffffff14}.dim-input-group.disabled{opacity:.5;pointer-events:none}.dim-prefix{color:#fff6;font-size:13px;font-weight:600}.dim-input{background:transparent;border:none;color:#fff;font-size:14px;font-weight:500;width:100%;outline:none;text-align:right;-moz-appearance:textfield}.dim-input::-webkit-outer-spin-button,.dim-input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}.dim-link-wrapper{position:relative;display:flex;align-items:center;justify-content:center}.dim-link-btn{width:32px;height:32px;display:flex;align-items:center;justify-content:center;border:none;background:#ffffff14;color:#fffc;border-radius:8px;cursor:pointer;transition:all .2s ease}.dim-link-btn:hover{background:#ffffff26;color:#fff}.dim-link-btn[data-tooltip]:before{content:attr(data-tooltip);position:absolute;bottom:calc(100% + 8px);left:50%;transform:translate(-50%);background:#2a2a36;color:#ffffffe6;padding:6px 10px;border-radius:6px;font-size:12px;white-space:nowrap;pointer-events:none;opacity:0;transition:opacity .2s ease;box-shadow:0 4px 12px #0000004d;border:1px solid rgba(255,255,255,.1);z-index:10}.dim-link-btn[data-tooltip]:after{content:"";position:absolute;bottom:calc(100% + 4px);left:50%;transform:translate(-50%);border-width:4px;border-style:solid;border-color:#2a2a36 transparent transparent transparent;opacity:0;transition:opacity .2s ease;pointer-events:none;z-index:11}.dim-link-btn[data-tooltip]:hover:before,.dim-link-btn[data-tooltip]:hover:after{opacity:1}.dim-link-btn svg{width:16px;height:16px}.dim-suffix{color:#fff6;font-size:13px;font-weight:600}.miu-root{position:relative;display:inline-flex;align-items:center;padding:6px 4px;border-radius:10px;transition:background .25s ease}.miu-root.miu-expanded{background:#ffffff0a}.miu-cards{display:flex;align-items:center;transition:gap .35s cubic-bezier(.4,0,.2,1);gap:0}.miu-expanded .miu-cards{gap:10px}.miu-card{flex-shrink:0;position:relative;transition:transform .35s cubic-bezier(.4,0,.2,1),margin .35s cubic-bezier(.4,0,.2,1)}.miu-expanded .miu-card{transform:rotate(0)!important;margin-left:0!important}.miu-frame{width:56px;height:72px;border:2px solid rgba(255,255,255,.82);border-radius:4px;overflow:hidden;background:#ffffff0f;box-shadow:0 2px 10px #00000059;position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center}.miu-frame img{width:100%;height:100%;object-fit:cover;display:block}.miu-frame-video{border-color:#60a5fa99}.miu-frame-audio{border-color:#fbbf2480}.miu-video-thumb{width:100%;height:100%;object-fit:cover;display:block}.miu-type-overlay{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;pointer-events:none}.miu-overlay-video{background:#0000004d;color:#ffffffe6}.miu-overlay-audio{background:#1e1e28f2;color:#ffffff8c}.miu-badge{position:absolute;bottom:2px;left:50%;transform:translate(-50%);font-size:8px;font-weight:600;padding:0 4px;border-radius:3px;line-height:14px;z-index:3;pointer-events:none}.miu-badge-image{background:#4ade80d9;color:#064e3b}.miu-badge-video{background:#60a5fad9;color:#1e3a5f}.miu-badge-audio{background:#fbbf24d9;color:#78350f}.miu-role-tag{position:absolute;top:2px;right:2px;font-size:7px;font-weight:600;padding:0 3px;border-radius:2px;line-height:12px;z-index:3;pointer-events:none;background:#c084fce6;color:#fff}.miu-remove{position:absolute;top:-7px;right:-7px;width:18px;height:18px;border-radius:50%;background:#1e1e23eb;border:1px solid rgba(255,255,255,.2);color:#ffffffb3;cursor:pointer;display:flex;align-items:center;justify-content:center;z-index:10;transition:background .15s,color .15s;padding:0}.miu-remove:hover{background:#dc2626d9;color:#fff}.miu-close-all{position:absolute;top:-6px;left:-6px;width:22px;height:22px;border-radius:50%;background:#1e1e23f2;border:1px solid rgba(255,255,255,.2);color:#ffffffa6;cursor:pointer;display:flex;align-items:center;justify-content:center;z-index:20;padding:0;transition:background .15s,color .15s}.miu-close-all:hover{background:#dc2626d9;color:#fff}.miu-frame-add{cursor:pointer;border-style:dashed;border-color:#ffffff40;background:#ffffff08;transition:border-color .15s,background .15s;gap:4px}.miu-frame-add:hover{border-color:#ffffff73;background:#ffffff14}.miu-add-icon{font-size:22px;font-weight:300;color:#ffffff73;line-height:1}.miu-add-text{font-size:10px;color:#ffffff59;white-space:nowrap}.miu-card-add-stacked .miu-frame-add{width:32px;height:32px;border-radius:50%;border-width:1.5px}.miu-card-add-stacked .miu-add-icon{font-size:18px}.miu-card-add-stacked .miu-add-text{display:none}.mention-input-root{position:relative;flex:1;width:100%;min-width:0}.mention-input-editor{outline:none;white-space:pre-wrap;word-break:break-word;overflow-y:auto}.mention-input-editor:empty:before{content:""}.mention-input-placeholder{position:absolute;top:0;left:0;color:#ffffff40;font-size:15px;pointer-events:none;-webkit-user-select:none;user-select:none}.mention-chip{display:inline-flex;align-items:center;gap:4px;background:#ffffff1a;border-radius:6px;padding:2px 8px 2px 4px;margin:0 2px;vertical-align:middle;cursor:default;-webkit-user-select:none;user-select:none;line-height:1.4}.mention-chip-thumb{width:20px;height:20px;border-radius:4px;object-fit:cover;flex-shrink:0}.mention-chip-audio-icon{display:inline-flex;align-items:center;justify-content:center;width:20px;height:20px;border-radius:4px;background:#8b5cf64d;color:#ffffffb3;font-size:12px;flex-shrink:0}.mention-chip-label{font-size:13px;color:#ffffffd9;white-space:nowrap}.mention-dropdown{position:absolute;bottom:calc(100% + 8px);left:0;min-width:240px;max-width:320px;background:#1e1e2af2;backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);border:1px solid rgba(255,255,255,.1);border-radius:12px;padding:8px 0;z-index:100;box-shadow:0 8px 32px #0006;max-height:320px;overflow-y:auto}.mention-dd-header{display:flex;align-items:center;gap:6px;padding:6px 14px 8px;border-bottom:1px solid rgba(255,255,255,.06);margin-bottom:4px}.mention-dd-at{color:#ffffff80;font-size:15px;font-weight:500}.mention-dd-hint{color:#ffffff4d;font-size:13px}.mention-dd-item{display:flex;align-items:center;gap:10px;padding:8px 14px;cursor:pointer;transition:background .15s}.mention-dd-item-active{background:#ffffff14}.mention-dd-thumb{width:40px;height:40px;border-radius:8px;object-fit:cover;flex-shrink:0}.mention-dd-thumb-wrap{position:relative;width:40px;height:40px;flex-shrink:0}.mention-dd-thumb-wrap video{width:100%;height:100%;border-radius:8px;object-fit:cover}.mention-dd-duration{position:absolute;bottom:2px;left:2px;background:#0009;border-radius:3px;padding:0 4px;font-size:10px;color:#fff;line-height:1.6}.mention-dd-audio-icon{display:flex;align-items:center;justify-content:center;background:#8b5cf640;color:#fff9}.mention-dd-label{font-size:14px;color:#ffffffd9;white-space:nowrap}.recharge-modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#000000b3;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);display:flex;align-items:center;justify-content:center;z-index:1000;animation:fadeIn .2s ease-out}.recharge-modal-content{background:#1e1e2e;border:1px solid rgba(255,255,255,.1);border-radius:20px;width:90%;max-width:420px;padding:32px;position:relative;box-shadow:0 20px 40px #00000080;animation:slideUp .3s ease-out}.recharge-modal-close{position:absolute;top:20px;right:20px;background:transparent;border:none;color:#ffffff80;cursor:pointer;padding:4px;border-radius:50%;display:flex;align-items:center;justify-content:center;transition:all .2s}.recharge-modal-close:hover{color:#fff;background:#ffffff1a}.recharge-modal-close svg{width:20px;height:20px}.recharge-modal-title{font-size:20px;font-weight:600;color:#fff;margin:0 0 20px;text-align:center}.recharge-tabs{display:flex;background:#ffffff0f;border-radius:10px;padding:3px;margin-bottom:20px}.recharge-tab{flex:1;padding:10px 0;background:transparent;border:none;border-radius:8px;color:#ffffff73;font-size:14px;font-weight:500;cursor:pointer;transition:all .2s}.recharge-tab:hover{color:#ffffffb3}.recharge-tab-active{background:#ffffff1a;color:#fff;font-weight:600}.recharge-modal-body{display:flex;flex-direction:column;gap:20px}.recharge-amount-section{display:flex;flex-direction:column;gap:10px}.recharge-amount-label{font-size:14px;color:#fff9}.recharge-amount-input-wrapper{display:flex;align-items:center;background:#ffffff0f;border:1px solid rgba(255,255,255,.15);border-radius:12px;padding:0 16px;transition:border-color .2s}.recharge-amount-input-wrapper:focus-within{border-color:#3b82f6}.recharge-amount-prefix{font-size:22px;font-weight:600;color:#ffffff80;margin-right:8px}.recharge-amount-input{flex:1;background:transparent;border:none;outline:none;color:#fff;font-size:24px;font-weight:600;padding:14px 0;-moz-appearance:textfield}.recharge-amount-input::placeholder{color:#ffffff40;font-size:16px;font-weight:400}.recharge-amount-input::-webkit-outer-spin-button,.recharge-amount-input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}.recharge-amount-hint{font-size:12px;color:#ffffff59;text-align:center}.recharge-error{font-size:13px;color:#ef4444;text-align:center}.recharge-pay-button{display:flex;align-items:center;justify-content:center;gap:8px;width:100%;padding:14px;background:linear-gradient(135deg,#1677ff,#0958d9);border:none;border-radius:12px;color:#fff;font-size:16px;font-weight:600;cursor:pointer;transition:all .2s}.recharge-pay-button:hover:not(:disabled){transform:translateY(-1px);box-shadow:0 4px 16px #1677ff66}.recharge-pay-button:disabled{opacity:.5;cursor:not-allowed}.recharge-alipay-icon{width:22px;height:22px}.recharge-loading{display:flex;align-items:center;gap:8px}.recharge-waiting{display:flex;flex-direction:column;align-items:center;gap:16px;padding:8px 0}.recharge-waiting-icon svg{width:48px;height:48px;color:#f59e0b;animation:pulse 2s infinite}.recharge-waiting-text{font-size:18px;font-weight:600;color:#fff}.recharge-waiting-hint{font-size:14px;color:#ffffff80;text-align:center}.recharge-waiting-order{font-size:12px;color:#ffffff4d;font-family:monospace}.recharge-check-button{width:100%;padding:12px;background:linear-gradient(135deg,#1677ff,#0958d9);border:none;border-radius:12px;color:#fff;font-size:15px;font-weight:600;cursor:pointer;transition:all .2s}.recharge-check-button:hover{transform:translateY(-1px);box-shadow:0 4px 16px #1677ff66}.recharge-cancel-button{background:transparent;border:1px solid rgba(255,255,255,.15);border-radius:12px;color:#fff9;padding:10px;width:100%;font-size:14px;cursor:pointer;transition:all .2s}.recharge-cancel-button:hover{border-color:#ffffff4d;color:#fff}.recharge-success{display:flex;flex-direction:column;align-items:center;gap:16px;padding:8px 0}.recharge-success-icon svg{width:56px;height:56px;color:#10b981}.recharge-success-text{font-size:20px;font-weight:600;color:#10b981}.recharge-success-hint{font-size:14px;color:#ffffff80}.recharge-done-button{width:100%;padding:12px;background:#10b98126;border:1px solid rgba(16,185,129,.3);border-radius:12px;color:#10b981;font-size:15px;font-weight:600;cursor:pointer;transition:all .2s}.recharge-done-button:hover{background:#10b98140}.recharge-qrcode-wrapper{display:flex;justify-content:center;gap:20px}.recharge-qrcode-item{display:flex;flex-direction:column;align-items:center;gap:8px}.recharge-qrcode-placeholder{width:140px;height:140px;background:#ffffff0d;border:1px dashed rgba(255,255,255,.2);border-radius:12px;display:flex;flex-direction:column;align-items:center;justify-content:center;color:#fff6;gap:12px}.recharge-qrcode-placeholder svg{width:48px;height:48px;opacity:.5}.recharge-qrcode-placeholder span{font-size:13px}.recharge-qrcode-image{width:140px;height:140px;border-radius:12px;object-fit:contain;background:#fff;padding:4px;cursor:pointer;transition:transform .15s ease}.recharge-qrcode-image:hover{transform:scale(1.05)}.recharge-qrcode-label{font-size:13px;color:#fff6}.recharge-info{background:#0003;border-radius:12px;padding:20px;display:flex;flex-direction:column;gap:12px}.recharge-info-item{display:flex;align-items:flex-start;font-size:14px;line-height:1.5}.recharge-info-label{color:#ffffff80;min-width:70px;flex-shrink:0}.recharge-info-value{color:#fff;word-break:break-all}.recharge-info-highlight{margin-top:4px;padding-top:12px;border-top:1px dashed rgba(255,255,255,.1)}.recharge-info-highlight .recharge-info-value{color:#5eead4;font-weight:500}.recharge-info-tip{margin-top:8px;font-size:12px;color:#ef4444;text-align:center}.recharge-preview-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#000000d9;display:flex;align-items:center;justify-content:center;z-index:1100;cursor:zoom-out;animation:fadeIn .2s ease-out}.recharge-preview-image{max-width:90vw;max-height:90vh;border-radius:12px;background:#fff;padding:8px;box-shadow:0 20px 60px #0009;animation:scaleIn .25s ease-out}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes slideUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}@keyframes scaleIn{0%{opacity:0;transform:scale(.8)}to{opacity:1;transform:scale(1)}}@keyframes pulse{0%,to{opacity:1}50%{opacity:.5}}.child-manager{width:100%}.child-msg{padding:12px 16px;border-radius:12px;font-size:14px;margin-bottom:20px;display:flex;align-items:center;gap:8px}.child-msg-error{background:#ef44441a;color:#fca5a5;border:1px solid rgba(239,68,68,.2)}.child-msg-success{background:#22c55e1a;color:#86efac;border:1px solid rgba(34,197,94,.2)}.child-add-btn{width:100%;padding:16px;border:1px dashed rgba(255,255,255,.15);border-radius:16px;background:#ffffff05;color:#fff9;font-size:14px;font-weight:500;cursor:pointer;transition:all .2s;margin-bottom:24px;display:flex;align-items:center;justify-content:center;gap:8px}.child-add-btn:hover{border-color:#ffffff4d;color:#fff;background:#ffffff0d}.child-add-form{background:#ffffff08;border:1px solid rgba(255,255,255,.08);border-radius:16px;padding:24px;margin-bottom:24px}.child-add-form-title{font-size:16px;font-weight:600;color:#fff;margin-bottom:20px}.child-add-row{display:flex;gap:12px;margin-bottom:16px}.child-input{flex:1;padding:12px 16px;border:1px solid rgba(255,255,255,.1);border-radius:12px;background:#0003;color:#fff;font-size:14px;outline:none;transition:all .2s}.child-input:focus{border-color:#5eead4;background:#0006}.child-input::placeholder{color:#ffffff4d}.child-send-code-btn{padding:0 20px;border:1px solid rgba(94,234,212,.3);border-radius:12px;background:#5eead40d;color:#5eead4;font-size:13px;font-weight:500;cursor:pointer;white-space:nowrap;transition:all .2s}.child-send-code-btn:hover:not(:disabled){background:#5eead426;border-color:#5eead480}.child-send-code-btn:disabled{opacity:.5;cursor:not-allowed;border-color:#ffffff1a;color:#ffffff80;background:#ffffff0d}.child-add-actions{display:flex;gap:12px;justify-content:flex-end;margin-top:24px}.child-cancel-btn{padding:10px 24px;border:1px solid rgba(255,255,255,.1);border-radius:10px;background:transparent;color:#fff9;font-size:14px;font-weight:500;cursor:pointer;transition:all .2s}.child-cancel-btn:hover{color:#fff;background:#ffffff0d}.child-confirm-btn{padding:10px 24px;border:none;border-radius:10px;background:#5eead4;color:#000;font-size:14px;font-weight:600;cursor:pointer;transition:all .2s}.child-confirm-btn:hover:not(:disabled){background:#2dd4bf;transform:translateY(-1px)}.child-confirm-btn:disabled{opacity:.5;cursor:not-allowed;transform:none}.child-empty{text-align:center;color:#fff6;font-size:14px;padding:48px 0;background:#ffffff05;border-radius:16px;border:1px dashed rgba(255,255,255,.08)}.child-list{display:flex;flex-direction:column;gap:12px}.child-card{display:flex;align-items:center;justify-content:space-between;padding:16px 20px;background:#ffffff08;border:1px solid rgba(255,255,255,.06);border-radius:16px;transition:all .2s}.child-card:hover{background:#ffffff0d;border-color:#ffffff1a}.child-card-info{display:flex;flex-direction:column;gap:4px}.child-card-name{font-size:15px;color:#fff;font-weight:600}.child-card-phone{font-size:13px;color:#fff9;font-family:monospace}.child-card-time{font-size:12px;color:#fff6;margin-top:4px}.child-unbind-btn{padding:8px 16px;border:1px solid rgba(239,68,68,.3);border-radius:8px;background:#ef44440d;color:#f87171;font-size:13px;font-weight:500;cursor:pointer;transition:all .2s}.child-unbind-btn:hover{background:#ef444426;border-color:#ef444480}.child-summary-list{display:flex;flex-direction:column;background:#ffffff05;border:1px solid rgba(255,255,255,.06);border-radius:16px;overflow:hidden}.child-summary-header{display:flex;align-items:center;padding:12px 20px;background:#ffffff0a;border-bottom:1px solid rgba(255,255,255,.06);font-size:12px;color:#fff6;font-weight:500}.child-summary-item{border-bottom:1px solid rgba(255,255,255,.04)}.child-summary-item:last-child{border-bottom:none}.child-summary-row{display:flex;align-items:center;padding:14px 20px;transition:background .15s}.child-summary-row:hover{background:#ffffff0a}.child-summary-row.expanded{background:#ffffff08}.child-summary-col-name{flex:1;min-width:0;display:flex;align-items:center;gap:10px;font-size:14px;color:#fff;font-weight:500}.child-summary-col{width:100px;text-align:right;font-size:14px;font-family:monospace;font-weight:500;color:#fff9;flex-shrink:0}.child-summary-col-action{width:64px;text-align:right;flex-shrink:0}.child-summary-header .child-summary-col,.child-summary-header .child-summary-col-action{font-family:inherit;font-weight:500}.child-summary-net{color:#fff}.child-badge{font-size:11px;padding:2px 8px;border-radius:6px;background:#5eead41a;color:#5eead4;font-weight:600;border:1px solid rgba(94,234,212,.2);flex-shrink:0}.detail-toggle-btn{padding:4px 12px;border:1px solid rgba(255,255,255,.12);border-radius:6px;background:transparent;color:#ffffff80;font-size:12px;cursor:pointer;transition:all .15s}.detail-toggle-btn:hover{color:#fff;border-color:#ffffff40;background:#ffffff0d}.detail-panel{background:#0003;padding:0 20px 16px}.detail-loading,.detail-empty{text-align:center;color:#ffffff59;font-size:13px;padding:20px 0}.detail-table-header{display:flex;align-items:center;padding:8px 0;font-size:11px;color:#ffffff59;border-bottom:1px solid rgba(255,255,255,.06)}.detail-row{display:flex;align-items:center;padding:10px 0;font-size:13px;border-bottom:1px solid rgba(255,255,255,.03)}.detail-row:last-of-type{border-bottom:none}.detail-col-time{width:120px;color:#ffffff80;font-family:monospace;font-size:12px;flex-shrink:0}.detail-col-type{width:60px;font-size:12px;font-weight:500;flex-shrink:0}.detail-col-type.deduct{color:#fca5a5}.detail-col-type.refund{color:#86efac}.detail-col-model{flex:1;color:#fff6;font-size:12px;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.detail-col-amount{width:90px;text-align:right;font-family:monospace;font-weight:500;flex-shrink:0}.detail-col-amount.deduct{color:#fca5a5}.detail-col-amount.refund{color:#86efac}.detail-pagination{display:flex;align-items:center;justify-content:center;gap:16px;padding-top:12px;margin-top:4px;border-top:1px solid rgba(255,255,255,.06)}.detail-page-btn{padding:4px 14px;border:1px solid rgba(255,255,255,.12);border-radius:6px;background:transparent;color:#ffffff80;font-size:12px;cursor:pointer;transition:all .15s}.detail-page-btn:hover:not(:disabled){color:#fff;border-color:#ffffff40;background:#ffffff0d}.detail-page-btn:disabled{opacity:.3;cursor:not-allowed}.detail-page-info{font-size:12px;color:#fff6;font-family:monospace}.inv-manager{display:flex;flex-direction:column;gap:16px}.inv-section{background:#1a1a1a;border-radius:12px;padding:20px}.inv-title{font-size:15px;font-weight:600;color:#e5e5e5;margin-bottom:14px;display:flex;align-items:center;gap:8px}.inv-count{font-size:12px;font-weight:500;color:#999;background:#333;padding:1px 8px;border-radius:10px}.inv-code-display{display:flex;align-items:stretch;background:#1e1e1e;border:1px solid #333;border-radius:8px;overflow:hidden;width:fit-content;box-shadow:0 2px 8px #0003}.inv-code-label{display:flex;align-items:center;padding:0 16px;background:#2a2a2a;font-size:13px;color:#999;border-right:1px solid #333;font-weight:500;letter-spacing:1px}.inv-code-text{padding:10px 24px;font-size:20px;font-weight:700;letter-spacing:4px;color:#5eead4;font-family:SF Mono,Menlo,Monaco,monospace;display:flex;align-items:center;justify-content:center;background:#1a1a1a}.inv-copy-btn{background:#6366f1;border:none;color:#fff;padding:0 24px;font-size:14px;font-weight:500;cursor:pointer;transition:all .2s ease;display:flex;align-items:center;justify-content:center}.inv-copy-btn:hover{background:#4f46e5}.inv-copy-btn.copied{background:#10b981}.inv-code-empty{display:flex;flex-direction:column;align-items:center;gap:12px}.inv-code-hint{font-size:13px;color:#777;text-align:center;line-height:1.6}.inv-generate-btn{background:linear-gradient(135deg,#6366f1,#8b5cf6);border:none;color:#fff;padding:10px 28px;border-radius:8px;font-size:14px;font-weight:500;cursor:pointer;transition:opacity .2s}.inv-generate-btn:hover{opacity:.9}.inv-generate-btn:disabled{opacity:.5;cursor:not-allowed}.inv-error{color:#ef4444;font-size:13px;margin-top:8px;text-align:center}.inv-empty{color:#666;font-size:13px;text-align:center;padding:16px 0}.inv-list{display:flex;flex-direction:column;gap:1px}.inv-item{display:flex;align-items:center;justify-content:space-between;padding:10px 0;border-bottom:1px solid #222}.inv-item:last-child{border-bottom:none}.inv-item-info{display:flex;align-items:center;gap:8px}.inv-item-name{font-size:14px;color:#ddd}.inv-item-role{font-size:11px;padding:1px 6px;border-radius:4px;background:#333;color:#999}.inv-role-parent{background:#6366f126;color:#818cf8}.inv-item-time{font-size:12px;color:#666}.inv-header-mode{background:transparent;padding:0;border-radius:0}.inv-header-mode .inv-title{display:none}.inv-header-mode .inv-code-empty{flex-direction:row;justify-content:space-between;background:#ffffff08;border:1px dashed rgba(255,255,255,.15);border-radius:8px;padding:12px 16px;align-items:center}.inv-header-mode .inv-code-hint{text-align:left;margin:0;font-size:12px}.inv-list-mode{padding:0;background:transparent}.inv-list-header-stats{font-size:14px;color:#999;margin-bottom:16px;padding-bottom:12px;border-bottom:1px solid #222}.inv-count-highlight{color:#5eead4;font-weight:600;font-size:16px;margin:0 4px}.video-history-container{display:flex;flex-direction:column;gap:32px;padding:24px 24px 200px;max-width:var(--content-max-width, 800px);margin:0 auto;width:100%}.history-group{display:flex;flex-direction:column;gap:16px}.history-date-header{font-size:20px;font-weight:600;color:#f3f4f6;margin:0;padding-bottom:8px}.history-list{display:flex;flex-direction:column;gap:40px}.history-item{display:flex;flex-direction:column;gap:4px;width:100%;max-width:692px}.history-item-info{display:flex;flex-direction:column;gap:8px}.history-item-header{display:flex;flex-direction:row;gap:16px;color:#9ca3af;font-size:14px;align-items:center}.history-text-content{display:flex;flex-direction:column;gap:8px;flex:1;min-width:0}.history-thumbnails{display:flex;flex-direction:row;align-items:center;flex-shrink:0;padding:4px 8px}.history-thumbnail-wrapper{position:relative;flex-shrink:0;width:44px;height:56px;transition:transform .2s}.history-thumbnail-wrapper:nth-child(2n){transform:rotate(3deg)}.history-thumbnail-wrapper:nth-child(odd){transform:rotate(-3deg)}.history-thumbnail-wrapper:not(:first-child){margin-left:-12px}.history-thumbnail{width:100%;height:100%;border-radius:4px;object-fit:cover;background-color:#374151;border:2px solid #fff;display:block;box-shadow:-2px 0 6px #0006}.history-thumbnail-audio{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;color:#d1d5db;font-size:12px;line-height:1}.history-thumbnail-audio svg{width:24px;height:24px}.history-thumbnail-audio span{font-size:11px;color:#9ca3af}.history-thumbnail-badge{position:absolute;bottom:2px;right:2px;width:16px;height:16px;background-color:#0009;border-radius:50%;display:flex;align-items:center;justify-content:center;color:#fff}.history-thumbnail-badge svg{width:8px;height:8px}.history-thumbnail-badge-role{background-color:#9333eacc}.history-thumbnail-badge-role svg{width:10px;height:10px}.history-thumbnail-asset-loading{display:flex;align-items:center;justify-content:center;background:#1e1e28cc;color:#fff6}.history-thumbnail-loading-spinner{width:14px;height:14px;border:2px solid rgba(255,255,255,.15);border-top-color:#ffffff80;border-radius:50%;animation:history-thumb-spin .8s linear infinite}@keyframes history-thumb-spin{to{transform:rotate(360deg)}}.history-prompt-container{display:flex;align-items:flex-start;gap:8px}.history-prompt{color:#f3f4f6;font-weight:500;display:-webkit-box;line-clamp:2;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;text-overflow:ellipsis;max-width:none;word-break:break-all;line-height:1.5}.history-copy-btn{background:none;border:none;color:#9ca3af;cursor:pointer;padding:4px;display:flex;align-items:center;justify-content:center;border-radius:4px;transition:color .2s,background-color .2s;flex-shrink:0;margin-top:2px}.history-copy-btn:hover{color:#f3f4f6;background-color:#374151}.history-copy-btn svg{width:16px;height:16px}.history-footer{display:flex;align-items:center;justify-content:space-between;margin-top:2px;width:100%;max-width:532px}.history-meta-container{display:flex;align-items:center;gap:12px}.history-meta{color:#6b7280;display:flex;align-items:center;gap:4px;font-size:13px;white-space:nowrap}.history-video-wrapper{width:100%;max-width:532px;aspect-ratio:16 / 9;background-color:#1f2937;border-radius:8px;overflow:hidden;position:relative;isolation:isolate}.history-video-wrapper.expired{aspect-ratio:auto;height:80px}.history-video{width:100%;height:100%;object-fit:contain;display:block;outline:none;margin:0;padding:0;border:none}.history-video-placeholder{position:absolute;top:0;left:0;width:100%;height:100%;display:flex;align-items:center;justify-content:center;color:#9ca3af;font-size:14px}.history-video-placeholder.failed{color:#ef4444}.history-video-placeholder.expired{background-color:#1f2937;color:#9ca3af;flex-direction:column;gap:8px}.expired-text{font-size:14px;font-weight:500}.history-retention-tip{display:flex;align-items:center;gap:4px;margin-left:auto;font-size:12px;color:#fbbf24;background-color:#fbbf241a;padding:4px 8px;border-radius:6px;white-space:nowrap}.history-retention-tip svg{width:14px;height:14px;flex-shrink:0}.history-video-placeholder.processing{background:linear-gradient(135deg,#1e293b,#3b82f6,#8b5cf6,#1e293b);background-size:400% 400%;animation:gradient-animation 8s ease infinite;align-items:flex-start;justify-content:flex-start;padding:12px}@keyframes gradient-animation{0%{background-position:0% 50%}50%{background-position:100% 50%}to{background-position:0% 50%}}.processing-badge{background-color:#0006;color:#fff;padding:4px 8px;border-radius:4px;font-size:12px;font-weight:500;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);border:1px solid rgba(255,255,255,.1)}.history-actions{display:flex;gap:12px}.history-action-btn{display:flex;align-items:center;gap:5px;background-color:#374151;color:#f3f4f6;border:none;padding:5px 10px;border-radius:6px;font-size:12px;font-weight:400;cursor:pointer;transition:background-color .2s}.history-action-btn:hover{background-color:#4b5563}.history-action-btn svg{width:13px;height:13px}.history-action-btn.icon-only{padding:8px}.history-loading,.history-end,.history-empty{text-align:center;padding:24px;color:#6b7280;font-size:14px}.history-image-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:8px;width:100%;max-width:532px}.history-image-item{position:relative;border-radius:8px;overflow:hidden;background:#1f2937;cursor:pointer}.history-image-item img{width:100%;display:block;object-fit:cover;min-height:120px;background:linear-gradient(90deg,#1f2937 25%,#2a3444,#1f2937 75%);background-size:200% 100%;animation:img-skeleton 1.5s ease-in-out infinite}@keyframes img-skeleton{0%{background-position:200% 0}to{background-position:-200% 0}}.history-image-actions{position:absolute;bottom:6px;right:6px;display:flex;gap:4px;opacity:0;transition:opacity .15s ease}.history-image-item:hover .history-image-actions{opacity:1}.history-image-action-btn{width:28px;height:28px;border-radius:6px;background:#0009;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);display:flex;align-items:center;justify-content:center;color:#fff;border:none;cursor:pointer;text-decoration:none;transition:background .15s ease}.history-image-action-btn:hover{background:#000000d9}.history-image-error{display:flex;align-items:flex-start;gap:6px;padding:10px 12px;border-radius:8px;background:#ef444414;border:1px solid rgba(239,68,68,.2);color:#f87171;font-size:13px;line-height:1.5;max-width:532px}.history-image-error svg{flex-shrink:0;margin-top:2px}.image-lightbox-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:9999;background:#000000d9;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);display:flex;align-items:center;justify-content:center;cursor:pointer;animation:lightbox-fade-in .2s ease}@keyframes lightbox-fade-in{0%{opacity:0}to{opacity:1}}.image-lightbox-img{max-width:90vw;max-height:85vh;object-fit:contain;border-radius:8px;cursor:default;box-shadow:0 8px 40px #00000080}.image-lightbox-close{position:absolute;top:16px;right:16px;width:40px;height:40px;border-radius:50%;background:#ffffff1a;border:none;color:#fff;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:background .15s ease}.image-lightbox-close:hover{background:#fff3}.image-lightbox-download{position:absolute;bottom:24px;left:50%;transform:translate(-50%);display:flex;align-items:center;gap:6px;padding:8px 20px;border-radius:8px;background:#ffffff1f;color:#fff;font-size:14px;font-weight:500;text-decoration:none;cursor:pointer;transition:background .15s ease;border:1px solid rgba(255,255,255,.15)}.image-lightbox-download:hover{background:#fff3}.fps-boost-trigger{position:absolute;top:8px;right:8px;width:32px;height:32px;border-radius:8px;border:none;background:#0000008c;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);color:#fff;cursor:pointer;display:flex;align-items:center;justify-content:center;opacity:0;transition:opacity .15s ease,background .15s ease;z-index:5}.history-video-wrapper:hover .fps-boost-trigger{opacity:1}.fps-boost-trigger:hover{background:#000000bf}.fps-boost-trigger.disabled{opacity:.4;cursor:not-allowed}.fps-boost-trigger.disabled:hover{background:#0000008c}.upscale-trigger{position:absolute;top:8px;right:44px;width:32px;height:32px;border-radius:8px;border:none;background:#0000008c;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);color:#fff;cursor:pointer;display:flex;align-items:center;justify-content:center;opacity:0;transition:opacity .15s ease,background .15s ease;z-index:5}.history-video-wrapper:hover .upscale-trigger{opacity:1}.upscale-trigger:hover{background:#000000bf}.upscale-trigger.disabled{opacity:.4;cursor:not-allowed}.upscale-trigger.disabled:hover{background:#0000008c}.fps-boost-toast{position:fixed;top:80px;left:50%;transform:translate(-50%);z-index:1100;padding:10px 24px;border-radius:8px;background:#374151;color:#f3f4f6;font-size:14px;font-weight:500;box-shadow:0 4px 16px #0000004d;animation:fps-toast-in .2s ease}@keyframes fps-toast-in{0%{opacity:0;transform:translate(-50%) translateY(-8px)}to{opacity:1;transform:translate(-50%) translateY(0)}}.fps-boost-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1000;display:flex;align-items:center;justify-content:center;background:#0009;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.fps-boost-modal{width:380px;background:#1f2937;border-radius:16px;overflow:hidden;box-shadow:0 20px 60px #00000080}.fps-boost-header{display:flex;align-items:center;justify-content:space-between;padding:20px 24px 16px}.fps-boost-title{font-size:17px;font-weight:600;color:#f3f4f6;display:flex;align-items:center;gap:6px}.fps-boost-info-icon{color:#6b7280;display:flex;cursor:default;position:relative}.fps-boost-tooltip{position:absolute;left:50%;top:calc(100% + 8px);transform:translate(-50%);white-space:nowrap;font-size:12px;font-weight:400;color:#e5e7eb;background:#374151;padding:6px 12px;border-radius:6px;pointer-events:none;opacity:0;transition:opacity .15s ease}.fps-boost-tooltip:before{content:"";position:absolute;bottom:100%;left:50%;transform:translate(-50%);border:5px solid transparent;border-bottom-color:#374151}.fps-boost-info-icon:hover .fps-boost-tooltip{opacity:1}.fps-boost-close{width:32px;height:32px;border-radius:8px;border:none;background:transparent;color:#9ca3af;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:background .15s ease,color .15s ease}.fps-boost-close:hover{background:#ffffff14;color:#f3f4f6}.fps-boost-divider{height:1px;background:#ffffff14;margin:0 24px}.fps-boost-body{padding:24px;display:flex;flex-direction:column;gap:24px}.fps-boost-row{display:flex;align-items:center;gap:16px}.fps-boost-label{font-size:15px;font-weight:500;color:#d1d5db;min-width:72px;flex-shrink:0}.fps-boost-value{font-size:16px;font-weight:600;color:#f3f4f6}.fps-boost-options{display:flex;gap:12px}.fps-boost-option{display:flex;align-items:center;gap:8px;padding:10px 20px;border-radius:10px;border:1.5px solid rgba(255,255,255,.12);background:#ffffff0a;color:#d1d5db;font-size:14px;font-weight:500;cursor:pointer;transition:border-color .15s ease,background .15s ease,color .15s ease}.fps-boost-option:hover{border-color:#ffffff40;background:#ffffff14}.fps-boost-option.active{border-color:#f3f4f6;background:#ffffff1a;color:#f3f4f6}.fps-boost-radio{width:16px;height:16px;border-radius:50%;border:2px solid rgba(255,255,255,.25);position:relative;flex-shrink:0;transition:border-color .15s ease}.fps-boost-radio.checked{border-color:#f3f4f6}.fps-boost-radio.checked:after{content:"";position:absolute;top:3px;left:3px;width:6px;height:6px;border-radius:50%;background:#f3f4f6}.fps-boost-error{margin:0 24px;padding:8px 12px;border-radius:8px;background:#ef44441f;color:#f87171;font-size:13px}.fps-boost-hint{font-size:12px;color:#fbbf24;margin-right:auto;align-self:center}.fps-boost-cost{font-size:13px;color:#9ca3af;margin-right:12px;align-self:center}.fps-boost-footer{padding:16px 24px 20px;display:flex;justify-content:flex-end}.fps-boost-submit{padding:10px 28px;border-radius:10px;border:none;background:#f3f4f6;color:#111827;font-size:15px;font-weight:600;cursor:pointer;transition:background .15s ease,transform .1s ease}.fps-boost-submit:hover{background:#fff}.fps-boost-submit:active{transform:scale(.97)}.fps-boost-submit:disabled{opacity:.5;cursor:not-allowed;transform:none}.alm-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#0009;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);display:flex;align-items:center;justify-content:center;z-index:1000;animation:alm-fade-in .2s ease}@keyframes alm-fade-in{0%{opacity:0}to{opacity:1}}.alm-panel{background:#222;border:1px solid rgba(255,255,255,.08);border-radius:16px;width:960px;max-width:92vw;max-height:88vh;display:flex;flex-direction:column;box-shadow:0 16px 48px #00000080;animation:alm-slide-up .25s cubic-bezier(.16,1,.3,1)}@keyframes alm-slide-up{0%{transform:translateY(20px) scale(.98);opacity:0}to{transform:translateY(0) scale(1);opacity:1}}.alm-header{display:flex;align-items:center;justify-content:space-between;padding:18px 24px;border-bottom:1px solid rgba(255,255,255,.08)}.alm-header-left{display:flex;align-items:center;gap:8px}.alm-title{margin:0;font-size:18px;font-weight:600;color:#f0f0f0;letter-spacing:.5px}.alm-tip-wrap{position:relative;display:flex;align-items:center}.alm-tip-icon{color:#888;cursor:help;transition:color .15s ease}.alm-tip-wrap:hover .alm-tip-icon{color:#c4b5fd}.alm-tip-tooltip{display:none;position:absolute;top:calc(100% + 8px);left:50%;transform:translate(-50%);width:320px;padding:12px 14px;font-size:13px;line-height:1.6;color:#e0e0e0;background:#333;border:1px solid rgba(255,255,255,.1);border-radius:8px;box-shadow:0 8px 24px #0006;z-index:10;pointer-events:none}.alm-tip-wrap:hover .alm-tip-tooltip{display:block}.alm-close{background:#ffffff0d;border:none;color:#aaa;cursor:pointer;padding:6px;border-radius:6px;display:flex;align-items:center;justify-content:center;transition:all .2s ease}.alm-close:hover{color:#fff;background:#ffffff26;transform:scale(1.05)}.alm-body{overflow-y:auto;padding:20px 24px;position:relative}.alm-body::-webkit-scrollbar{width:8px}.alm-body::-webkit-scrollbar-track{background:transparent}.alm-body::-webkit-scrollbar-thumb{background:#ffffff1a;border-radius:4px}.alm-body::-webkit-scrollbar-thumb:hover{background:#fff3}.alm-error{color:#ff6b6b;font-size:14px;margin-bottom:16px;text-align:center;background:#ff6b6b1a;padding:10px;border-radius:8px}.alm-limit-hint{text-align:center;font-size:13px;color:#facc15;background:#facc151a;padding:8px 16px;border-radius:8px;margin-bottom:12px;animation:alm-hint-in .25s ease}@keyframes alm-hint-in{0%{opacity:0;transform:translateY(-6px)}to{opacity:1;transform:translateY(0)}}.alm-grid-wrap{position:relative}.alm-grid-loading .alm-grid{opacity:.3;pointer-events:none}.alm-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:16px;transition:opacity .15s ease}.alm-card{position:relative;aspect-ratio:1;border-radius:10px;overflow:hidden;cursor:pointer;border:2px solid transparent;transition:all .2s ease;background:#181818;box-shadow:0 4px 12px #0003}.alm-card:hover{border-color:#ffffff4d;transform:translateY(-2px);box-shadow:0 8px 20px #0000004d}.alm-card-selected{border-color:#8b5cf6}.alm-card-selected:hover{border-color:#9f75ff}.alm-card-disabled{opacity:.4;cursor:default;pointer-events:none;filter:grayscale(.5)}.alm-card-deleting{opacity:.4;pointer-events:none}.alm-card-actions{position:absolute;bottom:6px;right:6px;display:flex;gap:4px;opacity:0;transition:opacity .15s ease;z-index:2}.alm-card:hover .alm-card-actions{opacity:1}.alm-action-btn{width:28px;height:28px;border-radius:6px;border:none;background:#000000a6;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);color:#ddd;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .15s ease}.alm-action-btn:hover{background:#000000d9;color:#fff;transform:scale(1.1)}.alm-action-delete:hover{background:#dc2626d9;color:#fff}.alm-thumb{width:100%;height:100%;object-fit:cover;display:block;transition:transform .3s ease}.alm-card:hover .alm-thumb{transform:scale(1.05)}.alm-type-tag{position:absolute;bottom:8px;left:8px;font-size:12px;font-weight:500;padding:3px 8px;border-radius:6px;background:#000000a6;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);color:#eee;line-height:1.4;pointer-events:none}.alm-check{position:absolute;top:8px;right:8px;width:26px;height:26px;border-radius:50%;background:#8b5cf6;display:flex;align-items:center;justify-content:center;box-shadow:0 2px 8px #0000004d;animation:alm-pop-in .2s cubic-bezier(.175,.885,.32,1.275)}@keyframes alm-pop-in{0%{transform:scale(.5);opacity:0}to{transform:scale(1);opacity:1}}.alm-added-tag{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);font-size:14px;font-weight:500;padding:6px 14px;border-radius:6px;background:#000000bf;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);color:#f0f0f0;box-shadow:0 4px 12px #0000004d}.alm-card-upload{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;border:2px dashed rgba(255,255,255,.15);background:#ffffff05;box-shadow:none}.alm-card-upload:hover{border-color:#fff6;background:#ffffff0f;transform:translateY(-2px);box-shadow:0 8px 20px #0003}.alm-card-uploading{pointer-events:none;border-style:solid;border-color:#8b5cf666;background:#8b5cf60d}.alm-upload-icon{color:#aaa;transition:color .2s ease,transform .2s ease}.alm-card-upload:hover .alm-upload-icon{color:#fff;transform:translateY(-2px)}.alm-upload-label{font-size:14px;font-weight:500;color:#aaa;transition:color .2s ease}.alm-card-upload:hover .alm-upload-label{color:#fff}.alm-upload-progress{display:flex;flex-direction:column;align-items:center;gap:8px}.alm-upload-spinner{width:24px;height:24px;border:2.5px solid rgba(139,92,246,.3);border-top-color:#8b5cf6;border-radius:50%;animation:alm-spin .8s linear infinite}@keyframes alm-spin{to{transform:rotate(360deg)}}.alm-upload-text{font-size:12px;color:#ccc;font-weight:500}.alm-upload-error{display:flex;flex-direction:column;align-items:center;gap:6px}.alm-upload-error-icon{width:24px;height:24px;border-radius:50%;background:#ff6b6b;color:#fff;font-size:14px;font-weight:700;display:flex;align-items:center;justify-content:center}.alm-loading,.alm-empty{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;color:#888;font-size:14px;z-index:1;pointer-events:none}.alm-footer{display:flex;align-items:center;justify-content:space-between;padding:14px 24px;border-top:1px solid rgba(255,255,255,.08);background:#0000001a;border-radius:0 0 16px 16px;gap:16px}.alm-footer-left{display:flex;align-items:center;gap:16px;min-width:0}.alm-footer-info{font-size:13px;color:#888;white-space:nowrap}.alm-pagination{display:flex;align-items:center;gap:4px}.alm-page-btn{min-width:32px;height:32px;padding:0 6px;font-size:13px;font-weight:500;color:#ccc;background:#ffffff0f;border:1px solid rgba(255,255,255,.1);border-radius:6px;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .15s ease}.alm-page-btn:hover:not(:disabled){color:#fff;background:#ffffff1f;border-color:#fff3}.alm-page-btn:disabled{opacity:.3;cursor:not-allowed}.alm-page-active{color:#fff;background:#8b5cf6;border-color:#8b5cf6}.alm-page-active:hover:not(:disabled){background:#7c3aed;border-color:#7c3aed}.alm-page-ellipsis{width:28px;text-align:center;color:#666;font-size:14px;-webkit-user-select:none;user-select:none}.alm-confirm{padding:8px 32px;font-size:15px;font-weight:600;color:#fff;background:#8b5cf6;border:none;border-radius:8px;cursor:pointer;transition:all .2s ease;box-shadow:0 4px 12px #8b5cf64d}.alm-confirm:hover:not(:disabled){background:#7c3aed;transform:translateY(-1px);box-shadow:0 6px 16px #8b5cf666}.alm-confirm:active:not(:disabled){transform:translateY(0);box-shadow:0 2px 8px #8b5cf64d}.alm-confirm:disabled{opacity:.5;cursor:not-allowed;box-shadow:none}.alm-confirm-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#0009;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);display:flex;align-items:center;justify-content:center;z-index:1200;animation:alm-fade-in .15s ease}.alm-confirm-dialog{background:#2a2a2a;border:1px solid rgba(255,255,255,.1);border-radius:16px;padding:32px 36px 28px;width:360px;display:flex;flex-direction:column;align-items:center;gap:12px;box-shadow:0 16px 48px #00000080;animation:alm-slide-up .2s cubic-bezier(.16,1,.3,1)}.alm-confirm-icon{width:56px;height:56px;border-radius:14px;background:#dc26261f;border:1px solid rgba(220,38,38,.25);display:flex;align-items:center;justify-content:center;color:#f87171;margin-bottom:4px}.alm-confirm-title{margin:0;font-size:18px;font-weight:600;color:#f0f0f0}.alm-confirm-desc{margin:0;font-size:14px;color:#888;text-align:center;line-height:1.6}.alm-confirm-actions{display:flex;gap:12px;margin-top:8px;width:100%}.alm-confirm-cancel{flex:1;padding:10px 0;font-size:14px;font-weight:500;color:#ccc;background:#ffffff0f;border:1px solid rgba(255,255,255,.12);border-radius:8px;cursor:pointer;transition:all .2s ease}.alm-confirm-cancel:hover{background:#ffffff1f;color:#fff}.alm-confirm-ok{flex:1;padding:10px 0;font-size:14px;font-weight:600;color:#fff;background:#dc2626;border:none;border-radius:8px;cursor:pointer;transition:all .2s ease;box-shadow:0 4px 12px #dc26264d}.alm-confirm-ok:hover{background:#b91c1c;box-shadow:0 6px 16px #dc262666;transform:translateY(-1px)}.alm-confirm-ok:active{transform:translateY(0)}.alm-agreement-dialog{background:#2a2a2a;border:1px solid rgba(255,255,255,.1);border-radius:16px;width:560px;max-width:92vw;max-height:80vh;display:flex;flex-direction:column;box-shadow:0 16px 48px #00000080;animation:alm-slide-up .2s cubic-bezier(.16,1,.3,1)}.alm-agreement-header{display:flex;align-items:center;justify-content:space-between;padding:18px 24px;border-bottom:1px solid rgba(255,255,255,.08)}.alm-agreement-title{margin:0;font-size:17px;font-weight:600;color:#f0f0f0}.alm-agreement-body{flex:1;overflow-y:auto;padding:20px 24px}.alm-agreement-intro{margin:0 0 16px;font-size:14px;color:#7eb8da;line-height:1.7}.alm-agreement-section{margin:16px 0 8px;font-size:15px;font-weight:600;color:#e0e0e0}.alm-agreement-list{margin:0;padding-left:20px;list-style:disc}.alm-agreement-list li{font-size:14px;color:#bbb;line-height:1.7;margin-bottom:6px}.alm-agreement-checkbox{display:flex;align-items:flex-start;gap:8px;margin-top:20px;cursor:pointer;font-size:14px;color:#ccc;line-height:1.5}.alm-agreement-checkbox input[type=checkbox]{margin-top:3px;accent-color:#8b5cf6;width:16px;height:16px;flex-shrink:0}.alm-agreement-footer{display:flex;gap:12px;padding:16px 24px;border-top:1px solid rgba(255,255,255,.08);justify-content:flex-end}.alm-agreement-footer .alm-confirm-cancel{flex:none;padding:10px 20px}.alm-confirm-agree{padding:10px 24px;font-size:14px;font-weight:600;color:#fff;background:#8b5cf6;border:none;border-radius:8px;cursor:pointer;transition:all .2s ease;box-shadow:0 4px 12px #8b5cf64d}.alm-confirm-agree:hover:not(:disabled){background:#7c3aed;box-shadow:0 6px 16px #8b5cf666}.alm-confirm-agree:disabled{opacity:.5;cursor:not-allowed;box-shadow:none}.alm-preview-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#000000d9;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);display:flex;align-items:center;justify-content:center;z-index:1100;animation:alm-fade-in .15s ease}.alm-preview-close{position:absolute;top:20px;right:20px;background:#ffffff1a;border:none;color:#ccc;cursor:pointer;padding:8px;border-radius:8px;display:flex;align-items:center;justify-content:center;transition:all .2s ease;z-index:1}.alm-preview-close:hover{background:#fff3;color:#fff;transform:scale(1.1)}.alm-preview-content{max-width:90vw;max-height:90vh;display:flex;align-items:center;justify-content:center}.alm-preview-media{max-width:90vw;max-height:90vh;object-fit:contain;border-radius:8px;box-shadow:0 8px 40px #00000080}.canvas-projects{width:100%;height:100%;overflow-y:auto;padding:40px 48px}.canvas-projects-section{margin-bottom:48px}.canvas-projects-heading{font-size:18px;font-weight:600;color:#fff;margin:0 0 20px}.canvas-projects-list-error{display:flex;align-items:center;gap:12px;margin-bottom:16px;padding:10px 14px;border-radius:10px;background:#f443361f;border:1px solid rgba(244,67,54,.25);color:#ffb4b4f2;font-size:13px}.canvas-projects-retry{margin-left:auto;padding:4px 12px;border-radius:6px;border:1px solid rgba(255,255,255,.2);background:#ffffff14;color:#fff;font-size:12px;cursor:pointer}.canvas-projects-retry:hover{background:#ffffff1f}.canvas-projects-loading{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;width:200px;height:200px;border-radius:14px;background:#ffffff05;border:1px solid rgba(255,255,255,.06);color:#ffffff59;font-size:12px}.canvas-projects-loading-spinner{width:22px;height:22px;border:2px solid rgba(255,255,255,.1);border-top-color:#4caf50d9;border-radius:50%;animation:canvas-projects-spin .65s linear infinite}@keyframes canvas-projects-spin{to{transform:rotate(360deg)}}.canvas-projects-grid{display:flex;flex-wrap:wrap;gap:16px}.canvas-project-card{width:200px;border-radius:14px;overflow:hidden;transition:transform .15s,box-shadow .15s}.canvas-project-card:hover{transform:translateY(-2px);box-shadow:0 8px 28px #00000059}.canvas-project-new{height:200px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;background:#ffffff0a;border:1.5px dashed rgba(255,255,255,.15);cursor:pointer;color:#ffffff80;padding:0}.canvas-project-new:hover{background:#ffffff12;border-color:#4caf5080;color:#4caf50}.canvas-project-new:disabled{cursor:wait;opacity:.75;pointer-events:none}.canvas-project-new-icon{width:52px;height:52px;border-radius:50%;background:#ffffff0f;display:flex;align-items:center;justify-content:center;transition:background .15s}.canvas-project-new:hover .canvas-project-new-icon{background:#4caf501f}.canvas-project-new-label{font-size:13px;font-weight:500}.canvas-projects-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;width:200px;height:200px;border-radius:14px;background:#ffffff05;border:1px solid rgba(255,255,255,.05);color:#fff3;font-size:12px}.canvas-project-demo{background:#ffffff0a;border:1px solid rgba(255,255,255,.06);cursor:pointer}.canvas-project-demo:hover{border-color:#ffffff1f}.canvas-project-demo-cover{width:100%;height:130px;display:flex;align-items:center;justify-content:center;background:#ffffff08;color:#ffffff26}.canvas-project-demo-info{padding:10px 12px 14px;display:flex;flex-direction:column;gap:4px}.canvas-project-demo-title{font-size:13px;font-weight:600;color:#ffffffd9}.canvas-project-demo-desc{font-size:11px;color:#ffffff59;line-height:1.4;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.canvas-project-user{padding:0;text-align:left;background:#ffffff0a;border:1px solid rgba(255,255,255,.08);cursor:pointer;color:inherit;font:inherit}.canvas-project-user:hover{border-color:#4caf5059}.canvas-project-user-cover{width:100%;height:130px;display:flex;align-items:center;justify-content:center;background:#ffffff08;color:#4caf5059}.canvas-project-user:hover .canvas-project-user-cover{color:#4caf508c}.canvas-project-user-info{padding:10px 12px 14px;display:flex;flex-direction:column;gap:4px}.canvas-project-user-title{font-size:13px;font-weight:600;color:#ffffffe0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.canvas-project-user-meta{font-size:11px;color:#ffffff61}.home-layout{display:flex;height:100vh;width:100vw;overflow:hidden;background:#0a0a0f;color:#fff}.sidebar{width:72px;min-width:64px;display:flex;flex-direction:column;align-items:center;padding:0 0 20px;z-index:10;position:relative}.sidebar-pill{display:flex;flex-direction:column;align-items:center;gap:6px;padding:10px 8px;background:#ffffff0f;border:1px solid rgba(255,255,255,.08);border-radius:20px;margin-top:auto;margin-left:20px}.sidebar-btn{width:42px;height:42px;border:none;background:transparent;color:#fff6;cursor:pointer;display:flex;align-items:center;justify-content:center;border-radius:12px;transition:all .2s;position:relative}.sidebar-btn:hover{color:#ffffffbf;background:#ffffff0f}.sidebar-btn[data-tooltip]:after{content:attr(data-tooltip);position:absolute;left:calc(100% + 10px);top:50%;transform:translateY(-50%);white-space:nowrap;font-size:14px;font-weight:500;color:#fff;background:#1e1e2e;border-radius:8px;padding:8px 14px;pointer-events:none;opacity:0;transition:opacity .15s ease;z-index:100;box-shadow:0 4px 12px #0006}.sidebar-btn[data-tooltip]:hover:after{opacity:1}.sidebar-btn.active{color:#fff;background:#ffffff1a}.sidebar-btn svg{width:24px;height:24px}.sidebar-bottom{display:flex;flex-direction:column;align-items:center;gap:12px;margin-top:auto;padding-top:16px}.sidebar-credits{display:flex;flex-direction:column;align-items:center;gap:2px}.sidebar-credits-num{font-size:12px;font-weight:600;color:#5eead4;letter-spacing:.5px}.sidebar-vip{font-size:13px;font-weight:500;color:#5eead4;border:1px solid rgba(94,234,212,.3);border-radius:12px;padding:4px 12px;cursor:pointer;transition:all .2s;white-space:nowrap}.sidebar-vip:hover{background:#5eead41a;opacity:1}.sidebar-avatar{position:relative;cursor:pointer;width:32px;height:32px;transition:transform .2s}.sidebar-avatar:hover{transform:scale(1.05)}.sidebar-avatar.active .sidebar-avatar-img{box-shadow:0 0 0 2px #5eead4}.sidebar-avatar-img{width:32px;height:32px;border-radius:50%;background:linear-gradient(135deg,#f97316,#a855f7);display:flex;align-items:center;justify-content:center;overflow:hidden}.sidebar-avatar-img svg{width:18px;height:18px;color:#ffffffd9}.sidebar-avatar-badge{position:absolute;top:-3px;right:-5px;min-width:15px;height:15px;border-radius:8px;background:#3b82f6;color:#fff;font-size:9px;font-weight:600;display:flex;align-items:center;justify-content:center;padding:0 3px;line-height:1}.sidebar-bottom-btn{width:32px;height:32px;border:none;background:transparent;color:#fff6;cursor:pointer;display:flex;align-items:center;justify-content:center;border-radius:8px;transition:all .2s}.sidebar-bottom-btn:hover{color:#ffffffbf;background:#ffffff0f}.sidebar-bottom-btn svg{width:18px;height:18px}.sidebar-login-btn{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;width:56px;height:56px;padding:0;border:none;background:#5bc8e8;color:#0d0d0d;cursor:pointer;border-radius:14px;transition:all .2s;margin-left:20px;box-shadow:0 4px 12px #5bc8e84d}.sidebar-login-btn:hover{background:#4ab8d8;transform:translateY(-2px);box-shadow:0 6px 16px #5bc8e866}.sidebar-login-btn svg{width:20px;height:20px}.sidebar-login-btn span{font-size:11px;font-weight:500;white-space:nowrap}.main-content{flex:1;display:flex;flex-direction:column;align-items:center;overflow-y:auto;position:relative}.main-content:before{content:"";position:fixed;top:-200px;left:50%;transform:translate(-50%);width:800px;height:600px;background:radial-gradient(ellipse,rgba(99,102,241,.08) 0%,transparent 70%);pointer-events:none;z-index:0}.hero-section{display:flex;flex-direction:column;align-items:center;padding-top:25vh;width:100%;max-width:850px;position:relative;z-index:1}.hero-title{font-size:36px;font-weight:600;color:#fff;margin-bottom:32px;letter-spacing:1px}.prompt-box{width:100%;background:#0f0f17d1;backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);border-radius:20px;padding:16px 20px;border:1px solid rgba(255,255,255,.1);transition:padding .3s ease,border-radius .3s ease,background .3s ease,backdrop-filter .3s ease,-webkit-backdrop-filter .3s ease,border-color .3s ease}.prompt-box:focus-within{border-color:#fff3}.prompt-header{display:flex;align-items:center;gap:8px;margin-bottom:8px}.prompt-tag{font-size:13px;color:#ffffff59;background:linear-gradient(135deg,#a855f733,#6366f133);padding:2px 10px;border-radius:4px;border:1px solid rgba(168,85,247,.25)}.prompt-separator{color:#fff3;font-size:13px}.prompt-counter{font-size:13px;color:#ffffff40}.prompt-input-area{display:flex;align-items:flex-start;width:100%}.frame-upload-area{display:flex;align-items:center;gap:4px;padding:4px 0;margin-right:16px;opacity:1;max-height:200px;transition:opacity .25s ease,max-height .3s ease,padding .3s ease,margin .3s ease;flex-shrink:0}.ref-asset-upload{flex-shrink:0;cursor:pointer;margin-left:4px}.ref-asset-frame{width:56px;height:72px;border-radius:6px;display:flex;flex-direction:column;align-items:center;justify-content:center;overflow:hidden;position:relative}.ref-asset-empty{border:1.5px dashed rgba(255,255,255,.2);background:#ffffff08;color:#fff6;gap:2px;transition:border-color .2s,background .2s}.ref-asset-upload:hover .ref-asset-empty{border-color:#fff6;background:#ffffff0f}.ref-asset-add-text{font-size:10px;line-height:1}.frame-upload-card{width:56px;height:76px;background:#ffffff0d;border-radius:8px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;cursor:pointer;transition:all .2s}.frame-upload-card:hover{background:#ffffff14}.frame-upload-card.first-frame{transform:rotate(-6deg)}.frame-upload-card.last-frame{transform:rotate(6deg)}.frame-upload-plus{font-size:18px;color:#ffffff80;font-weight:300}.frame-upload-text{font-size:12px;color:#ffffff80}.frame-upload-card.disabled{opacity:.4;cursor:not-allowed}.frame-upload-card.has-image{padding:0;overflow:hidden}.frame-upload-preview{width:100%;height:100%;object-fit:cover;border-radius:8px;display:block}.frame-upload-remove{position:absolute;top:3px;right:3px;width:18px;height:18px;border-radius:50%;border:none;background:#0009;color:#fff;font-size:9px;cursor:pointer;display:flex;align-items:center;justify-content:center;padding:0;line-height:1;transition:background .2s}.frame-upload-remove:hover{background:#ef4444cc}.frame-upload-card{position:relative}.frame-asset-tag{position:absolute;top:3px;left:3px;background:linear-gradient(135deg,#6366f1,#8b5cf6);color:#fff;font-size:8px;line-height:1;padding:2px 4px;border-radius:3px;font-weight:600;letter-spacing:.3px;pointer-events:none;z-index:1}.frame-asset-btn{margin-left:8px}.frame-upload-swap{color:#ffffff4d;display:flex;align-items:center;justify-content:center;margin:0 4px}.prompt-textarea{flex:1;width:100%;min-height:100px;max-height:120px;background:transparent;border:none;outline:none;color:#fff;font-size:14px;line-height:1.6;resize:none;font-family:inherit;transition:min-height .3s ease,max-height .3s ease,font-size .3s ease,line-height .3s ease,padding .3s ease}.prompt-textarea::placeholder{color:#ffffff40;font-size:15px}.prompt-footer{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-top:10px;min-height:28px;overflow:visible;transition:margin-top .3s ease,min-height .3s ease}.prompt-footer-right{display:flex;align-items:center;gap:10px;margin-left:auto;flex-shrink:0}.prompt-credits{display:flex;align-items:center;gap:4px;color:#fff6;font-size:13px;font-weight:500;opacity:1;max-height:40px;transition:opacity .25s ease,max-height .3s ease}.prompt-credits svg{color:#fff6}.prompt-submit-wrap{position:relative;flex-shrink:0}.prompt-submit-tooltip{position:absolute;bottom:calc(100% + 8px);left:50%;transform:translate(-50%);white-space:nowrap;font-size:14px;line-height:1;color:#fff;background:#2a2a3a;border:none;border-radius:8px;padding:8px 14px;pointer-events:none;opacity:0;transition:opacity .15s;display:flex;align-items:center;justify-content:center}.prompt-submit-wrap:hover .prompt-submit-tooltip{opacity:1}.prompt-submit{flex-shrink:0;width:36px;height:36px;border:1px solid #ffffff;border-radius:50%;background:#fff;color:#000;cursor:not-allowed;display:flex;align-items:center;justify-content:center;padding:0;opacity:.45;transition:transform .2s,opacity .2s}.prompt-submit.active{color:#000;cursor:pointer;opacity:1}.prompt-submit.active:hover{color:#000;transform:scale(1.04)}.prompt-submit svg{width:26px;height:26px}.type-tabs{display:flex;gap:20px;margin-top:40px}.type-tab{display:flex;align-items:center;gap:8px;padding:8px 20px;border-radius:12px;border:1px solid rgba(255,255,255,.1);background:#ffffff0a;color:#ffffffb3;font-size:18px;cursor:pointer;transition:all .2s;white-space:nowrap}.type-tab:hover{background:#ffffff14;border-color:#ffffff26}.type-tab.active{background:#ffffff1a;border-color:#fff3;color:#fff}.type-tab-svg{width:18px;height:18px;flex-shrink:0}.type-tab-icon{width:20px;height:20px;border-radius:4px;display:flex;align-items:center;justify-content:center;font-size:12px}.type-tab-icon.drama{background:linear-gradient(135deg,#f97316,#ef4444)}.type-tab-icon.mv{background:linear-gradient(135deg,#ec4899,#a855f7)}.type-tab-icon.knowledge{background:linear-gradient(135deg,#6366f1,#3b82f6)}.video-gen-status{width:100%;margin-top:20px;border-radius:12px;overflow:hidden}.video-gen-progress{display:flex;align-items:center;gap:14px;padding:16px 20px;background:#6366f114;border:1px solid rgba(99,102,241,.15);border-radius:12px}.video-gen-spinner{width:24px;height:24px;border:2.5px solid rgba(99,102,241,.2);border-top-color:#6366f1;border-radius:50%;animation:spin .8s linear infinite;flex-shrink:0}.video-gen-text{display:flex;flex-direction:column;gap:2px}.video-gen-title{font-size:14px;font-weight:500;color:#c7d2fe}.video-gen-detail{font-size:12px;color:#c7d2fe80}.video-gen-result{display:flex;flex-direction:column;gap:12px}.video-gen-player{width:100%;max-height:400px;border-radius:12px;background:#000;object-fit:contain}.video-gen-actions{display:flex;gap:10px;justify-content:center}.video-gen-download{padding:8px 20px;border-radius:8px;background:linear-gradient(135deg,#6366f1,#8b5cf6);color:#fff;font-size:13px;font-weight:500;text-decoration:none;transition:opacity .2s}.video-gen-download:hover{opacity:.85}.video-gen-retry{padding:8px 20px;border-radius:8px;border:1px solid rgba(255,255,255,.15);background:#ffffff0f;color:#ffffffb3;font-size:13px;cursor:pointer;transition:all .2s}.video-gen-retry:hover{background:#ffffff1a;color:#fff}.video-gen-error{display:flex;align-items:center;gap:10px;padding:14px 20px;background:#ef444414;border:1px solid rgba(239,68,68,.15);border-radius:12px}.video-gen-error-icon{width:22px;height:22px;border-radius:50%;background:#ef444433;color:#f87171;display:flex;align-items:center;justify-content:center;font-size:11px;font-weight:700;flex-shrink:0}.video-gen-error-text{font-size:13px;color:#fca5a5;flex:1}.prompt-submit.generating{opacity:.7;cursor:wait}.prompt-submit-spinner{width:18px;height:18px;border:2px solid rgba(0,0,0,.15);border-top-color:#000;border-radius:50%;animation:spin .7s linear infinite}.generate-section{--content-max-width: 1100px;width:100%;flex:1;min-height:0;display:flex;flex-direction:column;overflow:hidden;position:relative}.history-search-anchor{position:absolute;top:12px;left:0;right:0;z-index:10;display:flex;justify-content:flex-end;max-width:var(--content-max-width);margin:0 auto;padding:0 24px;pointer-events:none}.history-search-bar{display:flex;align-items:center;gap:6px;background:#ffffff0f;border:1px solid rgba(255,255,255,.1);border-radius:10px;padding:6px 12px;min-width:160px;max-width:240px;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);pointer-events:auto}.history-search-bar svg{width:16px;height:16px;color:#ffffff59;flex-shrink:0}.history-search-input{flex:1;background:transparent;border:none;outline:none;color:#f3f4f6;font-size:13px;min-width:0}.history-search-input::placeholder{color:#ffffff4d}.history-search-clear{display:flex;align-items:center;justify-content:center;background:none;border:none;padding:0;cursor:pointer}.history-search-clear svg{width:14px;height:14px;color:#fff6}.history-search-clear:hover svg{color:#ffffffb3}.generate-history-wrapper{flex:1;min-height:0;overflow-y:auto;display:flex;flex-direction:column-reverse}.scroll-to-bottom-btn{position:absolute;bottom:110px;right:24px;z-index:15;display:flex;align-items:center;gap:4px;padding:8px 16px;border-radius:20px;border:none;background:#374151e6;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);color:#e5e7eb;font-size:13px;font-weight:500;cursor:pointer;box-shadow:0 2px 12px #0000004d;transition:background .15s ease,transform .15s ease;animation:scroll-btn-in .2s ease}.scroll-to-bottom-btn:hover{background:#4b5563f2}.scroll-to-bottom-btn:active{transform:scale(.96)}@keyframes scroll-btn-in{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.generate-prompt-wrapper{position:absolute;bottom:0;left:0;right:0;z-index:10;padding:20px 24px 32px;display:flex;flex-direction:column;align-items:center;width:100%;background:transparent;pointer-events:none;transition:padding .3s ease}.generate-prompt-wrapper>*{pointer-events:auto;width:100%;max-width:850px;transition:max-width .3s ease}.generate-prompt-wrapper.compact{padding:10px 24px 16px;background:transparent}.generate-prompt-wrapper.compact>*{max-width:880px}.generate-prompt-wrapper.compact .prompt-box{padding:6px 12px;border-radius:24px;display:flex;flex-direction:row;align-items:center;gap:8px}.generate-prompt-wrapper.compact .prompt-input-area{flex:1;flex-direction:row;align-items:center;min-width:0;overflow:hidden}.generate-prompt-wrapper.compact .prompt-textarea{flex:1;min-width:0;min-height:24px;max-height:24px;resize:none;font-size:13px;line-height:24px;padding:0 4px;white-space:nowrap!important;overflow:hidden;word-break:normal!important}.generate-prompt-wrapper.compact .prompt-footer{margin-top:0;min-height:0;flex-shrink:0;width:auto}.generate-prompt-wrapper.compact .prompt-footer-right{gap:0;margin-left:0}.generate-prompt-wrapper.compact .prompt-footer>*:not(.prompt-footer-right){opacity:0;max-height:0;max-width:0;overflow:hidden;margin:0;padding:0;pointer-events:none}.generate-prompt-wrapper.compact .prompt-credits{opacity:0;max-height:0;max-width:0;overflow:hidden;padding:0;pointer-events:none}.generate-prompt-wrapper.compact .prompt-submit-tooltip{opacity:0;pointer-events:none}.generate-prompt-wrapper.compact .frame-upload-area{padding:2px 0;margin-right:8px}.generate-prompt-wrapper.compact .frame-upload-card{width:36px;height:48px;border-radius:6px}.generate-prompt-wrapper.compact .frame-upload-swap{margin:0 2px}.generate-prompt-wrapper.compact .frame-upload-swap svg{width:12px;height:12px}.generate-prompt-wrapper.compact .frame-upload-plus{font-size:14px}.generate-prompt-wrapper.compact .frame-upload-text{font-size:9px}.generate-prompt-wrapper.compact .video-gen-status{opacity:0;max-height:0;overflow:hidden;pointer-events:none}@keyframes spin{to{transform:rotate(360deg)}}.profile-section{display:flex;justify-content:center;align-items:flex-start;height:100%;width:100%;background:#0a0a0f;padding:40px 20px;overflow-y:auto;position:relative}.profile-container{display:flex;flex-direction:column;gap:24px;width:100%;max-width:800px}.profile-card{position:relative;background:#ffffff08;border:1px solid rgba(255,255,255,.08);border-radius:24px;padding:24px 32px;display:flex;flex-direction:column;box-shadow:0 8px 32px #0003}.profile-header{display:flex;align-items:center;gap:20px;width:100%}.profile-avatar{width:56px;height:56px;border-radius:50%;background:linear-gradient(135deg,#f97316,#a855f7);display:flex;align-items:center;justify-content:center;color:#fff;flex-shrink:0;box-shadow:0 4px 16px #0000004d}.profile-info{flex:1;display:flex;flex-direction:column;gap:6px}.profile-name{font-size:20px;font-weight:600;color:#fff;margin:0;display:flex;align-items:center;gap:12px}.profile-id{font-size:13px;color:#ffffff80;margin:0;font-family:monospace;display:flex;align-items:center;gap:12px}.profile-id-item{display:inline-flex;align-items:center;gap:4px}.profile-parent-id{color:#fbbf24b3;font-size:12px}.id-copy-btn{background:none;border:none;padding:2px;cursor:pointer;color:#ffffff4d;display:inline-flex;align-items:center;justify-content:center;border-radius:4px;transition:all .15s}.id-copy-btn svg{width:13px;height:13px}.id-copy-btn:hover{color:#ffffffb3;background:#ffffff14}.id-copy-btn:active{color:#5eead4}.profile-badge{font-size:11px;padding:2px 8px;border-radius:6px;font-weight:500}.profile-badge.child{background:#fbbf2426;color:#fbbf24;border:1px solid rgba(251,191,36,.25)}.profile-badge.parent{background:#5eead426;color:#5eead4;border:1px solid rgba(94,234,212,.25)}.profile-stat-right{display:flex;flex-direction:column;align-items:flex-end;gap:4px;margin-left:auto;padding-left:20px;border-left:1px solid rgba(255,255,255,.08)}.profile-invitation-section{margin-top:24px;padding-top:20px;border-top:1px solid rgba(255,255,255,.08)}.profile-tabs-container{background:#ffffff08;border:1px solid rgba(255,255,255,.08);border-radius:24px;overflow:hidden;box-shadow:0 8px 32px #0003}.profile-tabs{display:flex;border-bottom:1px solid rgba(255,255,255,.08);background:#0003}.profile-tab{padding:16px 32px;background:none;border:none;color:#ffffff80;font-size:15px;font-weight:500;cursor:pointer;position:relative;transition:color .2s}.profile-tab:hover{color:#fffc}.profile-tab.active{color:#fff}.profile-tab.active:after{content:"";position:absolute;bottom:0;left:0;right:0;height:2px;background:#6366f1}.profile-tab-content{padding:24px 32px}.stat-value{font-size:28px;font-weight:600;color:#5eead4;font-family:monospace;line-height:1}.stat-label{font-size:12px;color:#fff6}.sidebar-settings-wrapper{position:relative}.sidebar-bottom-btn.active{color:#fff;background:#ffffff1a}.settings-popup{position:absolute;bottom:0;left:calc(100% + 10px);background:#1e1e2e;border:1px solid rgba(255,255,255,.1);border-radius:12px;padding:8px;min-width:140px;box-shadow:0 4px 20px #0006;z-index:100;display:flex;flex-direction:column;gap:4px}.settings-popup-item{display:flex;align-items:center;gap:8px;width:100%;padding:10px 12px;border:none;background:transparent;color:#fffc;font-size:14px;border-radius:8px;cursor:pointer;transition:all .2s;white-space:nowrap}.settings-popup-item:hover{background:#ffffff14;color:#fff}.settings-popup-item.text-danger{color:#ef4444}.settings-popup-item.text-danger:hover{background:#ef444426;color:#f87171}.settings-popup-item svg{width:16px;height:16px}.settings-popup-divider{height:1px;background:#ffffff1a;margin:4px 0}.settings-popup-footer{padding:8px 12px;font-size:11px;color:#ffffff80;line-height:1.5;white-space:normal;width:200px}.settings-popup-footer a{color:#ffffff80;text-decoration:none;transition:color .2s}.settings-popup-footer a:hover{color:#fffc}.prompt-footer-left{display:flex;align-items:center;gap:6px;min-width:0;overflow:visible}.type-switcher{position:relative;flex-shrink:0}.type-switcher-btn{display:inline-flex;align-items:center;gap:5px;height:36px;padding:0 6px;border-radius:8px;border:1px solid rgba(255,255,255,.1);background:#ffffff0d;color:#ffffffd9;font-size:14px;cursor:pointer;transition:background .15s,border-color .15s,color .15s;white-space:nowrap;font-family:inherit;line-height:1;box-sizing:border-box}.type-switcher-btn:hover{background:#ffffff1a;border-color:#ffffff2e;color:#ffffffe6}.type-switcher-icon{width:16px;height:16px;flex-shrink:0}.type-switcher-chevron{width:8px;height:8px;opacity:.6;flex-shrink:0}.type-switcher-dropdown{position:absolute;bottom:calc(100% + 6px);left:0;min-width:160px;background:#1a1a24;border:1px solid rgba(255,255,255,.12);border-radius:12px;padding:4px;z-index:100;box-shadow:0 8px 24px #00000080}.type-switcher-option{display:flex;align-items:center;gap:8px;width:100%;padding:8px 10px;border:none;border-radius:8px;background:transparent;color:#ffffffb3;font-size:13px;cursor:pointer;transition:all .15s ease;font-family:inherit}.type-switcher-option:hover{background:#ffffff14;color:#fff}.type-switcher-option.active{color:#fff}.type-switcher-option-icon{width:18px;height:18px;flex-shrink:0}.type-switcher-check{margin-left:auto;color:#3b82f6;flex-shrink:0}.image-gen-result{margin-top:16px}.image-gen-result-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:12px}.image-gen-result-item{position:relative;border-radius:12px;overflow:hidden;background:#ffffff0a;border:1px solid rgba(255,255,255,.08)}.image-gen-result-item img{width:100%;display:block}.image-gen-download{position:absolute;bottom:8px;right:8px;width:32px;height:32px;border-radius:8px;background:#0009;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);display:flex;align-items:center;justify-content:center;color:#fff;opacity:0;transition:opacity .15s ease;text-decoration:none}.image-gen-result-item:hover .image-gen-download{opacity:1}.image-gen-download:hover{background:#000c}.admin-login-container{min-height:100vh;display:flex;align-items:center;justify-content:center;background:#f0f2f5;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif}.admin-login-card{width:400px;background:#fff;border-radius:12px;box-shadow:0 2px 12px #00000014;padding:48px 40px 40px}.admin-login-header{text-align:center;margin-bottom:32px}.admin-login-badge{display:inline-block;background:#1677ff;color:#fff;font-size:12px;padding:2px 10px;border-radius:10px;margin-bottom:16px;letter-spacing:1px}.admin-login-header h1{font-size:22px;font-weight:600;color:#1a1a1a;margin:0 0 8px}.admin-login-header p{font-size:14px;color:#999;margin:0}.admin-login-form{display:flex;flex-direction:column;gap:14px}.admin-input-group{display:flex;align-items:center;border:1px solid #d9d9d9;border-radius:8px;height:44px;padding:0 14px;transition:border-color .2s;background:#fff}.admin-input-group:focus-within{border-color:#1677ff;box-shadow:0 0 0 2px #1677ff1a}.admin-input-prefix{color:#999;font-size:14px;margin-right:8px;padding-right:8px;border-right:1px solid #e8e8e8;-webkit-user-select:none;user-select:none}.admin-input-group input{flex:1;border:none;outline:none;font-size:14px;color:#1a1a1a;background:transparent;height:100%}.admin-input-group input::placeholder{color:#bbb}.admin-input-group input:disabled{color:#999}.admin-input-clear{background:none;border:none;color:#bbb;font-size:16px;cursor:pointer;padding:0 0 0 8px}.admin-input-clear:hover{color:#999}.admin-input-suffix{color:#999;font-size:13px;white-space:nowrap;padding-left:8px;-webkit-user-select:none;user-select:none}.admin-input-resend{background:none;border:none;color:#1677ff;font-size:13px;cursor:pointer;white-space:nowrap;padding:0 0 0 8px}.admin-input-resend:hover{color:#4096ff}.admin-input-resend:disabled{color:#bbb;cursor:not-allowed}.admin-login-error{color:#ff4d4f;font-size:13px;margin:0}.admin-login-btn{width:100%;height:44px;margin-top:8px;border:none;border-radius:8px;background:#1677ff;color:#fff;font-size:15px;font-weight:500;cursor:pointer;transition:background .2s}.admin-login-btn:hover{background:#4096ff}.admin-login-btn:disabled{background:#bbb;cursor:not-allowed}.ap-container{width:100%}.ap-toolbar{display:flex;align-items:center;justify-content:space-between;margin-bottom:16px;flex-wrap:wrap;gap:12px}.ap-search{display:flex;gap:8px}.ap-search input{width:300px;height:36px;padding:0 12px;border:1px solid #d9d9d9;border-radius:6px;font-size:13px;outline:none;transition:border-color .2s}.ap-search input:focus{border-color:#1677ff;box-shadow:0 0 0 2px #1677ff1a}.ap-search button{height:36px;padding:0 20px;background:#1677ff;color:#fff;border:none;border-radius:6px;font-size:13px;cursor:pointer;transition:background .2s}.ap-search button:hover{background:#4096ff}.ap-search button:disabled{background:#bbb;cursor:not-allowed}.ap-filters{display:flex;align-items:center;gap:16px}.ap-filter-check{display:flex;align-items:center;gap:6px;font-size:13px;color:#666;cursor:pointer;-webkit-user-select:none;user-select:none}.ap-filter-check input[type=checkbox]{width:16px;height:16px;accent-color:#1677ff;cursor:pointer}.ap-stats{font-size:13px;color:#999}.ap-stats strong{color:#1a1a1a}.ap-table-wrapper{background:#fff;border-radius:8px;box-shadow:0 1px 4px #0000000f;overflow-x:auto;-webkit-overflow-scrolling:touch}.ap-row-expanded{background:#f0f5ff}.ap-children-badge{display:inline-block;min-width:20px;text-align:center;padding:2px 8px;border-radius:10px;font-size:12px;font-weight:600;background:#f6ffed;color:#52c41a;border:1px solid #b7eb8f}.ap-children-none{color:#ccc;font-size:13px}.ap-actions{display:flex;gap:6px}.ap-btn-active{background:#e6f4ff!important;border-color:#1677ff!important;color:#1677ff!important}.ap-summary-panel{margin-top:16px;background:#fff;border-radius:8px;box-shadow:0 1px 4px #0000000f;overflow:hidden}.ap-summary-title{padding:14px 20px;font-size:14px;font-weight:600;color:#1a1a1a;background:#fafafa;border-bottom:1px solid #f0f0f0}.ap-summary-empty{text-align:center;color:#999;font-size:13px;padding:32px 0}.ap-summary-list{display:flex;flex-direction:column}.ap-summary-header{display:flex;align-items:center;padding:10px 20px;background:#fafafa;border-bottom:1px solid #f0f0f0;font-size:12px;color:#999;font-weight:500}.ap-summary-item{border-bottom:1px solid #f5f5f5}.ap-summary-item:last-child{border-bottom:none}.ap-summary-row{display:flex;align-items:center;padding:12px 20px;transition:background .15s}.ap-summary-row:hover{background:#fafafa}.ap-summary-row.expanded{background:#f0f5ff}.ap-scol-name{flex:1;min-width:0;display:flex;align-items:center;gap:8px;font-size:13px;color:#1a1a1a;font-weight:500}.ap-scol{width:100px;text-align:right;font-size:13px;font-variant-numeric:tabular-nums;font-weight:500;color:#666;flex-shrink:0}.ap-scol-net{color:#1a1a1a}.ap-scol-action{width:60px;text-align:right;flex-shrink:0}.ap-child-tag{font-size:11px;padding:1px 6px;border-radius:4px;background:#fff7e6;color:#fa8c16;font-weight:500;border:1px solid #ffd591;flex-shrink:0}.ap-detail-btn{padding:3px 10px;border:1px solid #d9d9d9;border-radius:4px;background:#fff;color:#1677ff;font-size:12px;cursor:pointer;transition:all .15s}.ap-detail-btn:hover{border-color:#1677ff;background:#f0f5ff}.ap-detail-panel{background:#f9f9f9;padding:0 20px 14px;border-top:1px solid #f0f0f0}.ap-detail-empty{text-align:center;color:#999;font-size:13px;padding:20px 0}.ap-detail-header{display:flex;align-items:center;padding:8px 0;font-size:11px;color:#999;border-bottom:1px solid #eee}.ap-detail-row{display:flex;align-items:center;padding:8px 0;font-size:13px;border-bottom:1px solid #f5f5f5}.ap-detail-row:last-of-type{border-bottom:none}.ap-dcol-time{width:120px;color:#999;font-variant-numeric:tabular-nums;font-size:12px;flex-shrink:0}.ap-dcol-type{width:60px;font-size:12px;font-weight:500;flex-shrink:0}.ap-dcol-type.deduct{color:#ff4d4f}.ap-dcol-type.refund{color:#52c41a}.ap-dcol-model{flex:1;color:#999;font-size:12px;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ap-dcol-amount{width:90px;text-align:right;font-variant-numeric:tabular-nums;font-weight:500;flex-shrink:0}.ap-dcol-amount.deduct{color:#ff4d4f}.ap-dcol-amount.refund{color:#52c41a}.ap-detail-pagination{display:flex;align-items:center;justify-content:center;gap:12px;padding-top:10px;margin-top:4px;border-top:1px solid #eee}.ap-page-btn{padding:3px 12px;border:1px solid #d9d9d9;border-radius:4px;background:#fff;color:#666;font-size:12px;cursor:pointer;transition:all .15s}.ap-page-btn:hover:not(:disabled){color:#1677ff;border-color:#1677ff}.ap-page-btn:disabled{opacity:.4;cursor:not-allowed}.ap-page-info{font-size:12px;color:#999;font-variant-numeric:tabular-nums}@media(max-width:768px){.ap-toolbar{flex-direction:column;align-items:stretch}.ap-search{width:100%}.ap-search input{width:0;flex:1;min-width:0}.ap-search button{flex-shrink:0}.ap-filters{justify-content:space-between}.ap-table-wrapper .admin-table{min-width:720px}.ap-summary-panel{margin-top:12px}.ap-summary-header,.ap-summary-row{padding-left:12px;padding-right:12px}.ap-detail-panel{padding:0 12px 10px}}.ai-container{width:100%}.ai-toolbar{display:flex;align-items:center;justify-content:space-between;margin-bottom:16px;gap:12px;flex-wrap:wrap}.ai-search{display:flex;gap:8px}.ai-search input{padding:8px 12px;border:1px solid #ddd;border-radius:6px;font-size:13px;width:320px}.ai-search button{padding:8px 16px;border:1px solid #ddd;border-radius:6px;background:#fff;font-size:13px;cursor:pointer}.ai-search button:hover{background:#f5f5f5}.ai-stats{font-size:13px;color:#666}.ai-table-wrapper{overflow-x:auto}.ai-code-badge{font-family:SF Mono,Menlo,Monaco,monospace;font-size:13px;font-weight:600;color:#6366f1;background:#eef2ff;padding:2px 8px;border-radius:4px;letter-spacing:2px}.ai-invitee-badge{background:#dcfce7;color:#16a34a;font-size:12px;font-weight:600;padding:2px 10px;border-radius:10px}.ai-invitee-none{color:#999;font-size:13px}.ai-row-expanded{background:#f0f9ff}.ai-btn-active{background:#6366f1!important;color:#fff!important;border-color:#6366f1!important}.ai-monthly-panel{background:#fff;border:1px solid #e5e7eb;border-radius:8px;padding:16px;margin-top:12px}.ai-monthly-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:14px}.ai-monthly-title{font-size:14px;font-weight:600;color:#333}.ai-month-picker{padding:6px 10px;border:1px solid #ddd;border-radius:6px;font-size:13px;color:#333;cursor:pointer}.ai-monthly-empty{text-align:center;color:#999;font-size:13px;padding:24px 0}.ai-monthly-list-header{display:flex;align-items:center;padding:8px 0;border-bottom:1px solid #eee;font-size:12px;color:#888;font-weight:500}.ai-monthly-row{display:flex;align-items:center;padding:10px 0;border-bottom:1px solid #f5f5f5;font-size:13px}.ai-monthly-row:last-child{border-bottom:none}.ai-mcol-name{flex:2;min-width:0;display:flex;flex-direction:column;gap:2px}.ai-mcol-phone{font-size:11px;color:#999}.ai-mcol{flex:1;min-width:0}.ai-mcol-time{font-size:12px;color:#888}.ai-mcol-num{flex:0 0 80px;text-align:right;font-variant-numeric:tabular-nums}.ai-deduct{color:#dc2626}.ai-refund{color:#16a34a}.ai-net{font-weight:600;color:#333}.ai-role-tag{font-size:11px;padding:1px 6px;border-radius:4px;background:#f3f4f6;color:#666}.ai-role-parent{background:#eef2ff;color:#6366f1}.ai-monthly-summary{margin-top:12px;padding-top:12px;border-top:1px solid #eee;font-size:13px;color:#666;text-align:right}.ai-monthly-summary strong{color:#333;font-size:14px}@media(max-width:768px){.ai-toolbar{flex-direction:column;align-items:stretch}.ai-search{width:100%}.ai-search input{width:0;flex:1;min-width:0}.ai-search button{flex-shrink:0}.ai-stats{text-align:right}.ai-table-wrapper .admin-table{min-width:600px}.ai-monthly-panel{padding:12px}.ai-monthly-header{flex-direction:column;align-items:flex-start;gap:8px}.ai-monthly-list-header,.ai-monthly-row{font-size:12px;gap:4px}.ai-mcol-num{flex:0 0 56px;font-size:12px}.ai-mcol{font-size:12px}}.admin-dashboard{height:100%;min-height:100%;overflow-y:auto;box-sizing:border-box;background:#f0f2f5;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;-webkit-overflow-scrolling:touch}.admin-header{background:#fff;padding:0 32px;height:56px;display:flex;align-items:center;justify-content:space-between;box-shadow:0 1px 4px #0000000f;position:sticky;top:0;z-index:10}.admin-header-left{display:flex;align-items:center;gap:12px}.admin-header-badge{background:#1677ff;color:#fff;font-size:11px;padding:2px 8px;border-radius:8px;letter-spacing:1px}.admin-header-left h1{font-size:16px;font-weight:600;color:#1a1a1a;margin:0}.admin-header-right{display:flex;align-items:center;gap:16px}.admin-header-user{font-size:13px;color:#666}.admin-logout-btn{background:none;border:1px solid #d9d9d9;border-radius:6px;padding:4px 14px;font-size:13px;color:#666;cursor:pointer;transition:all .2s}.admin-logout-btn:hover{color:#ff4d4f;border-color:#ff4d4f}.admin-layout{display:flex;min-height:calc(100vh - 56px)}.admin-sidebar{width:200px;background:#fff;border-right:1px solid #e8e8e8;padding:16px 0}.admin-nav{display:flex;flex-direction:column}.admin-nav-item{padding:12px 24px;text-align:left;background:none;border:none;font-size:14px;color:#333;cursor:pointer;transition:all .2s;border-right:3px solid transparent}.admin-nav-item:hover{background:#f5f5f5;color:#1677ff}.admin-nav-item.active{background:#e6f4ff;color:#1677ff;font-weight:500;border-right-color:#1677ff}.admin-main{flex:1;max-width:1200px;margin:0;padding:24px}.admin-toolbar{display:flex;align-items:center;justify-content:space-between;margin-bottom:16px}.admin-search{display:flex;gap:8px}.admin-search input{width:300px;height:36px;padding:0 12px;border:1px solid #d9d9d9;border-radius:6px;font-size:13px;outline:none;transition:border-color .2s}.admin-search input:focus{border-color:#1677ff;box-shadow:0 0 0 2px #1677ff1a}.admin-search button{height:36px;padding:0 20px;background:#1677ff;color:#fff;border:none;border-radius:6px;font-size:13px;cursor:pointer;transition:background .2s}.admin-search button:hover{background:#4096ff}.admin-search button:disabled{background:#bbb;cursor:not-allowed}.admin-stats{font-size:13px;color:#999}.admin-stats strong{color:#1a1a1a}.admin-table-wrapper{background:#fff;border-radius:8px;box-shadow:0 1px 4px #0000000f;overflow-x:auto;-webkit-overflow-scrolling:touch}.admin-table th{background:#fafafa;padding:12px 16px;text-align:left;font-weight:600;color:#666;border-bottom:1px solid #f0f0f0;white-space:nowrap}.admin-table td{padding:12px 16px;border-bottom:1px solid #f5f5f5;color:#1a1a1a}.admin-table-empty{text-align:center;padding:48px 16px!important;color:#999}.admin-td-time{color:#999;font-size:12px}.admin-action-btn{background:none;border:1px solid #d9d9d9;border-radius:4px;padding:3px 12px;font-size:12px;color:#1677ff;cursor:pointer;transition:all .2s}.admin-action-btn:hover{border-color:#1677ff;background:#f0f5ff}.admin-pagination{display:flex;align-items:center;justify-content:center;gap:16px;margin-top:20px;padding:12px 0}@media(max-width:768px){.admin-header{padding:0 12px;height:48px}.admin-header-left h1{font-size:14px}.admin-header-user{display:none}.admin-layout{flex-direction:column;min-height:auto}.admin-sidebar{width:100%;border-right:none;border-bottom:1px solid #e8e8e8;padding:0;overflow-x:auto;-webkit-overflow-scrolling:touch}.admin-nav{flex-direction:row;min-width:max-content}.admin-nav-item{padding:10px 16px;white-space:nowrap;border-right:none;border-bottom:2px solid transparent;font-size:13px}.admin-nav-item.active{border-right-color:transparent;border-bottom-color:#1677ff}.admin-main{padding:12px;max-width:100%}.admin-toolbar{flex-direction:column;align-items:stretch;gap:8px}.admin-search{width:100%}.admin-search input{width:0;flex:1;min-width:0}.admin-search button{flex-shrink:0}.admin-stats{text-align:right}.admin-table{min-width:600px}.admin-table th,.admin-table td{padding:10px}}.admin-detail{height:100%;min-height:100%;overflow-y:auto;box-sizing:border-box;background:#f0f2f5;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;-webkit-overflow-scrolling:touch}.admin-detail-loading{min-height:100%;display:flex;align-items:center;justify-content:center;color:#999;font-size:15px}.admin-back-btn{background:none;border:none;color:#1677ff;font-size:14px;cursor:pointer;padding:4px 8px;margin-right:8px;border-radius:4px;transition:background .2s}.admin-back-btn:hover{background:#f0f5ff}.admin-detail-main{max-width:1200px;margin:24px auto;padding:0 24px;display:flex;flex-direction:column;gap:20px}.admin-detail-card{background:#fff;border-radius:8px;box-shadow:0 1px 4px #0000000f;padding:24px}.admin-detail-card h2{font-size:16px;font-weight:600;color:#1a1a1a;margin:0 0 20px;display:flex;align-items:center;gap:12px}.admin-detail-count{font-size:13px;font-weight:400;color:#999}.admin-detail-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:16px}.admin-detail-item{display:flex;flex-direction:column;gap:4px}.admin-detail-item label{font-size:12px;color:#999}.admin-detail-item span{font-size:14px;color:#1a1a1a}.admin-detail-credit{font-size:20px!important;font-weight:600;color:#1677ff!important}.admin-link-btn{background:none;border:none;color:#1677ff;cursor:pointer;font-size:14px;padding:0;text-decoration:underline}.admin-link-btn:hover{color:#4096ff}.admin-role-tag{display:inline-block;padding:2px 8px;border-radius:4px;font-size:12px}.admin-role-independent{background:#f0f5ff;color:#1677ff}.admin-role-parent{background:#f6ffed;color:#52c41a}.admin-role-child{background:#fff7e6;color:#fa8c16}.admin-recharge-form{display:flex;flex-direction:column;gap:12px}.admin-recharge-row{display:flex;gap:10px;align-items:center}.admin-recharge-row input[type=number]{width:160px;height:36px;padding:0 12px;border:1px solid #d9d9d9;border-radius:6px;font-size:13px;outline:none}.admin-recharge-row input[type=text]{flex:1;height:36px;padding:0 12px;border:1px solid #d9d9d9;border-radius:6px;font-size:13px;outline:none}.admin-recharge-row input:focus{border-color:#1677ff;box-shadow:0 0 0 2px #1677ff1a}.admin-recharge-btn{height:36px;padding:0 24px;background:#52c41a;color:#fff;border:none;border-radius:6px;font-size:13px;font-weight:500;cursor:pointer;transition:background .2s;white-space:nowrap}.admin-recharge-btn:hover{background:#73d13d}.admin-recharge-btn:disabled{background:#bbb;cursor:not-allowed}.admin-recharge-success{color:#52c41a;font-size:13px;margin:0}.admin-recharge-error{color:#ff4d4f;font-size:13px;margin:0}.admin-credit-type{display:inline-block;padding:2px 8px;border-radius:4px;font-size:12px}.credit-type-deduct{background:#fff1f0;color:#ff4d4f}.credit-type-refund{background:#fff7e6;color:#fa8c16}.credit-type-recharge{background:#f6ffed;color:#52c41a}.credit-type-gift{background:#f0f5ff;color:#1677ff}.admin-table-wrapper{overflow-x:auto}.admin-table{width:100%;border-collapse:collapse;font-size:13px}.admin-table th{background:#fafafa;padding:10px 14px;text-align:left;font-weight:600;color:#666;border-bottom:1px solid #f0f0f0;white-space:nowrap}.admin-table td{padding:10px 14px;border-bottom:1px solid #f5f5f5;color:#1a1a1a}.admin-table tbody tr:hover{background:#fafafa}.admin-table-empty{text-align:center;padding:40px 14px!important;color:#999}.admin-td-credit{font-variant-numeric:tabular-nums;font-weight:500}.admin-td-time{color:#999;font-size:12px;white-space:nowrap}.admin-td-desc{max-width:200px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.admin-pagination{display:flex;align-items:center;justify-content:center;gap:16px;margin-top:16px;padding:12px 0}.admin-pagination button{height:32px;padding:0 16px;border:1px solid #d9d9d9;border-radius:6px;background:#fff;font-size:13px;cursor:pointer;transition:all .2s;color:#1a1a1a}.admin-pagination button:hover:not(:disabled){border-color:#1677ff;color:#1677ff}.admin-pagination button:disabled{color:#bbb;cursor:not-allowed}.admin-pagination span{font-size:13px;color:#666}@media(max-width:768px){.admin-detail .admin-header{padding:0 12px;height:48px}.admin-detail .admin-header-left h1{font-size:14px}.admin-detail .admin-header-user{display:none}.admin-detail-main{padding:0 12px;margin:12px auto;gap:12px}.admin-detail-card{padding:16px}.admin-detail-grid{grid-template-columns:repeat(2,1fr);gap:12px}.admin-recharge-row{flex-direction:column;gap:8px}.admin-recharge-row input[type=number],.admin-recharge-row input[type=text]{width:100%;box-sizing:border-box}.admin-recharge-btn{width:100%}.admin-detail .admin-table{min-width:560px}.admin-detail .admin-table th,.admin-detail .admin-table td{padding:8px}}.react-flow{direction:ltr;--xy-edge-stroke-default: #b1b1b7;--xy-edge-stroke-width-default: 1;--xy-edge-stroke-selected-default: #555;--xy-connectionline-stroke-default: #b1b1b7;--xy-connectionline-stroke-width-default: 1;--xy-attribution-background-color-default: rgba(255, 255, 255, .5);--xy-minimap-background-color-default: #fff;--xy-minimap-mask-background-color-default: rgba(240, 240, 240, .6);--xy-minimap-mask-stroke-color-default: transparent;--xy-minimap-mask-stroke-width-default: 1;--xy-minimap-node-background-color-default: #e2e2e2;--xy-minimap-node-stroke-color-default: transparent;--xy-minimap-node-stroke-width-default: 2;--xy-background-color-default: transparent;--xy-background-pattern-dots-color-default: #91919a;--xy-background-pattern-lines-color-default: #eee;--xy-background-pattern-cross-color-default: #e2e2e2;background-color:var(--xy-background-color, var(--xy-background-color-default));--xy-node-color-default: inherit;--xy-node-border-default: 1px solid #1a192b;--xy-node-background-color-default: #fff;--xy-node-group-background-color-default: rgba(240, 240, 240, .25);--xy-node-boxshadow-hover-default: 0 1px 4px 1px rgba(0, 0, 0, .08);--xy-node-boxshadow-selected-default: 0 0 0 .5px #1a192b;--xy-node-border-radius-default: 3px;--xy-handle-background-color-default: #1a192b;--xy-handle-border-color-default: #fff;--xy-selection-background-color-default: rgba(0, 89, 220, .08);--xy-selection-border-default: 1px dotted rgba(0, 89, 220, .8);--xy-controls-button-background-color-default: #fefefe;--xy-controls-button-background-color-hover-default: #f4f4f4;--xy-controls-button-color-default: inherit;--xy-controls-button-color-hover-default: inherit;--xy-controls-button-border-color-default: #eee;--xy-controls-box-shadow-default: 0 0 2px 1px rgba(0, 0, 0, .08);--xy-edge-label-background-color-default: #ffffff;--xy-edge-label-color-default: inherit;--xy-resize-background-color-default: #3367d9}.react-flow.dark{--xy-edge-stroke-default: #3e3e3e;--xy-edge-stroke-width-default: 1;--xy-edge-stroke-selected-default: #727272;--xy-connectionline-stroke-default: #b1b1b7;--xy-connectionline-stroke-width-default: 1;--xy-attribution-background-color-default: rgba(150, 150, 150, .25);--xy-minimap-background-color-default: #141414;--xy-minimap-mask-background-color-default: rgba(60, 60, 60, .6);--xy-minimap-mask-stroke-color-default: transparent;--xy-minimap-mask-stroke-width-default: 1;--xy-minimap-node-background-color-default: #2b2b2b;--xy-minimap-node-stroke-color-default: transparent;--xy-minimap-node-stroke-width-default: 2;--xy-background-color-default: #141414;--xy-background-pattern-dots-color-default: #777;--xy-background-pattern-lines-color-default: #777;--xy-background-pattern-cross-color-default: #777;--xy-node-color-default: #f8f8f8;--xy-node-border-default: 1px solid #3c3c3c;--xy-node-background-color-default: #1e1e1e;--xy-node-group-background-color-default: rgba(240, 240, 240, .25);--xy-node-boxshadow-hover-default: 0 1px 4px 1px rgba(255, 255, 255, .08);--xy-node-boxshadow-selected-default: 0 0 0 .5px #999;--xy-handle-background-color-default: #bebebe;--xy-handle-border-color-default: #1e1e1e;--xy-selection-background-color-default: rgba(200, 200, 220, .08);--xy-selection-border-default: 1px dotted rgba(200, 200, 220, .8);--xy-controls-button-background-color-default: #2b2b2b;--xy-controls-button-background-color-hover-default: #3e3e3e;--xy-controls-button-color-default: #f8f8f8;--xy-controls-button-color-hover-default: #fff;--xy-controls-button-border-color-default: #5b5b5b;--xy-controls-box-shadow-default: 0 0 2px 1px rgba(0, 0, 0, .08);--xy-edge-label-background-color-default: #141414;--xy-edge-label-color-default: #f8f8f8}.react-flow__background{background-color:var(--xy-background-color-props, var(--xy-background-color, var(--xy-background-color-default)));pointer-events:none;z-index:-1}.react-flow__container{position:absolute;width:100%;height:100%;top:0;left:0}.react-flow__pane{z-index:1}.react-flow__pane.draggable{cursor:grab}.react-flow__pane.dragging{cursor:grabbing}.react-flow__pane.selection{cursor:pointer}.react-flow__viewport{transform-origin:0 0;z-index:2;pointer-events:none}.react-flow__renderer{z-index:4}.react-flow__selection{z-index:6}.react-flow__nodesselection-rect:focus,.react-flow__nodesselection-rect:focus-visible{outline:none}.react-flow__edge-path{stroke:var(--xy-edge-stroke, var(--xy-edge-stroke-default));stroke-width:var(--xy-edge-stroke-width, var(--xy-edge-stroke-width-default));fill:none}.react-flow__connection-path{stroke:var(--xy-connectionline-stroke, var(--xy-connectionline-stroke-default));stroke-width:var(--xy-connectionline-stroke-width, var(--xy-connectionline-stroke-width-default));fill:none}.react-flow .react-flow__edges{position:absolute}.react-flow .react-flow__edges svg{overflow:visible;position:absolute;pointer-events:none}.react-flow__edge{pointer-events:visibleStroke}.react-flow__edge.selectable{cursor:pointer}.react-flow__edge.animated path{stroke-dasharray:5;animation:dashdraw .5s linear infinite}.react-flow__edge.animated path.react-flow__edge-interaction{stroke-dasharray:none;animation:none}.react-flow__edge.inactive{pointer-events:none}.react-flow__edge.selected,.react-flow__edge:focus,.react-flow__edge:focus-visible{outline:none}.react-flow__edge.selected .react-flow__edge-path,.react-flow__edge.selectable:focus .react-flow__edge-path,.react-flow__edge.selectable:focus-visible .react-flow__edge-path{stroke:var(--xy-edge-stroke-selected, var(--xy-edge-stroke-selected-default))}.react-flow__edge-textwrapper{pointer-events:all}.react-flow__edge .react-flow__edge-text{pointer-events:none;-webkit-user-select:none;-moz-user-select:none;user-select:none}.react-flow__arrowhead polyline{stroke:var(--xy-edge-stroke, var(--xy-edge-stroke-default))}.react-flow__arrowhead polyline.arrowclosed{fill:var(--xy-edge-stroke, var(--xy-edge-stroke-default))}.react-flow__connection{pointer-events:none}.react-flow__connection .animated{stroke-dasharray:5;animation:dashdraw .5s linear infinite}svg.react-flow__connectionline{z-index:1001;overflow:visible;position:absolute}.react-flow__nodes{pointer-events:none;transform-origin:0 0}.react-flow__node{position:absolute;-webkit-user-select:none;-moz-user-select:none;user-select:none;pointer-events:all;transform-origin:0 0;box-sizing:border-box;cursor:default}.react-flow__node.selectable{cursor:pointer}.react-flow__node.draggable{cursor:grab;pointer-events:all}.react-flow__node.draggable.dragging{cursor:grabbing}.react-flow__nodesselection{z-index:3;transform-origin:left top;pointer-events:none}.react-flow__nodesselection-rect{position:absolute;pointer-events:all;cursor:grab}.react-flow__handle{position:absolute;pointer-events:none;min-width:5px;min-height:5px;width:6px;height:6px;background-color:var(--xy-handle-background-color, var(--xy-handle-background-color-default));border:1px solid var(--xy-handle-border-color, var(--xy-handle-border-color-default));border-radius:100%}.react-flow__handle.connectingfrom{pointer-events:all}.react-flow__handle.connectionindicator{pointer-events:all;cursor:crosshair}.react-flow__handle-bottom{top:auto;left:50%;bottom:0;transform:translate(-50%,50%)}.react-flow__handle-top{top:0;left:50%;transform:translate(-50%,-50%)}.react-flow__handle-left{top:50%;left:0;transform:translate(-50%,-50%)}.react-flow__handle-right{top:50%;right:0;transform:translate(50%,-50%)}.react-flow__edgeupdater{cursor:move;pointer-events:all}.react-flow__pane.selection .react-flow__panel{pointer-events:none}.react-flow__panel{position:absolute;z-index:5;margin:15px}.react-flow__panel.top{top:0}.react-flow__panel.bottom{bottom:0}.react-flow__panel.top.center,.react-flow__panel.bottom.center{left:50%;transform:translate(-15px) translate(-50%)}.react-flow__panel.left{left:0}.react-flow__panel.right{right:0}.react-flow__panel.left.center,.react-flow__panel.right.center{top:50%;transform:translateY(-15px) translateY(-50%)}.react-flow__attribution{font-size:10px;background:var(--xy-attribution-background-color, var(--xy-attribution-background-color-default));padding:2px 3px;margin:0}.react-flow__attribution a{text-decoration:none;color:#999}@keyframes dashdraw{0%{stroke-dashoffset:10}}.react-flow__edgelabel-renderer{position:absolute;width:100%;height:100%;pointer-events:none;-webkit-user-select:none;-moz-user-select:none;user-select:none;left:0;top:0}.react-flow__viewport-portal{position:absolute;width:100%;height:100%;left:0;top:0;-webkit-user-select:none;-moz-user-select:none;user-select:none}.react-flow__minimap{background:var( --xy-minimap-background-color-props, var(--xy-minimap-background-color, var(--xy-minimap-background-color-default)) )}.react-flow__minimap-svg{display:block}.react-flow__minimap-mask{fill:var( --xy-minimap-mask-background-color-props, var(--xy-minimap-mask-background-color, var(--xy-minimap-mask-background-color-default)) );stroke:var( --xy-minimap-mask-stroke-color-props, var(--xy-minimap-mask-stroke-color, var(--xy-minimap-mask-stroke-color-default)) );stroke-width:var( --xy-minimap-mask-stroke-width-props, var(--xy-minimap-mask-stroke-width, var(--xy-minimap-mask-stroke-width-default)) )}.react-flow__minimap-node{fill:var( --xy-minimap-node-background-color-props, var(--xy-minimap-node-background-color, var(--xy-minimap-node-background-color-default)) );stroke:var( --xy-minimap-node-stroke-color-props, var(--xy-minimap-node-stroke-color, var(--xy-minimap-node-stroke-color-default)) );stroke-width:var( --xy-minimap-node-stroke-width-props, var(--xy-minimap-node-stroke-width, var(--xy-minimap-node-stroke-width-default)) )}.react-flow__background-pattern.dots{fill:var( --xy-background-pattern-color-props, var(--xy-background-pattern-color, var(--xy-background-pattern-dots-color-default)) )}.react-flow__background-pattern.lines{stroke:var( --xy-background-pattern-color-props, var(--xy-background-pattern-color, var(--xy-background-pattern-lines-color-default)) )}.react-flow__background-pattern.cross{stroke:var( --xy-background-pattern-color-props, var(--xy-background-pattern-color, var(--xy-background-pattern-cross-color-default)) )}.react-flow__controls{display:flex;flex-direction:column;box-shadow:var(--xy-controls-box-shadow, var(--xy-controls-box-shadow-default))}.react-flow__controls.horizontal{flex-direction:row}.react-flow__controls-button{display:flex;justify-content:center;align-items:center;height:26px;width:26px;padding:4px;border:none;background:var(--xy-controls-button-background-color, var(--xy-controls-button-background-color-default));border-bottom:1px solid var( --xy-controls-button-border-color-props, var(--xy-controls-button-border-color, var(--xy-controls-button-border-color-default)) );color:var( --xy-controls-button-color-props, var(--xy-controls-button-color, var(--xy-controls-button-color-default)) );cursor:pointer;-webkit-user-select:none;-moz-user-select:none;user-select:none}.react-flow__controls-button svg{width:100%;max-width:12px;max-height:12px;fill:currentColor}.react-flow__edge.updating .react-flow__edge-path{stroke:#777}.react-flow__edge-text{font-size:10px}.react-flow__node.selectable:focus,.react-flow__node.selectable:focus-visible{outline:none}.react-flow__node-input,.react-flow__node-default,.react-flow__node-output,.react-flow__node-group{padding:10px;border-radius:var(--xy-node-border-radius, var(--xy-node-border-radius-default));width:150px;font-size:12px;color:var(--xy-node-color, var(--xy-node-color-default));text-align:center;border:var(--xy-node-border, var(--xy-node-border-default));background-color:var(--xy-node-background-color, var(--xy-node-background-color-default))}.react-flow__node-input.selectable:hover,.react-flow__node-default.selectable:hover,.react-flow__node-output.selectable:hover,.react-flow__node-group.selectable:hover{box-shadow:var(--xy-node-boxshadow-hover, var(--xy-node-boxshadow-hover-default))}.react-flow__node-input.selectable.selected,.react-flow__node-input.selectable:focus,.react-flow__node-input.selectable:focus-visible,.react-flow__node-default.selectable.selected,.react-flow__node-default.selectable:focus,.react-flow__node-default.selectable:focus-visible,.react-flow__node-output.selectable.selected,.react-flow__node-output.selectable:focus,.react-flow__node-output.selectable:focus-visible,.react-flow__node-group.selectable.selected,.react-flow__node-group.selectable:focus,.react-flow__node-group.selectable:focus-visible{box-shadow:var(--xy-node-boxshadow-selected, var(--xy-node-boxshadow-selected-default))}.react-flow__node-group{background-color:var(--xy-node-group-background-color, var(--xy-node-group-background-color-default))}.react-flow__nodesselection-rect,.react-flow__selection{background:var(--xy-selection-background-color, var(--xy-selection-background-color-default));border:var(--xy-selection-border, var(--xy-selection-border-default))}.react-flow__nodesselection-rect:focus,.react-flow__nodesselection-rect:focus-visible,.react-flow__selection:focus,.react-flow__selection:focus-visible{outline:none}.react-flow__controls-button:hover{background:var( --xy-controls-button-background-color-hover-props, var(--xy-controls-button-background-color-hover, var(--xy-controls-button-background-color-hover-default)) );color:var( --xy-controls-button-color-hover-props, var(--xy-controls-button-color-hover, var(--xy-controls-button-color-hover-default)) )}.react-flow__controls-button:disabled{pointer-events:none}.react-flow__controls-button:disabled svg{fill-opacity:.4}.react-flow__controls-button:last-child{border-bottom:none}.react-flow__controls.horizontal .react-flow__controls-button{border-bottom:none;border-right:1px solid var( --xy-controls-button-border-color-props, var(--xy-controls-button-border-color, var(--xy-controls-button-border-color-default)) )}.react-flow__controls.horizontal .react-flow__controls-button:last-child{border-right:none}.react-flow__resize-control{position:absolute}.react-flow__resize-control.left,.react-flow__resize-control.right{cursor:ew-resize}.react-flow__resize-control.top,.react-flow__resize-control.bottom{cursor:ns-resize}.react-flow__resize-control.top.left,.react-flow__resize-control.bottom.right{cursor:nwse-resize}.react-flow__resize-control.bottom.left,.react-flow__resize-control.top.right{cursor:nesw-resize}.react-flow__resize-control.handle{width:5px;height:5px;border:1px solid #fff;border-radius:1px;background-color:var(--xy-resize-background-color, var(--xy-resize-background-color-default));translate:-50% -50%}.react-flow__resize-control.handle.left{left:0;top:50%}.react-flow__resize-control.handle.right{left:100%;top:50%}.react-flow__resize-control.handle.top{left:50%;top:0}.react-flow__resize-control.handle.bottom{left:50%;top:100%}.react-flow__resize-control.handle.top.left,.react-flow__resize-control.handle.bottom.left{left:0}.react-flow__resize-control.handle.top.right,.react-flow__resize-control.handle.bottom.right{left:100%}.react-flow__resize-control.line{border-color:var(--xy-resize-background-color, var(--xy-resize-background-color-default));border-width:0;border-style:solid}.react-flow__resize-control.line.left,.react-flow__resize-control.line.right{width:1px;transform:translate(-50%);top:0;height:100%}.react-flow__resize-control.line.left{left:0;border-left-width:1px}.react-flow__resize-control.line.right{left:100%;border-right-width:1px}.react-flow__resize-control.line.top,.react-flow__resize-control.line.bottom{height:1px;transform:translateY(-50%);left:0;width:100%}.react-flow__resize-control.line.top{top:0;border-top-width:1px}.react-flow__resize-control.line.bottom{border-bottom-width:1px;top:100%}.react-flow__edge-textbg{fill:var(--xy-edge-label-background-color, var(--xy-edge-label-background-color-default))}.react-flow__edge-text{fill:var(--xy-edge-label-color, var(--xy-edge-label-color-default))}.canvas-page{width:100vw;height:100vh;position:relative;background:#09090b;overflow:hidden;color:#e0e0e0}.canvas-topbar{position:absolute;top:12px;left:12px;display:flex;align-items:center;gap:6px;padding:6px 10px;background:#18181bd9;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border-radius:10px;border:1px solid rgba(255,255,255,.08);z-index:20}.canvas-topbar-back{width:28px;height:28px;border:none;background:transparent;color:#fff9;cursor:pointer;display:flex;align-items:center;justify-content:center;border-radius:8px;transition:background .15s,color .15s}.canvas-topbar-back:hover{background:#ffffff14;color:#fff}.canvas-topbar-name{display:flex;align-items:center;gap:4px;font-size:13px;font-weight:600;color:#fff;cursor:pointer;padding:4px 8px;border-radius:6px;transition:background .15s}.canvas-topbar-name:hover{background:#ffffff14}.canvas-topbar-name svg{color:#fff6}.canvas-topbar-name-input{font-size:13px;font-weight:600;color:#fff;border:1px solid rgba(255,255,255,.15);border-radius:6px;padding:3px 8px;outline:none;background:#ffffff0f}.canvas-topbar-name-input:focus{border-color:#4caf50;box-shadow:0 0 0 2px #4caf5033}.canvas-topbar-title-row{display:flex;align-items:center;flex-wrap:wrap;gap:6px 14px;min-width:0}.canvas-topbar-saved-at{font-size:11px;font-weight:500;color:#ffffff59;white-space:nowrap}.canvas-toolbar{position:absolute;top:50%;left:16px;transform:translateY(-50%);display:flex;flex-direction:column;align-items:center;gap:4px;padding:8px;background:#18181be6;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border:1px solid rgba(255,255,255,.06);border-radius:16px;box-shadow:0 4px 20px #0000004d;z-index:15}.canvas-toolbar-btn{width:40px;height:40px;border:none;background:transparent;color:#ffffff73;cursor:pointer;display:flex;align-items:center;justify-content:center;border-radius:10px;transition:all .15s}.canvas-toolbar-btn:hover:not(:disabled){color:#ffffffd9;background:#ffffff14}.canvas-toolbar-btn:disabled{color:#ffffff26;cursor:default}.canvas-toolbar-add{width:40px;height:40px;background:#4caf50;color:#fff;border-radius:10px;box-shadow:0 2px 10px #4caf5059}.canvas-toolbar-add:hover:not(:disabled){background:#43a047;color:#fff}.canvas-toolbar-group{position:relative}.canvas-toolbar-submenu{position:absolute;left:100%;top:50%;transform:translateY(-50%);padding-left:10px;pointer-events:none;opacity:0;transition:opacity .15s;z-index:30}.canvas-toolbar-submenu-inner{background:#27272af7;-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);border:1px solid rgba(255,255,255,.08);border-radius:12px;box-shadow:0 8px 32px #0006;padding:8px 6px;min-width:130px}.canvas-toolbar-group:hover .canvas-toolbar-submenu{pointer-events:auto;opacity:1}.canvas-toolbar-submenu-title{font-size:12px;font-weight:500;color:#ffffff59;padding:4px 12px 8px}.canvas-toolbar-submenu-item{display:block;width:100%;padding:8px 12px;border:none;background:transparent;color:#ffffffd9;font-size:14px;font-weight:500;cursor:pointer;border-radius:8px;text-align:left;transition:background .12s}.canvas-toolbar-submenu-item:hover{background:#ffffff14}.canvas-toolbar-divider{width:28px;height:1px;background:#ffffff14;margin:4px 0}.canvas-flow-wrapper{position:absolute;top:0;left:0;right:0;bottom:0}.canvas-flow-wrapper .react-flow{background:#09090b}.canvas-flow-wrapper .react-flow__controls{bottom:16px;right:16px;left:auto;box-shadow:0 4px 16px #00000059;border-radius:10px;border:1px solid rgba(255,255,255,.06);overflow:hidden;background:#18181be6}.canvas-flow-wrapper .react-flow__controls button{border:none;border-bottom:1px solid rgba(255,255,255,.06);width:32px;height:32px;background:transparent;color:#fff9;fill:#fff9}.canvas-flow-wrapper .react-flow__controls button:hover{background:#ffffff14}.canvas-flow-wrapper .react-flow__controls button:last-child{border-bottom:none}.canvas-flow-wrapper .react-flow__controls button svg{fill:#fff9}.canvas-minimap.react-flow__minimap{bottom:16px;left:16px;width:180px;height:120px;background:#18181be6;border:1px solid rgba(255,255,255,.08);border-radius:10px;box-shadow:0 4px 16px #00000059;overflow:hidden}.canvas-node{background:#18181bf2;border:1px solid rgba(255,255,255,.08);border-radius:12px;box-shadow:0 4px 20px #0000004d;min-width:240px;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;transition:border-color .15s}.react-flow__node.selected .canvas-node{border-color:#3b82f6}.react-flow__node.selected .canvas-node-outside-label,.react-flow__node.selected .canvas-node-label,.react-flow__node.selected .canvas-video-label{color:#3b82f6}.canvas-node-header{display:flex;align-items:center;justify-content:space-between;padding:2px 10px;border-bottom:1px solid rgba(255,255,255,.06)}.canvas-node-label{font-size:12px;font-weight:500;color:#ffffff73;letter-spacing:.5px}.canvas-node-delete{opacity:0;transition:opacity .15s}.canvas-node:hover .canvas-node-delete{opacity:1}.canvas-node-text-wrapper{position:relative}.canvas-node-text-wrapper .canvas-node-outside-label{position:absolute;top:-26px;left:4px}.canvas-node-text{min-width:280px;max-width:360px;padding:12px;position:relative;transition:min-width .25s ease,max-width .25s ease}.canvas-node-text-expanded{min-width:480px;max-width:600px}.canvas-node-text-expanded .canvas-node-textarea{min-height:240px}.canvas-text-toolbar-row{position:absolute;bottom:calc(100% + 8px);left:0;display:flex;align-items:center;gap:0;z-index:10;animation:canvas-toolbar-in .18s ease-out}.canvas-text-toolbar{display:flex;align-items:center;gap:2px;padding:6px 8px;width:max-content;background:#27272af7;-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);border:1px solid rgba(255,255,255,.1);border-radius:10px;box-shadow:0 4px 20px #00000059}.canvas-text-toolbar-drag{display:flex;align-items:center;justify-content:center;width:28px;align-self:stretch;background:#27272af7;border:1px solid rgba(255,255,255,.1);border-left:none;border-radius:0 10px 10px 0;color:#ffffff4d;cursor:grab;transition:color .12s,background .12s}.canvas-text-toolbar-drag:hover{color:#ffffffb3;background:#ffffff0f}.canvas-text-toolbar-drag:active{cursor:grabbing;color:#fff}@keyframes canvas-toolbar-in{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}.canvas-text-toolbar-btn{display:inline-flex;align-items:center;gap:5px;padding:5px 10px;border:none;border-radius:6px;background:transparent;color:#ffffffb3;font-size:12px;font-weight:500;cursor:pointer;white-space:nowrap;transition:background .12s,color .12s}.canvas-text-toolbar-btn:hover{background:#ffffff14;color:#fff}.canvas-text-toolbar-btn svg{flex-shrink:0;color:#ffffff80}.canvas-text-toolbar-btn:hover svg{color:#fffc}.canvas-text-toolbar-icon-only{padding:5px 6px}.canvas-text-toolbar-delete:hover{color:#ef4444!important;background:#ef444414!important}.canvas-text-toolbar-divider{width:1px;height:16px;background:#ffffff1f;margin:0 4px;flex-shrink:0}.canvas-node-outside-label{position:absolute;top:-30px;left:4px;font-size:14px;font-weight:400;color:#ffffff73;letter-spacing:.5px}.canvas-node-editor-wrap{position:relative}.canvas-node-textarea{display:block;width:100%;border:none;outline:none;resize:none;padding:0;font-size:12px;line-height:1.6;color:#ffffffd9;background:transparent;font-family:inherit;min-height:120px}.canvas-node-textarea::placeholder{color:#ffffff40}.canvas-node-editable:empty:before{content:attr(data-placeholder);color:#ffffff40;pointer-events:none}.canvas-node-editable{white-space:pre-wrap;word-break:break-word;overflow-wrap:break-word;cursor:grab;-webkit-user-select:none;user-select:none}.canvas-node-editable[contenteditable=true]{cursor:text;-webkit-user-select:text;user-select:text}.canvas-mention-chip{display:inline-flex;align-items:center;gap:3px;padding:1px 6px 1px 2px;margin:0 1px;background:#4caf5026;border:1px solid rgba(76,175,80,.3);border-radius:4px;vertical-align:baseline;cursor:default;-webkit-user-select:none;user-select:none;line-height:1.4}.canvas-mention-chip-thumb{width:16px;height:16px;border-radius:3px;object-fit:cover;vertical-align:middle}.canvas-mention-chip-label{font-size:11px;font-weight:600;color:#4caf50}.canvas-mention-dropdown{position:absolute;left:0;top:100%;margin-top:4px;background:#27272af7;-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);border:1px solid rgba(255,255,255,.1);border-radius:10px;box-shadow:0 8px 32px #00000073;padding:6px;min-width:160px;z-index:60}.canvas-mention-dd-header{display:flex;align-items:center;gap:4px;padding:4px 8px 6px;border-bottom:1px solid rgba(255,255,255,.06);margin-bottom:4px}.canvas-mention-dd-at{font-size:13px;font-weight:700;color:#4caf50}.canvas-mention-dd-hint{font-size:11px;color:#ffffff59}.canvas-mention-dd-item{display:flex;align-items:center;gap:8px;padding:6px 8px;border-radius:6px;cursor:pointer;transition:background .1s}.canvas-mention-dd-item:hover,.canvas-mention-dd-item.active{background:#ffffff0f}.canvas-mention-dd-thumb{width:28px;height:28px;border-radius:4px;object-fit:cover;flex-shrink:0;border:1px solid rgba(255,255,255,.1)}.canvas-mention-dd-empty{background:#ffffff0f}.canvas-mention-dd-label{font-size:12px;font-weight:500;color:#ffffffd9}.canvas-node-actions{display:flex;align-items:center;justify-content:flex-end;gap:4px;margin-top:0}.canvas-node-action-btn{width:28px;height:28px;border:none;background:transparent;color:#ffffff59;cursor:pointer;display:flex;align-items:center;justify-content:center;border-radius:6px;transition:all .12s}.canvas-node-action-btn:hover{color:#ffffffb3;background:#ffffff0f}.canvas-image-ref-wrapper{position:relative;min-width:220px;max-width:300px;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif}.canvas-image-ref-label{display:flex;align-items:center;justify-content:space-between;padding:0 4px 6px;font-size:13px;font-weight:400;color:#ffffff73;letter-spacing:.3px}.canvas-image-ref-delete{width:20px;height:20px;border:none;background:transparent;color:#ffffff40;cursor:pointer;display:flex;align-items:center;justify-content:center;border-radius:4px;opacity:0;transition:opacity .15s,color .15s,background .15s}.canvas-image-ref-wrapper:hover .canvas-image-ref-delete{opacity:1}.canvas-image-ref-delete:hover{color:#ef4444;background:#ef44441a}.canvas-image-ref-body{position:relative;border-radius:10px;border:1px solid transparent;transition:border-color .18s}.canvas-image-ref-wrapper:hover .canvas-image-ref-body,.react-flow__node.selected .canvas-image-ref-body{border-color:#3b82f6}.react-flow__node.selected .canvas-image-ref-label{color:#3b82f6}.canvas-image-ref-preview{position:relative;overflow:hidden;border-radius:9px}.canvas-image-ref-preview img{display:block;width:100%;max-height:220px;object-fit:cover}.canvas-image-ref-upload{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;padding:32px 20px;cursor:pointer;color:#ffffff40;background:#27272a99;border-radius:9px;transition:color .15s,background .15s}.canvas-image-ref-upload:hover{color:#ffffff80;background:#27272acc}.canvas-image-ref-upload span{font-size:12px}.canvas-node-size-error{font-size:11px;color:#ff6b6b;text-align:center;line-height:1.4}.canvas-node-image-ready-badge{position:absolute;bottom:6px;right:6px;display:flex;align-items:center;gap:3px;padding:2px 6px;background:#4caf50d9;border-radius:4px;font-size:10px;font-weight:600;color:#fff;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.canvas-node-image-upload-overlay{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;gap:6px;background:#0000008c;border-radius:8px;font-size:11px;color:#ffffffd9}.canvas-media-ref-wrapper{position:relative;min-width:220px;max-width:300px;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif}.canvas-media-ref-label{display:flex;align-items:center;justify-content:space-between;padding:0 4px 6px;font-size:13px;font-weight:500;color:#ffffff73;letter-spacing:.3px}.canvas-media-ref-delete{width:20px;height:20px;border:none;background:transparent;color:#ffffff40;cursor:pointer;display:flex;align-items:center;justify-content:center;border-radius:4px;opacity:0;transition:opacity .15s,color .15s,background .15s}.canvas-media-ref-wrapper:hover .canvas-media-ref-delete{opacity:1}.canvas-media-ref-delete:hover{color:#ef4444;background:#ef44441a}.canvas-media-ref-body{position:relative;border-radius:10px;border:1px solid transparent;transition:border-color .18s}.canvas-media-ref-wrapper:hover .canvas-media-ref-body,.react-flow__node.selected .canvas-media-ref-body{border-color:#3b82f6}.react-flow__node.selected .canvas-media-ref-label{color:#3b82f6}.canvas-media-ref-preview{position:relative;overflow:hidden;border-radius:9px}.canvas-media-ref-upload{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;padding:32px 20px;cursor:pointer;color:#ffffff40;background:#27272a99;border-radius:9px;transition:color .15s,background .15s}.canvas-media-ref-upload:hover{color:#ffffff80;background:#27272acc}.canvas-media-ref-upload span{font-size:12px}.canvas-gen-wrapper{position:relative}.canvas-node-gen{min-width:220px;max-width:280px;padding:2px 0}.canvas-node-gen-row{display:flex;align-items:center;justify-content:space-between;padding:6px 14px;position:relative}.canvas-node-gen-label{font-size:12px;color:#fff6;white-space:nowrap}.canvas-node-gen-value{display:flex;align-items:center;gap:4px;border:none;background:transparent;color:#fffc;font-size:12px;font-weight:500;cursor:pointer;padding:4px 8px;border-radius:6px;transition:background .12s;max-width:160px;text-align:right}.canvas-node-gen-value:hover{background:#ffffff0f}.canvas-node-gen-value svg{color:#ffffff4d;flex-shrink:0}.canvas-node-toggle{position:relative;width:36px;height:20px;border-radius:10px;border:none;background:#ffffff1f;cursor:pointer;transition:background .2s;padding:0}.canvas-node-toggle.on{background:#4caf50}.canvas-node-toggle-knob{position:absolute;top:2px;left:2px;width:16px;height:16px;border-radius:50%;background:#fff;transition:transform .2s;box-shadow:0 1px 3px #0000004d}.canvas-node-toggle.on .canvas-node-toggle-knob{transform:translate(16px)}.canvas-node-gen-btn{display:flex;align-items:center;justify-content:center;gap:6px;width:calc(100% - 24px);margin:8px 12px 12px;padding:8px 0;border:none;border-radius:8px;background:#4caf50;color:#fff;font-size:13px;font-weight:600;cursor:pointer;transition:background .15s}.canvas-node-gen-btn:hover:not(:disabled){background:#43a047}.canvas-node-gen-btn:disabled{opacity:.6;cursor:not-allowed}.canvas-node-gen-btn svg{color:#fff}.canvas-node-gen-error{font-size:11px;color:#ef4444;padding:0 14px 8px;line-height:1.4}.canvas-node-dropdown{position:absolute;right:14px;top:calc(100% + 4px);background:#27272af7;-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);border:1px solid rgba(255,255,255,.08);border-radius:10px;box-shadow:0 8px 32px #0006;padding:4px;min-width:140px;z-index:50}.canvas-node-dropdown-item{display:flex;align-items:center;gap:8px;width:100%;padding:8px 12px;border:none;background:transparent;color:#ffffffbf;font-size:13px;cursor:pointer;border-radius:6px;transition:background .1s}.canvas-node-dropdown-item:hover{background:#ffffff0f}.canvas-node-dropdown-item.active{color:#4caf50;font-weight:600}.canvas-node-badge{font-size:10px;background:#4caf50;color:#fff;padding:1px 5px;border-radius:4px;font-weight:600}.canvas-node-dropdown-params{min-width:200px;padding:8px}.canvas-node-dropdown-section{margin-bottom:10px}.canvas-node-dropdown-section:last-child{margin-bottom:0}.canvas-node-dropdown-section-label{font-size:11px;color:#ffffff59;margin-bottom:6px;display:block;padding-left:4px}.canvas-node-dropdown-grid{display:flex;flex-wrap:wrap;gap:4px}.canvas-node-dropdown-chip{padding:4px 10px;border:1px solid rgba(255,255,255,.1);border-radius:6px;background:transparent;color:#fff9;font-size:12px;cursor:pointer;transition:all .1s}.canvas-node-dropdown-chip:hover{border-color:#fff3;background:#ffffff0a}.canvas-node-dropdown-chip.active{border-color:#4caf50;background:#4caf501f;color:#4caf50;font-weight:500}.canvas-gen-right-panel{position:absolute;left:calc(100% + 12px);top:50%;transform:translateY(-50%);background:#27272af7;-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);border:1px solid rgba(255,255,255,.08);border-radius:12px;box-shadow:0 8px 32px #0006;padding:8px 6px;width:max-content;min-width:180px;z-index:50}.canvas-gen-right-panel-item{display:flex;align-items:center;justify-content:space-between;width:100%;padding:6px 10px;border:none;background:transparent;color:#ffffffd9;font-size:12px;font-weight:500;cursor:pointer;border-radius:8px;transition:background .12s}.canvas-gen-right-panel-item:hover{background:#ffffff0f}.canvas-gen-right-panel-item.active{color:#fff}.canvas-gen-right-panel-item-label{flex:1}.canvas-gen-right-panel-radio{width:18px;height:18px;border-radius:50%;border:2px solid rgba(255,255,255,.2);flex-shrink:0;position:relative;transition:border-color .15s}.canvas-gen-right-panel-radio.checked{border-color:#333;background:#333}.canvas-gen-right-panel-radio.checked:after{content:"";position:absolute;top:4px;left:4px;width:6px;height:6px;border-radius:50%;background:#fff}.canvas-gen-right-panel-params{min-width:260px;padding:0}.canvas-params-panel{display:flex;flex-direction:column;gap:10px;padding:10px 12px;color:#fff}.canvas-params-section{display:flex;flex-direction:column;gap:4px}.canvas-params-title{font-size:11px;color:#ffffff80;margin-bottom:0}.canvas-params-ratio-grid{display:flex;flex-wrap:nowrap;gap:2px;background:#ffffff0a;padding:3px;border-radius:8px;overflow-x:auto}.canvas-params-ratio-btn{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;padding:5px 2px;border:none;background:transparent;color:#fff9;border-radius:6px;cursor:pointer;transition:all .2s ease;flex:1;min-width:32px}.canvas-params-ratio-btn:hover{background:#ffffff14;color:#fff}.canvas-params-ratio-btn.active{background:#ffffff1f;color:#fff}.canvas-params-ratio-icon{width:16px;height:16px;display:flex;align-items:center;justify-content:center}.canvas-params-ratio-label{font-size:10px;font-weight:500}.canvas-params-res-container{background:#ffffff08;border-radius:8px;padding:3px}.canvas-params-res-row{display:flex;gap:2px}.canvas-params-res-btn{flex:1;display:flex;align-items:center;justify-content:center;gap:4px;padding:6px;border-radius:6px;border:none;background:transparent;color:#ffffff8c;cursor:pointer;transition:background .12s,color .12s;font-size:11px;font-weight:500}.canvas-params-res-btn:hover{background:#ffffff0a;color:#ffffffd9}.canvas-params-res-btn.active{background:#ffffff1a;color:#fff;font-weight:600}.canvas-params-sparkle{width:14px;height:14px;color:#38bdf8}.canvas-params-count-grid{display:grid;grid-template-columns:1fr 1fr 1fr;gap:8px}.canvas-handle{width:10px;height:10px;background:#18181bf2;border:2px solid rgba(255,255,255,.25);border-radius:50%;transition:border-color .15s,background .15s}.canvas-handle:hover{border-color:#4caf50;background:#4caf5033}.react-flow__edge-path{stroke:#ffffff26!important;stroke-width:2!important}.react-flow__edge.selected .react-flow__edge-path{stroke:#ff9800!important;stroke-width:3!important}.react-flow__edge:hover .react-flow__edge-path{stroke:#4caf50!important}.canvas-video-gen-wrapper{min-width:260px}.canvas-video-label{display:flex;align-items:center;gap:4px}.cvn-model-icon{display:inline-flex;align-items:center;justify-content:center;width:28px;height:18px;border-radius:4px;font-size:9px;font-weight:700;color:#fff;flex-shrink:0;letter-spacing:-.3px;margin-right:4px}.cvn-duration-panel{padding:8px;min-width:200px}.cvn-duration-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:3px}.cvn-duration-btn{padding:5px 4px;border-radius:6px;border:none;background:transparent;color:#ffffff8c;font-size:12px;font-weight:500;cursor:pointer;transition:background .12s,color .12s;text-align:center}.cvn-duration-btn:hover{background:#ffffff0f;color:#ffffffd9}.cvn-duration-btn.active{background:#ffffff1f;color:#fff;font-weight:600}.canvas-video-frames-row{display:flex;align-items:center;gap:8px;padding:8px 10px;border-bottom:1px solid rgba(255,255,255,.06)}.canvas-video-frames-arrow{flex-shrink:0;color:#ffffff4d;display:flex;align-items:center}.canvas-video-frame-slot{flex:1;display:flex;flex-direction:column;align-items:center;gap:4px}.canvas-video-frame-label{font-size:10px;color:#ffffff73;font-weight:500}.canvas-video-frame-preview{width:80px;height:60px;border-radius:6px;overflow:hidden;position:relative;border:1px solid rgba(255,255,255,.1)}.canvas-video-frame-preview img{width:100%;height:100%;object-fit:cover}.canvas-video-frame-clear{position:absolute;top:2px;right:2px;width:18px;height:18px;border-radius:50%;background:#0009;border:none;color:#ffffffb3;cursor:pointer;display:flex;align-items:center;justify-content:center;opacity:0;transition:opacity .15s}.canvas-video-frame-preview:hover .canvas-video-frame-clear{opacity:1}.canvas-video-frame-upload{width:80px;height:60px;border-radius:6px;border:1.5px dashed rgba(255,255,255,.15);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;cursor:pointer;color:#ffffff4d;transition:border-color .15s,color .15s}.canvas-video-frame-upload:hover{border-color:#6366f166;color:#6366f1b3}.canvas-video-ref-grid{display:flex;flex-wrap:wrap;gap:6px;padding:8px 10px;border-bottom:1px solid rgba(255,255,255,.06)}.canvas-video-ref-thumb{width:52px;height:52px;border-radius:6px;overflow:hidden;position:relative;border:1px solid rgba(255,255,255,.1)}.canvas-video-ref-thumb img{width:100%;height:100%;object-fit:cover}.canvas-video-ref-remove{position:absolute;top:1px;right:1px;width:16px;height:16px;border-radius:50%;background:#000000a6;border:none;color:#ffffffb3;cursor:pointer;display:flex;align-items:center;justify-content:center;opacity:0;transition:opacity .15s}.canvas-video-ref-thumb:hover .canvas-video-ref-remove{opacity:1}.canvas-video-ref-add{width:52px;height:52px;border-radius:6px;border:1.5px dashed rgba(255,255,255,.15);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;cursor:pointer;color:#ffffff4d;font-size:9px;transition:border-color .15s,color .15s}.canvas-video-ref-add:hover{border-color:#6366f166;color:#6366f1b3}.canvas-image-output-wrapper{position:relative;min-width:220px;max-width:320px;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif}.canvas-image-output-label{display:flex;align-items:center;padding:0 4px 6px;font-size:13px;font-weight:500;color:#ffffff73;letter-spacing:.3px}.canvas-image-output-body{position:relative;border-radius:10px;border:1px solid transparent;transition:border-color .18s}.canvas-image-output-wrapper:hover .canvas-image-output-body,.react-flow__node.selected .canvas-image-output-body{border-color:#3b82f6}.react-flow__node.selected .canvas-image-output-label{color:#3b82f6}.canvas-video-output-wrapper{position:relative;min-width:260px;max-width:360px;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif}.canvas-video-output-label{display:flex;align-items:center;padding:0 4px 6px;font-size:13px;font-weight:500;color:#ffffff73;letter-spacing:.3px}.canvas-video-output-body{position:relative;border-radius:10px;border:1px solid transparent;transition:border-color .18s}.canvas-video-output-wrapper:hover .canvas-video-output-body,.react-flow__node.selected .canvas-video-output-body{border-color:#3b82f6}.react-flow__node.selected .canvas-video-output-label{color:#3b82f6}.canvas-video-output-player{overflow:hidden;border-radius:9px}.canvas-video-output-video{display:block;width:100%;border-radius:9px}.canvas-image-output-loading{padding:8px;display:flex;flex-direction:column;gap:8px;background:#27272a99;border-radius:9px}.canvas-image-output-placeholder{position:relative;width:100%;aspect-ratio:16 / 9;border-radius:8px;overflow:hidden;background:#ffffff0a}.canvas-image-output-placeholder img{display:block;width:100%;height:100%;object-fit:cover;opacity:.4}.canvas-image-output-shimmer{position:absolute;top:0;right:0;bottom:0;left:0;background:linear-gradient(90deg,transparent 0%,rgba(255,255,255,.06) 40%,rgba(255,255,255,.12) 50%,rgba(255,255,255,.06) 60%,transparent 100%);animation:canvas-shimmer 1.8s ease-in-out infinite}@keyframes canvas-shimmer{0%{transform:translate(-100%)}to{transform:translate(100%)}}.canvas-image-output-loading-text{display:flex;align-items:center;justify-content:center;gap:6px;font-size:12px;color:#ffffff80;padding:4px 0}.canvas-image-output-spinner{width:14px;height:14px;border:2px solid rgba(255,255,255,.15);border-top-color:#4caf50;border-radius:50%;animation:canvas-spin .8s linear infinite}@keyframes canvas-spin{to{transform:rotate(360deg)}}.canvas-image-output-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:2px;padding:0;border-radius:9px;overflow:hidden}.canvas-image-output-grid:has(>:only-child){grid-template-columns:1fr}.canvas-image-output-item{overflow:hidden}.canvas-image-output-item img{display:block;width:100%;height:auto;object-fit:cover}.canvas-image-output-empty{display:flex;align-items:center;justify-content:center;padding:28px 20px;font-size:12px;color:#ffffff40;background:#27272a99;border-radius:9px}.canvas-image-fullscreen-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#000000d9;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);z-index:9999;display:flex;align-items:center;justify-content:center;cursor:zoom-out;animation:canvas-fade-in .2s ease-out}.canvas-image-fullscreen-img{max-width:90vw;max-height:90vh;object-fit:contain;border-radius:8px;box-shadow:0 8px 32px #00000080;-webkit-user-select:none;user-select:none}.canvas-image-fullscreen-close{position:absolute;top:24px;right:24px;width:44px;height:44px;border-radius:50%;background:#ffffff1a;border:1px solid rgba(255,255,255,.2);color:#fff;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:all .2s}.canvas-image-fullscreen-close:hover{background:#fff3;transform:scale(1.05)}@keyframes canvas-fade-in{0%{opacity:0}to{opacity:1}}.canvas-node-audio-preview{padding:8px;position:relative;background:#27272a99;border-radius:9px}.canvas-node-audio-player{display:flex;align-items:center;gap:8px;padding:10px 12px;background:#ffffff0a;border-radius:8px}.canvas-node-audio-play-btn{width:32px;height:32px;border-radius:50%;border:none;background:#a855f733;color:#a855f7;cursor:pointer;display:flex;align-items:center;justify-content:center;flex-shrink:0;transition:background .15s}.canvas-node-audio-play-btn:hover{background:#a855f759}.canvas-node-audio-info{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}.canvas-node-audio-filename{font-size:11px;font-weight:500;color:#ffffffbf;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.canvas-node-audio-duration{font-size:10px;color:#ffffff59;font-variant-numeric:tabular-nums}.canvas-node-audio-wave{display:flex;align-items:center;gap:1.5px;flex-shrink:0}.canvas-node-audio-wave-bar{width:2px;border-radius:1px;background:#a855f766}.canvas-node-audio-status{display:flex;align-items:center;justify-content:center;gap:6px;padding:6px 0 2px;font-size:11px;color:#ffffff80}.canvas-edge-label{font-size:11px;color:#ffffff8c;background:#18181bbf;padding:1px 6px;border-radius:4px;white-space:nowrap;-webkit-user-select:none;user-select:none}.canvas-connect-toast{position:absolute;bottom:60px;left:50%;transform:translate(-50%);background:#18181beb;color:#f87171;font-size:13px;padding:8px 18px;border-radius:8px;border:1px solid rgba(248,113,113,.3);white-space:nowrap;pointer-events:none;z-index:100;animation:canvas-toast-in .2s ease-out}@keyframes canvas-toast-in{0%{opacity:0;transform:translate(-50%) translateY(8px)}to{opacity:1;transform:translate(-50%) translateY(0)}}.react-flow__nodesselection-rect{background:transparent!important;border:none!important}
