.shell{height:100vh;min-height:100vh;overflow:hidden}.shell__sider{border-right:1px solid #e8ebf0}.shell__brand{display:flex;align-items:center;gap:10px;height:64px;padding:0 18px;border-bottom:1px solid #eef0f3}.shell__brand-mark{display:grid;place-items:center;flex:0 0 36px;width:36px;height:36px;color:#fff;font-weight:700;background:#1677ff;border-radius:6px}.shell__brand-copy{display:flex;flex-direction:column;line-height:1.3;white-space:nowrap}.shell__header{display:flex;flex:0 0 64px;align-items:center;justify-content:space-between;height:64px;padding:0 20px;border-bottom:1px solid #e8ebf0}.shell__main{min-width:0;min-height:0;height:100%}.shell__user{min-width:0}.shell__user-copy{display:flex;flex-direction:column;min-width:0;line-height:1.3;text-align:right}.shell__user-copy .ant-typography{max-width:260px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.shell__content{min-height:0;height:calc(100vh - 64px);overflow:auto;padding:18px}.shell__menu{border-inline-end:0}*{box-sizing:border-box}html,body,#root{min-width:0;min-height:100%;margin:0}body{color:#20242a;background:#f6f7f9}.app-loading,.app-fatal-error{display:flex;min-height:100vh;align-items:center;justify-content:center;gap:14px;padding:24px;color:#20242a;background:radial-gradient(circle at 20% 20%,rgb(22 119 255 / 10%),transparent 36%),#f6f7f9}.app-loading__mark{display:grid;width:44px;height:44px;flex:0 0 auto;place-items:center;border-radius:10px;color:#fff;background:#1677ff;font-size:14px;font-weight:700;box-shadow:0 8px 20px #1677ff38}.app-loading__copy{display:flex;min-width:128px;flex-direction:column;gap:2px}.app-loading__copy strong{font-size:18px}.app-loading__copy span{color:#667085;font-size:13px}.app-loading__spinner{width:20px;height:20px;border:2px solid rgb(22 119 255 / 18%);border-top-color:#1677ff;border-radius:50%;animation:app-loading-spin .8s linear infinite}@keyframes app-loading-spin{to{transform:rotate(360deg)}}.app-fatal-error__card{width:min(420px,100%);padding:32px;border:1px solid #e6e8ec;border-radius:12px;background:#fff;box-shadow:0 16px 48px #1018281a;text-align:center}.app-fatal-error__card .app-loading__mark{margin:0 auto 20px}.app-fatal-error__card h1{margin:0 0 8px;font-size:22px}.app-fatal-error__card p{margin:0 0 24px;color:#667085;line-height:1.6}.app-fatal-error__card button{min-width:120px;padding:9px 18px;border:0;border-radius:6px;color:#fff;background:#1677ff;cursor:pointer}@media(prefers-reduced-motion:reduce){.app-loading__spinner{animation:none}}button,input,textarea,select{font:inherit}.mono{font-family:SFMono-Regular,Consolas,Liberation Mono,monospace}
