/* 实例计费管理:续费/升级信息、自动续费与退款状态。 */ /* 导入方:app/components/instance/InstanceBilling.vue。 */ .bill[data-v-4e83e0f6] { gap: 28px; } .bill[data-v-4e83e0f6], .block[data-v-4e83e0f6] { flex-direction: column; display: flex; } .block[data-v-4e83e0f6] { gap: 14px; } .block-title[data-v-4e83e0f6] { margin: 0; font-size: 1.0625rem; font-weight: 600; } .info-table[data-v-4e83e0f6] { border: 1px solid var(--console-panel-border); box-shadow: var(--console-panel-shadow); background: var(--console-panel-bg); border-radius: var(--radius-md); overflow: hidden; } .kv[data-v-4e83e0f6] { grid-template-columns: 16.6667% minmax(0, 1fr); align-items: center; min-height: 49px; display: grid; } .kv + .kv[data-v-4e83e0f6] { border-top: 1px solid var(--console-panel-border); } .kv[data-v-4e83e0f6]:nth-child(2n) { background: var(--console-page-bg); } .kv[data-v-4e83e0f6] > :first-child { color: var(--p-text-muted-color); padding: 14px; font-weight: 600; } /* 允许连续长文本换行,防止IP、密钥或用户输入撑破当前容器;不会修改原始数据。 */ .kv[data-v-4e83e0f6] > :last-child { overflow-wrap: anywhere; min-width: 0; padding: 14px; font-weight: 400; } .kv[data-v-4e83e0f6] > .p-tag { justify-self: start; margin: 14px; padding: 2px 7px; } .action-cell[data-v-4e83e0f6] { flex-direction: column; align-items: flex-start; gap: 14px; display: flex; } .action-cell[data-v-4e83e0f6] .p-button { max-width: 100%; } .upgrade-desc[data-v-4e83e0f6] { color: var(--p-text-muted-color); margin: 0; line-height: 1.7; } .upgrade-dialog-body[data-v-4e83e0f6] { flex-direction: column; gap: 18px; display: flex; } .upgrade-dialog-body p[data-v-4e83e0f6] { margin: 8px 0 0; line-height: 1.7; } .upgrade-panel[data-v-4e83e0f6] { background: var(--console-panel-bg); border: 1px solid var(--console-panel-border); box-shadow: var(--console-panel-shadow); border-radius: var(--radius-md); padding: 14px; } /* 视口条件 (width<768px) 下的响应式覆盖;保留相对基础规则的层叠顺序。 */ @media (width<768px) { .kv[data-v-4e83e0f6] { grid-template-columns: 100px minmax(0, 1fr); } } /* 自动续费状态与操作区域;组件维护请求结果,设置失败时回读后台状态。 */ .auto-renew[data-v-4e83e0f6] { align-items: center; gap: 10px; display: flex; } .auto-renew-state[data-v-4e83e0f6] { color: var(--p-text-muted-color, #94a3b8); font-size: 0.875rem; } .auto-renew-state.on[data-v-4e83e0f6] { color: #22c55e; } .block-actions[data-v-4e83e0f6] { gap: 8px; padding-top: 4px; display: flex; } .dlg[data-v-4e83e0f6] { flex-direction: column; gap: 16px; display: flex; } .form-row[data-v-4e83e0f6] { align-items: center; gap: 14px; display: flex; } .form-label[data-v-4e83e0f6], .form-row > label[data-v-4e83e0f6] { width: 80px; color: var(--p-text-muted-color, #64748b); flex-shrink: 0; font-size: 0.9375rem; } .grow[data-v-4e83e0f6] { flex: 1; } .refund-state[data-v-4e83e0f6] { background: var(--p-content-hover-background); border-radius: var(--radius-md); flex-direction: column; gap: 10px; padding: 12px 14px; display: flex; } .refund-reject[data-v-4e83e0f6] { color: #ef4444; line-height: 1.7; } .hint[data-v-4e83e0f6], .refund-reject[data-v-4e83e0f6] { margin: 0; font-size: 0.875rem; } .hint[data-v-4e83e0f6] { color: var(--p-text-muted-color, #94a3b8); }