#fy-mobile-root[hidden],.fy-mobile-menu-backdrop[hidden]{display:none!important}
.fy-mobile-header,.fy-mobile-nav,.fy-mobile-menu-backdrop{box-sizing:border-box;color:#eef1f5;font-family:inherit}
.fy-mobile-header{position:fixed;top:0;left:0;right:0;height:calc(48px + env(safe-area-inset-top));padding:env(safe-area-inset-top) 10px 0;display:flex;align-items:center;gap:6px;z-index:2400;background:#1c1d22;border-bottom:1px solid #34353d}
.fy-mobile-brand{display:flex;align-items:center;gap:8px;min-width:0;flex:1}
.fy-mobile-brand img{width:26px;height:26px;border-radius:6px}.fy-mobile-brand b{font-size:15px}.fy-mobile-brand>span{font-size:10px;color:#a6adbb;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
#fy-mobile-root button{font:inherit;cursor:pointer;touch-action:manipulation;color:inherit;border:0;background:transparent}
.fy-mobile-menu-toggle{width:44px;height:44px;flex:0 0 44px;display:grid;place-items:center}.fy-mobile-menu-toggle svg{width:20px;height:20px}
.fy-mobile-balance{min-height:44px;font-size:11px!important;color:#81d5ff!important;max-width:125px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.fy-mobile-nav{position:fixed;bottom:0;left:0;right:0;height:calc(54px + env(safe-area-inset-bottom));padding:3px 6px env(safe-area-inset-bottom);display:grid;grid-template-columns:repeat(4,minmax(0,1fr));z-index:2400;background:#1c1d22;border-top:1px solid #34353d;box-shadow:0 -4px 20px #0003}
.fy-mobile-nav button{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;font-size:10px!important;border-radius:8px;min-width:0;min-height:44px;color:#a4a9b3!important;transition:background-color 160ms,color 160ms}
.fy-mobile-nav button svg{width:20px;height:20px}.fy-mobile-nav button.active{background:#103449!important;color:#7fd6ff!important}
#fy-mobile-root button:disabled{opacity:.4;cursor:not-allowed}#fy-mobile-root button:focus-visible,.fy-mobile-compose-summary button:focus-visible{outline:2px solid #42bfff;outline-offset:-2px}
.fy-mobile-menu-backdrop{position:fixed;inset:0;background:#0009;z-index:4500;display:flex;align-items:flex-end;padding:12px 12px calc(12px + env(safe-area-inset-bottom));animation:fy-web-overlay-in 160ms ease-out}
.fy-mobile-menu{background:#222329;border:1px solid #3a3d47;border-radius:16px;padding:12px;width:100%;max-width:500px;margin:0 auto;max-height:80dvh;overflow-y:auto;overscroll-behavior:contain;animation:fy-web-dialog-in 180ms ease-out}
.fy-mobile-menu-heading{display:flex;align-items:center;justify-content:space-between}.fy-mobile-menu-heading h2{font-size:18px;margin:0}.fy-mobile-menu-heading button{font-size:24px!important;width:44px;height:44px}
.fy-mobile-account-email{font-size:12px;color:#9aa7ba;overflow-wrap:anywhere;margin:0 0 10px}
.fy-mobile-menu-items{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px}.fy-mobile-menu-items button{min-height:44px;text-align:left;background:#2a2c34!important;padding:8px 10px;border-radius:8px;display:flex;justify-content:space-between;gap:6px;font-size:13px!important}.fy-mobile-menu-items [data-mobile-action="退出"]{color:#ff888d!important}
.fy-mobile-compose-summary{display:none}
@media(max-width:767px),(max-width:1024px) and (pointer:coarse){
  html.fy-ui-shell[data-fy-mobile] body #root .app-shell{height:var(--fy-mobile-viewport-height,100dvh)!important;box-sizing:border-box!important;padding-top:calc(48px + env(safe-area-inset-top))!important;padding-bottom:calc(54px + env(safe-area-inset-bottom))!important}
  /* Keep native account dialogs mounted; hide only desktop navigation rows. */
  html.fy-ui-shell[data-fy-mobile] body #root .sidebar.fy-web-top-nav{display:contents!important}
  html.fy-ui-shell[data-fy-mobile] body #root .sidebar.fy-web-top-nav>:is(.brand,.nav-scroll,.sidebar-footer,.sidebar-collapse-toggle){display:none!important}
  html.fy-ui-shell[data-fy-mobile] body #root .app-main{height:100%!important;min-width:0!important;min-height:0!important;overflow:hidden!important}
  html.fy-ui-shell[data-fy-mobile] body #root .page-container{padding:12px 10px!important;min-width:0!important;height:100%!important;overflow-y:auto!important;overscroll-behavior:contain}
  html.fy-ui-shell[data-fy-mobile] body #root .page-header{gap:6px!important;margin-bottom:10px!important}
  html.fy-ui-shell[data-fy-mobile] body #root .page-header>div:not(.page-actions){flex-basis:170px!important}
  html.fy-ui-shell[data-fy-mobile] body #root .page-header h1{font-size:20px!important;line-height:1.3!important}
  html.fy-ui-shell[data-fy-mobile] body #root .page-header p{font-size:11px!important;line-height:1.5!important;margin-top:4px!important}
  html.fy-ui-shell[data-fy-mobile] body #root .page-actions button{min-height:44px!important;padding:6px 10px!important;font-size:11px!important}
  html.fy-ui-shell[data-fy-mobile] body #root .custom-chat-page{height:100%!important;min-width:0!important;min-height:0!important}
  html.fy-ui-shell[data-fy-mobile] body #root .custom-chat-feed{padding:10px 8px!important;min-height:60px!important;min-width:0!important;overflow:auto!important;overscroll-behavior:contain}
  /* The desktop welcome min-height must not push its text under the composer. */
  html.fy-ui-shell[data-fy-mobile] body #root .custom-chat-welcome{padding:12px!important;min-height:0!important;flex:1!important}
  html.fy-ui-shell[data-fy-mobile] body #root .custom-chat-welcome>span{width:38px!important;height:38px!important;font-size:17px!important}
  html.fy-ui-shell[data-fy-mobile] body #root .custom-chat-welcome h1{font-size:20px!important;margin:10px 0 6px!important;overflow-wrap:anywhere}
  html.fy-ui-shell[data-fy-mobile] body #root .custom-chat-welcome p{font-size:11px!important;line-height:1.6!important;max-width:280px!important}
  html.fy-ui-shell[data-fy-mobile] body #root .custom-chat-composer-shell{padding:6px!important;max-height:75%!important;flex-shrink:0!important;overflow-y:auto!important}
  html.fy-ui-shell[data-fy-mobile] body #root .custom-chat-mode-tabs{min-height:44px!important;padding:0!important;margin-bottom:4px!important}.custom-chat-mode-tabs button{touch-action:manipulation}
  html.fy-ui-shell[data-fy-mobile] body #root .custom-chat-mode-tabs button{min-height:44px!important;padding:4px!important;font-size:12px!important}
  html.fy-ui-shell[data-fy-mobile] .fy-mobile-compose-summary{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:2px 6px;padding:0 2px 4px}
  .fy-mobile-model-summary{font-size:11px;line-height:1.4;color:#d0d6e1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.fy-mobile-cost-summary{font-size:10px;color:#80d7ff;grid-column:1}
  .fy-mobile-compose-summary button{grid-column:2;grid-row:1/3;min-height:44px;padding:4px 8px;border:1px solid #3d4857;border-radius:8px;font-family:inherit;font-size:12px;color:#a0dbff;background:#182b38;touch-action:manipulation}
  html.fy-ui-shell[data-fy-mobile] body #root .custom-composer-parameters{display:none!important}
  html.fy-ui-shell[data-fy-mobile] body #root .fy-mobile-settings-open .custom-composer-parameters{display:grid!important;grid-template-columns:repeat(3,minmax(0,1fr))!important;padding:8px!important;gap:8px!important;min-width:0!important}
  html.fy-ui-shell[data-fy-mobile] body #root .generation-model-picker{grid-column:1/-1!important;min-width:0!important}
  html.fy-ui-shell[data-fy-mobile] body #root .generation-model-picker-trigger{min-width:0!important;width:100%!important;min-height:44px!important;overflow:hidden}
  html.fy-ui-shell[data-fy-mobile] body #root .generation-model-picker-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0}
  html.fy-ui-shell[data-fy-mobile] body #root .generation-model-picker-menu{position:fixed!important;left:10px!important;right:10px!important;top:calc(56px + env(safe-area-inset-top))!important;width:auto!important;max-width:none!important;max-height:65dvh!important;overflow:auto!important;z-index:4800!important}
  html.fy-ui-shell[data-fy-mobile] body #root .custom-parameter-field{min-width:0!important;width:100%!important}
  html.fy-ui-shell[data-fy-mobile] body #root .custom-composer-parameters label{height:auto!important;min-height:60px!important;padding:6px!important;grid-template-rows:12px minmax(36px,auto)!important}
  html.fy-ui-shell[data-fy-mobile] body #root select{font-size:16px!important;min-height:36px;max-width:100%}
  html.fy-ui-shell[data-fy-mobile] body #root .custom-cost{grid-column:1/-1;white-space:normal;font-size:12px!important}
  /* Keep 16px editable text to avoid iOS focus zoom; tighten surrounding chrome. */
  html.fy-ui-shell[data-fy-mobile] body #root .reference-prompt-editor{--fy-web-prompt-min-height:72;min-height:min(72px,var(--fy-web-prompt-max-height,42dvh))!important;font-size:16px!important;line-height:24px!important;padding:8px 10px!important}
  html.fy-ui-shell[data-fy-mobile] body #root .custom-composer-toolbar{display:flex!important;align-items:center;gap:4px;padding:4px 0!important;margin:0 6px!important;min-height:52px!important;min-width:0;flex-wrap:nowrap!important}
  html.fy-ui-shell[data-fy-mobile] body #root .custom-upload-actions{flex:1;display:flex!important;gap:3px;min-width:0!important;flex-wrap:nowrap!important}
  html.fy-ui-shell[data-fy-mobile] body #root .custom-upload-actions button{font-size:10px!important;padding:0 4px!important;height:44px!important;min-height:44px!important;min-width:0!important;max-width:100%;white-space:nowrap!important;flex:1 1 auto!important}
  html.fy-ui-shell[data-fy-mobile] body #root .custom-upload-actions button[data-fy-mobile-label]{font-size:0!important}
  html.fy-ui-shell[data-fy-mobile] body #root .custom-upload-actions button[data-fy-mobile-label]::after{content:attr(data-fy-mobile-label);font-size:11px;pointer-events:none}
  html.fy-ui-shell[data-fy-mobile] body #root .custom-chat-composer-shell .custom-attachment-list{grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:4px!important;max-height:100px!important;margin:4px 6px 0!important}
  html.fy-ui-shell[data-fy-mobile] body #root .custom-attachment{grid-template-columns:28px minmax(0,1fr) 32px!important;gap:4px!important;padding:2px 4px!important;min-height:44px!important}
  html.fy-ui-shell[data-fy-mobile] body #root .custom-attachment>:is(img,span){width:28px!important;height:28px!important}
  html.fy-ui-shell[data-fy-mobile] body #root .custom-attachment>button{width:32px!important;height:40px!important}
  html.fy-ui-shell[data-fy-mobile] body #root .custom-attachment small{white-space:nowrap;text-overflow:ellipsis;overflow:hidden}
  html.fy-ui-shell[data-fy-mobile] body #root .custom-drag-tip{display:none!important}
  html.fy-ui-shell[data-fy-mobile] body #root .custom-send-button{flex:0 0 44px!important;min-width:44px!important;min-height:44px!important;max-width:44px!important;margin:0!important}
  html.fy-ui-shell[data-fy-mobile] body #root .custom-chat-avatar{width:24px!important;height:24px!important;flex:0 0 24px!important}
  html.fy-ui-shell[data-fy-mobile] body #root :is(.custom-chat-user-row,.custom-chat-result-row){gap:6px!important;min-width:0!important}
  html.fy-ui-shell[data-fy-mobile] body #root :is(.custom-chat-user-bubble,.custom-chat-result-bubble){max-width:calc(100% - 30px)!important;min-width:0!important;overflow-wrap:anywhere}
  html.fy-ui-shell[data-fy-mobile] body #root .custom-chat-result-bubble{width:100%!important}
  html.fy-ui-shell[data-fy-mobile] body #root .custom-chat-media :is(img,video){max-width:100%!important;max-height:45dvh!important;object-fit:contain}
  html.fy-ui-shell[data-fy-mobile] body #root .custom-chat-task{gap:8px!important;margin-bottom:18px!important}
  html.fy-ui-shell[data-fy-mobile] body #root .custom-chat-user-bubble{padding:8px 10px!important}
  html.fy-ui-shell[data-fy-mobile] body #root .custom-chat-user-bubble p{font-size:13px!important;line-height:1.6!important}
  html.fy-ui-shell[data-fy-mobile] body #root .custom-chat-result-bubble>header{min-height:42px!important;padding:7px 10px!important;gap:6px!important}
  html.fy-ui-shell[data-fy-mobile] body #root .custom-chat-result-bubble>footer{padding:4px 6px!important;flex-wrap:wrap!important;gap:2px!important}
  html.fy-ui-shell[data-fy-mobile] body #root .custom-chat-task-actions{display:flex!important;flex-wrap:wrap!important;gap:4px;padding:0!important}
  html.fy-ui-shell[data-fy-mobile] body #root .custom-chat-task-actions button{min-height:44px!important;min-width:44px!important;padding:4px 6px!important;font-size:11px!important}
  html.fy-ui-shell[data-fy-mobile] body #root :is(.recharge-layout,.credits-overview){grid-template-columns:minmax(0,1fr)!important;gap:12px!important}
  html.fy-ui-shell[data-fy-mobile] body #root .recharge-plan-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:6px!important}
  html.fy-ui-shell[data-fy-mobile] body #root .recharge-security-note{grid-template-columns:minmax(0,1fr)!important;gap:3px!important;padding:10px!important;margin-bottom:10px!important}
  html.fy-ui-shell[data-fy-mobile] body #root .recharge-security-note strong{font-size:11px!important}
  html.fy-ui-shell[data-fy-mobile] body #root .recharge-security-note span{font-size:12px!important;letter-spacing:0!important}
  html.fy-ui-shell[data-fy-mobile] body #root .recharge-security-note small{font-size:10px!important;line-height:1.5!important}
  html.fy-ui-shell[data-fy-mobile] body #root .recharge-security-note span{overflow-wrap:anywhere;min-width:0;max-width:100%}
  html.fy-ui-shell[data-fy-mobile] body #root .recharge-channel-list{grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:6px!important}
  html.fy-ui-shell[data-fy-mobile] body #root :is(.recharge-checkout-card,.recharge-orders-card){min-width:0!important;padding:10px!important}
  html.fy-ui-shell[data-fy-mobile] body #root .recharge-section-heading{gap:6px!important;margin-bottom:8px!important}
  html.fy-ui-shell[data-fy-mobile] body #root .recharge-section-heading:not(:first-child){margin-top:12px!important}
  html.fy-ui-shell[data-fy-mobile] body #root .recharge-section-heading h3{font-size:13px!important}
  html.fy-ui-shell[data-fy-mobile] body #root .recharge-section-heading>small{font-size:9px!important}
  html.fy-ui-shell[data-fy-mobile] body #root .recharge-plan-card{min-height:108px!important;padding:10px 8px!important;gap:5px!important}
  html.fy-ui-shell[data-fy-mobile] body #root .recharge-plan-card strong{font-size:22px!important}
  html.fy-ui-shell[data-fy-mobile] body #root .recharge-plan-card b{font-size:11px!important}
  html.fy-ui-shell[data-fy-mobile] body #root .recharge-channel-list button{grid-template-columns:24px minmax(0,1fr) auto!important;gap:5px!important;padding:8px 6px!important;min-height:48px!important}
  html.fy-ui-shell[data-fy-mobile] body #root .recharge-channel-list button>i{width:24px!important;height:24px!important}
  html.fy-ui-shell[data-fy-mobile] body #root .recharge-submit-panel{padding:8px!important;margin-top:10px!important;gap:6px!important}
  html.fy-ui-shell[data-fy-mobile] body #root .recharge-submit-panel strong{font-size:20px!important}
  html.fy-ui-shell[data-fy-mobile] body #root .recharge-submit-panel .button{min-height:44px!important;padding:6px 10px!important;font-size:12px!important}
  html.fy-ui-shell[data-fy-mobile] body #root .recharge-order-item{padding:10px!important;gap:5px!important}
  html.fy-ui-shell[data-fy-mobile] body #root .recharge-unavailable{min-height:160px!important}
  html.fy-ui-shell[data-fy-mobile] body #root .recharge-unavailable h3{font-size:18px!important}
  html.fy-ui-shell[data-fy-mobile] body #root .credit-summary-grid{grid-template-columns:minmax(0,1fr)!important;gap:8px!important;margin-bottom:10px!important}
  html.fy-ui-shell[data-fy-mobile] body #root :is(.credit-balance-card,.credit-account-card){min-height:82px!important;padding:10px 12px!important}
  html.fy-ui-shell[data-fy-mobile] body #root .credit-balance-card>strong{font-size:28px!important;margin:4px 0!important}
  html.fy-ui-shell[data-fy-mobile] body #root .credit-account-card{grid-template-columns:32px minmax(0,1fr) auto!important;gap:8px!important}
  html.fy-ui-shell[data-fy-mobile] body #root .credit-account-card .avatar{width:32px!important;height:32px!important}
  html.fy-ui-shell[data-fy-mobile] body #root .credit-account-card b{font-size:13px!important}
  html.fy-ui-shell[data-fy-mobile] body #root .credit-account-card span{font-size:10px!important}
  html.fy-ui-shell[data-fy-mobile] body #root .credit-ledger-toolbar{display:grid!important;gap:6px!important;min-height:0!important;padding:10px!important}
  html.fy-ui-shell[data-fy-mobile] body #root .credit-ledger-toolbar h3{font-size:14px!important}
  html.fy-ui-shell[data-fy-mobile] body #root .credit-ledger-toolbar .segmented{max-width:100%!important;min-width:0!important;overflow-x:auto!important;display:flex!important;flex-wrap:nowrap!important}
  html.fy-ui-shell[data-fy-mobile] body #root .credit-ledger-toolbar .segmented button{flex:0 0 auto!important;min-height:44px!important;font-size:11px!important;padding:4px 8px!important}
  html.fy-ui-shell[data-fy-mobile] body #root .credit-table{min-width:0!important}
  html.fy-ui-shell[data-fy-mobile] body #root .credit-table-head{display:none!important}
  html.fy-ui-shell[data-fy-mobile] body #root .credit-table-row{grid-template-columns:minmax(0,1fr) auto!important;gap:6px 8px!important;min-height:0!important;padding:10px!important;font-size:11px!important}
  html.fy-ui-shell[data-fy-mobile] body #root .credit-table-row>:nth-child(1){font-size:10px!important}
  html.fy-ui-shell[data-fy-mobile] body #root .credit-table-row>:nth-child(3){grid-column:1/-1;white-space:normal!important}
  html.fy-ui-shell[data-fy-mobile] body #root .credit-table-row>:nth-child(4){grid-column:1/-1}
  html.fy-ui-shell[data-fy-mobile] body #root .credit-table-row>:nth-child(5)::before{content:'变动 ';color:#929dab;font-weight:400}
  html.fy-ui-shell[data-fy-mobile] body #root .credit-table-row>:nth-child(6)::before{content:'余额 ';color:#929dab;font-weight:400}
  html.fy-ui-shell[data-fy-mobile] body #root .credit-empty{min-height:120px!important}
  html.fy-ui-shell[data-fy-mobile] :is(.invite-dialog,.announcement-dialog,.customer-service-dialog,.profile-settings-modal,.fy-redeem-modal,.reference-modal,.platform-dialog,.generation-model-dialog){box-sizing:border-box!important;width:calc(100% - 24px)!important;max-width:calc(100vw - 24px)!important;max-height:85dvh!important;overflow-y:auto!important}
  html.fy-ui-shell[data-fy-mobile] :is(.invite-code-box,.invite-link-box){min-width:0!important}.invite-link-box input{min-width:0}
  html.fy-ui-shell[data-fy-mobile] :is(input,textarea){font-size:16px!important}
  html.fy-ui-shell[data-fy-mobile] :is([data-fy-full-entry],.fy-full-entry,.canvas-library-page,.fy-full-surface){display:none!important}
  html.fy-ui-shell[data-fy-mobile-keyboard="true"] .fy-mobile-nav{display:none}
  html.fy-ui-shell[data-fy-mobile-keyboard="true"] body #root .app-shell{padding-bottom:0!important}
}
